归纳递归

归纳递归是对归纳类型 (或归纳族) 的扩展, 允许构造子的类型一定程度地违反严格正性, 极大地提高了类型论的证明论强度.

也可以对高阶归纳类型进行类似的拓展, 得到 “高阶归纳递归”.

也可以对互归纳进行类似的拓展, 得到 “互归纳递归”. 再加上互递归对互归纳的特殊情况, 可以得到 “互归纳互递归”. 将这些功能全部放到一起, 可以合成出 “高阶互归纳互递归” 的类型, 这是在依值类型论中定义自己的有力工具.

1定义

定义 1.1.语境 中, 一组归纳递归的定义是二元组 :

是一个像归纳族的类型,

是一个简单类型的函数 ( 是任意类型, 可以引用语境 , 但不能引用参数), 在这个阶段姑且当作公理,

的构造子 的参数 由满足严格正性的类型或者对 的函数应用 (这里超出了归纳类型的能力, 但该类型仍然很像一个归纳类型) 生成,

有了构造子后, 推出 对应的消去子,

使用 的消去子定义出函数的行为.

使用互递归消除的手法可以将归纳递归拓展到一个类型、多个函数的情况. 若需要考虑多个类型, 则需要用到互归纳.

若要非常严格地形式化定义而不用到公理、切换定义的属性等 “违规” 操作, 则需要用到语汇理论.

2语义

Warning.png

目前的参考资料

具现语义

范畴语义

3例子

例 3.1. 依值类型论的 Tarski 宇宙可以使用归纳递归在类型论内部定义. 此处给出一个仅含 类型的定义:

是宇宙——它的实例对应类型的表示,

对于每个类型的表示, 给出对应的类型,

类型的表示, 其中 是定义域的类型的表示、 是值域的类型的表示, 很明显, 是一个含有 的实例的表达式,

使用模式匹配的语法定义了 .

该例子演示了归纳递归提高证明论强度的原因: 它可以将类型论自己的宇宙表示出来.

4参考资料

Peter Dybjer (2003). “A General Formulation of Simultaneous Inductive-Recursive Definitions in Type Theory”. Journal of Symbolic Logic 65. (doi)

术语翻译

归纳递归英文 induction-recursion