“一条常见证明链是先建立强正规化或合适的正规化定理,再证明良型闭合正规形的 canonical forms lemma:自然数正规形不可能是自由变量为头的中立项,也不能是 λ 或 Π,故只能是…”
形式陈述 ​
给定小步语义的单步归约关系
一个语言或项集合具有弱正规化性质,若其中每个项都弱正规化;具有强正规化性质,若每个项都强正规化。强正规化蕴含弱正规化,但反向一般不成立。两者都量化允许的归约关系,不等于语言指定 evaluator 的终止性:后者只问某个确定求值策略产生的执行是否有限。改变可归约位置、规则或求值策略都可能改变结论。
直觉
正规化讨论的是计算能否结束,但量词位置决定了两种很不一样的保证。弱正规化说“至少有一种聪明的走法能到终点”,强正规化说“不管怎样选择下一步都不可能无限走”。正规形只描述终点长什么样,正规化性质则描述从起点是否以及如何必然抵达。类型系统常通过限制自应用和递归来换取强正规化;这种保证比通常的类型安全更强,因为后者允许良类型程序无限运行。
例子与边界
项
边界在于“程序运行会终止”通常只关心语言指定的单一求值策略,而强正规化量化所有合法归约顺序。具有一般递归的实用语言不可能让所有程序都正规化;证明助理的逻辑核心则常要求定义通过结构递归或终止检查,以保护逻辑一致性。
推论与应用
简单类型 λ 演算强正规化是类型限制排除非终止计算的基本结果,并通过 Curry–Howard 对应转化为证明正规化与逻辑一致性的证据。常见证明把“可终止且在函数应用下封闭”组织成一元逻辑关系,再由逻辑关系基本定理推出每个良类型项属于该谓词;具体关系与推导归纳不属于正规化性质的定义。
在程序验证中,终止分析、大小变化原则和良基递归都在构造一个随步骤严格下降的量。正规化本身不保证正规形唯一;在重写系统中,有
弱正规化加合流性也能使已存在的正规形唯一,但不足以排除其他发散归约路径。
参考资料
- Robert Harper, Practical Foundations for Programming Languages, 2nd ed., Cambridge University Press, 2016,Parts I–XVIII。
- Benjamin C. Pierce, Types and Programming Languages, MIT Press, 2002,Chs. 3–30。