[论文解读] Agda files for LMCS paper "What monads can and cannot do with a few extra pages"
本文系统研究了通过分配律将延迟单子(包括共归纳和受保护递归变体)与各种计算效应相结合的方法。研究证明,对于具有平衡方程的单子,顺序提升可产生分配律;而对于非丢弃方程的单子,并行提升则在弱双相似意义下成立,为在类型理论中推理一般递归与计算效应提供了基础。
The delay monad provides a way to introduce general recursion in type theory. To write programs that use a wide range of computational effects directly in type theory, we need to combine the delay monad with the monads of these effects. Here we present a first systematic study of such combinations. We study both the coinductive delay monad and its guarded recursive cousin, giving concrete examples of combining these with well-known computational effects. We also provide general theorems stating which algebraic effects distribute over the delay monad, and which do not. Lastly, we salvage some of the impossible cases by considering distributive laws up to weak bisimilarity.
研究动机与目标
- 开发一个在类型理论中结合延迟单子与计算效应的正式框架。
- 研究哪些单子可以通过分配律与延迟单子组合,哪些不能,基于分配律的条件。
- 将现有的单子组合理论扩展至包含延迟单子独特的代数结构。
- 探讨受保护递归在实现比共归纳方法更强的单子组合方面所起的作用。
- 解决在幂等或非平衡方程下分配律的局限性,并提出基于弱双相似性的替代方案。
提出的方法
- 在时钟立方类型理论(CCTT)中形式化共归纳和受保护递归的延迟单子。
- 定义两种提升策略——顺序和并行——用于在延迟步骤上分布单子操作。
- 证明对于由具有平衡方程的代数理论呈现的单子,顺序提升可产生有效的分配律。
- 证明对于具有非丢弃方程的单子,并行提升可在弱双相似意义下定义分配律。
- 利用受保护递归确保递归构造中的生产力和因果性。
- 利用受保护变体中的不动点算子,直接在类型理论中支持高阶递归。
实验结果
研究问题
- RQ1哪些单子在何种代数条件下可对延迟单子产生分配律?
- RQ2为何具有幂等或非平衡方程的单子(如有限幂集单子)无法产生分配律?
- RQ3当标准分配律失效时,是否可将并行提升作为分配律挽救,且在何种等价关系下成立?
- RQ4与共归纳延迟相比,受保护递归如何提升单子组合的表达能力?
- RQ5在某些情况下(如命题6.3和例6.5),受保护延迟单子的结果在多大程度上可转移到集合范畴Set中?
主要发现
- 对操作的顺序提升为具有平衡方程的单子(如列表、树和多重集)提供了有效的分配律。
- 对于在受保护延迟单子 Dκ 上具有交换且幂等二元运算的单子(如有限幂集单子),不存在分配律。
- 并行提升虽不产生标准分配律,但对具有非丢弃方程的单子可在弱双相似意义下定义分配律。
- 受保护延迟单子支持类型为 ((X → DκY) → (X → DκY)) → (X → DκY) 的不动点算子,从而可直接嵌入高阶递归语言。
- 共归纳延迟单子缺乏此类不动点算子,需依赖连续性假设或迭代算子,对高阶编程造成负担。
- 部分结果(如命题6.3和例6.5)可转移到Set中,但完整转移需使用受保护递归重新证明生产力。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。