Needle与Knot:绑定器样板代码的整合
1. 语法特性
- 作用域良好性 :语法操作能够保持良好的作用域,这涵盖了移位、弱化和替换引理。若某个类别不依赖于替换项的命名空间,那么可以构建强化引理:
h + 1α ⊢u : S
α /∈depsOf S
h ⊢u : S
- 环境查找 :环境查找的移位、弱化和强化引理构成了类型关系对应引理的变量情形。这些引理还阐述了上下文中关联数据的变化方式。在上下文较深的位置进行操作时,会使用关系,例如
Γ1 c −−−→α Γ2,它表示在Γ1的截断位置c插入新的α变量后得到Γ2。查找的移位引理如下:
Γ1 c −−−→α Γ2
(n : u) ∈α Γ1
(shiftN c n : shift?α c u) ∈α Γ2
2. 实现方式
有两种实现方式,分别是通用Knot实现和Needle代码生成器。
- 通用Knot实现 :采用数据类型通用编程技术,在约4.3k行的Coq代码中为所有格式良好的Knot规范实现了样板函数。依据自由单子原则,将de Bruijn项捕获到一个由命名
超级会员免费看
订阅专栏 解锁全文

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



