依赖类型理论中规则树的机械化理论
1. 循环项到无限树的解释
在定义函数时,使用受保护的共递归方法会遇到一个技术问题。当项是自由变量时,需要在闭包中查找其定义,以提取函数符号来确保生产率。由于自由变量的定义可能还是自由变量,所以需要不断重复查找过程,直到得到受保护形式(即由 −◁− 保护)的项。因为闭包是归纳定义的项,所以这个过程最终会终止。
我们使用将 Σ - 余代数映射到无限树的共迭代器来定义解释函数。Σ - 余代数的载体由与闭包相关联的受保护形式的项对组成:
G : Sig →U
G
Σ
≡
(n : N) × (o : Σ) × Vec (C Σ n) (Σ.Ar o) × Closure Σ n
态射的定义是通过首先在闭包中查找自由变量的定义,归纳地计算下一个受保护项:
lookup {Σ} {n} : Fin n →Closure Σ n →G Σ
lookup
zero
(var k :: ρ)
≡
lookup k ρ
lookup
zero
(o ◁os :: ρ)
≡
( , o , os , ρ)
lookup
zero
(rec o ◁os :: ρ)
≡
( , o , os , rec o ◁os :: ρ)
lookup
(suc i)
( :: ρ)
≡
lookup i ρ
任何与闭包相关联的项都可以转换为受保护形式:
toG {Σ} {n} : C Σ n →Closure Σ n →G Σ
toG
(var k)
ρ
≡
lookup k ρ
toG
(o
超级会员免费看
订阅专栏 解锁全文
2356

被折叠的 条评论
为什么被折叠?



