“经由 Curry–Howard 对应,把一个证明代入另一个证明中使用它的位置,对应程序中的代入与归约。相应的切消和正规化性质把证明变换与类型化程序的计算联系起来,为线性逻辑和证明搜索式编程提…”
形式陈述
先固定本页的核心系统:带蕴含、合取、析取与假命题的直觉主义命题自然演绎,对应带函数、积、和与空类型的简单类型 λ 演算。在这对具体演算之间,命题对应类型,证明推导对应有类型项,证明化简对应程序归约。基本连接为
自然演绎的引入规则对应类型的构造器,消去规则对应使用方式;β-归约消去“刚构造后立刻拆解”的局部迂回。对归纳类型,构造器给出证明的引入方式,依赖消去子把 motive、基例与归纳步组合成归纳证明。
更强系统必须逐对命名。System F 的全称类型
在序列演算中,与这种正规化密切对应的是 cut elimination;二者服务于同一“消去中间引理”的结构,但在未指定证明系统及翻译前,不能直接把 β-归约与某一条 cut 规则视为同一个关系。
直觉
一个命题要被证明,就必须构造出携带其证据的数据;一个类型要有居民,就必须写出满足接口的程序。蕴含证明接收
例子与边界
命题
对析取作分类讨论,正对应对和类型做模式匹配。
边界是经典排中律
推论与应用
该对应把简单类型 λ 演算与直觉主义命题逻辑统一起来;System F 和依赖类型则分别沿上述二阶命题量化与项依赖方向扩展。证明助理的内核通过类型检查验证证明项,程序提取再从构造性证明中得到算法。
证明正规化支撑逻辑一致性,积类型和和类型的程序规则也由逻辑引入/消去规则系统解释。Coq、Agda、Lean 以及 proof-carrying code 都建立在这一桥梁之上。
参考资料
- William A. Howard, “The Formulae-as-Types Notion of Construction,” 1980.
- Morten Heine Sørensen and Paweł Urzyczyn, Lectures on the Curry–Howard Isomorphism, Elsevier, 2006.