Skip to content

Martin-Löf 依赖类型论

Martin-Löf type theory · MLTT

以语境判断、依赖类型构造与计算规则共同刻画构造性数学的判断式类型论框架。

条目类型
模型

形式陈述

Martin-Löf 依赖类型论不是一张孤立的类型语法表,而是一族由判断及其推导规则组织的形式系统。本文固定一个常见的谓词式、内涵核心:语境由依次依赖的声明组成,基本判断至少包括

Γctx,ΓAtype,Γa:A,ΓABtype,Γab:A.

空语境良构;若 ΓctxΓAtype,便可扩张为 Γ,x:Actx。每一种类型构造都要给出 formation、introduction、elimination 与 computation 四类规则。例如依赖函数类型依赖对类型分别规定如何抽象、应用以及如何成对、拆对;恒等类型refl 引入,并由恒等类型消去子处理依赖相等证明;宇宙类型则把“小类型”作为可量化的对象分层安置。规则中的 定义相等,属于元层判断,不是一个可以任意证明的对象类型。

结构规则必须与依赖性相容。其关键不是文本替换,而是类型保持的代入引理:若 Γa:AΓ,x:A,ΔJ,则

Γ,Δ[a/x]J[a/x].

J 可代表类型良构、项有型或相等判断;代入须避开变量捕获,并同步改写后续语境中的依赖。弱化、交换与收缩也只能在保持语境良构的条件下使用。由这些判断、类型形成子、结构规则和计算规则共同决定一个具体 MLTT;是否加入 η 规则、宇宙累积、商类型或相等反映,必须另行声明,不能从“MLTT”三个字自动推出。

直觉

可以把这套理论看成一门同时描述数据、程序与证据的微型语言。一个类型的意义由“怎样构造它的规范元素、怎样使用这些元素、构造后立即使用会怎样计算”给出,而不是先把类型解释成某个外部集合再开始推理。语境像一份有先后次序的实验记录:后面的假设可以引用前面的变量,所以删去或替换一个早期声明会沿着整条记录传播。

命题即类型的读法提供了重要解释,却不是对象层的字面等号。函数项可承载蕴含证明,依赖函数可承载全称证明,依赖对可承载存在见证;这是规则结构之间的对应,而非声称逻辑公式、运行时数据和类型表达式在所有语义中都是同一个对象。MLTT 的力量恰来自把这些角色放进同一判断框架,同时仍严格区分“计算得到相同项”和“构造了一个相等证明”。

例子与边界

Bool:U0,并允许在更高一层宇宙中量化小类型。多态恒等项可逐层推出

id=λ(A:U0).λ(x:A).x:Π(A:U0).Π(x:A).A.

在语境 A:U0,x:A 中,变量规则给出 x:A;两次 Π-引入依次关闭 xA。把 Bool 代入 A,再把 true 代入 x,计算规则得到

idBooltruetrue:Bool.

这里两次代入不仅改写项,也改写余类型;这正是普通无类型 β-归约不足以独立承担的部分。另一个典型机制是长度索引向量:构造器决定索引,依赖消去的 motive 同时观察索引和向量,从而把“连接后长度为 m+n”变成返回类型,而非函数运行后的注释。

边界首先来自理论选择。若向核心加入无约束的一般递归,闭项可能不再正规化,按计算比较类型的过程也可能失去可判定性;若加入相等反映,则有恒等证明便可改变判断相等,内核的转换问题不再只是规范化计算。1984 年讲义、现代 Agda 风格内涵理论、HoTT 与立方类型论共享谱系却不具有完全相同的规则。也不能把 Lean、Coq、Agda 的表面语言逐字称为本页核心:它们还包含归纳声明、隐式参数、层级多态、终止检查和 elaboration 等工程层。

推论与应用

一旦 formation—introduction—elimination—computation 的循环闭合,就能分别研究替换、主体归约、正规化、可判定类型检查与一致性。证明通常沿 typing derivation 归纳;编译器或证明助理内核则把规则定向成检查过程,再由可靠性证明保证接受的核心项确有相应推导。规范形式定理还把逻辑结论还原成数据形状:在条件合适的纯核心里,闭合自然数项必须计算到零或有限次后继。

MLTT 因而同时服务于构造性数学和程序验证:证明的计算内容可以提取,接口不变量可以进入类型,机器只需检查相对很小的核心推导。不过这些收益都相对于明确的规则集合成立。添加新公理时应问它是否有判断式计算规则;添加新类型形成子时应重新证明代入与正规化,而不是把既有元定理当作自动继承的装饰。

参考资料
  • Per Martin-Löf, Intuitionistic Type Theory, Bibliopolis, 1984,语境判断、Π/Σ 类型、命题相等与宇宙的规则讲义。
  • Bengt Nordström, Kent Petersson, and Jan M. Smith, Programming in Martin-Löf’s Type Theory, Oxford University Press, 1990,判断式语义、类型构造与程序推导。
  • Robert Harper, Practical Foundations for Programming Languages, 2nd ed., Cambridge University Press, 2016,依赖类型、判断与结构规则的现代形式化表述。
  • The Univalent Foundations Program, Homotopy Type Theory: Univalent Foundations of Mathematics, Institute for Advanced Study, 2013,Ch. 1,内涵依赖类型论核心及其规则约定。
关系图谱15 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系