“在λ 演算中,完整 β 归约具有合流性。对任意项 $t,u,v$,若”
形式陈述 ​
在λ 演算中,形如
其中
项按 α-等价识别,因而收缩前可以先选新鲜绑定名。
求值策略从完整 β-归约中挑选确定或受限的子关系。调用值只在实参已是值时收缩外层 β-redex,且通常不进入 λ 体;调用名优先处理最外层应用,也不等于允许任意位置的完整 β-归约。规则说明哪些改写合法,策略说明运行时下一步选哪一个。
直觉
β-收缩消去一次“抽象—应用”接口:形式参数从函数体中退出,实参接管它的自由出现。函数体若多次使用参数,实参会被复制;若从未使用参数,实参会被丢弃。因此一步归约既可能缩短项,也可能使项显著增大。
完整 β-归约把局部计算与位置选择分开。一个项的多个 redex 可以重叠或嵌套,先收缩哪处不由根规则决定;合流性、标准化和强正规化分别研究这些选择能否汇合、是否存在找到正规形的标准路径、以及所有路径是否终止。
例子与边界
对项
在
令
完整 β-归约也允许一直收缩
β-正规形、值和闭项仍是三种不同分类。
推论与应用
多步归约把若干 β 步连接起来,λ-正规形刻画没有任何 β-redex 的项。Church–Rosser 定理保证从同一起点到达的两个结果仍可汇合,因而已存在的正规形在 α-等价意义下唯一。
类型理论用替换引理证明 β-步骤保持类型;强正规化还需额外证明所有允许的 β 路径有限。编译器内联可看作带成本、共享与副作用条件的 β-收缩,不能在有状态语言中无条件复制或删除实参计算。
参考资料
- Henk Barendregt, The Lambda Calculus: Its Syntax and Semantics, revised ed., North-Holland, 1984, Chapters 2–3。
- Benjamin C. Pierce, Types and Programming Languages, MIT Press, 2002, Chapters 5–7。
- J. Roger Hindley and Jonathan P. Seldin, Lambda-Calculus and Combinators: An Introduction, Cambridge University Press, 2008, Chapters 3–4。