如何用β归约证明λ演算中NOT TRUE等于FALSE?
用β归约证明NOT TRUE = FALSE
基础定义
FALSE = λxy.yTRUE = λxy.xNOT = λx.x FALSE TRUE
归约步骤
先写出NOT TRUE的初始表达式:
NOT TRUE = (λx.x FALSE TRUE) TRUE第一步β归约:将函项
λx.x FALSE TRUE中的绑定变量x替换为参数TRUE,得到:TRUE FALSE TRUE展开
TRUE的定义代入,表达式变为:(λxy.x) FALSE TRUE对
(λxy.x) FALSE进行β归约:- 绑定变量:x
- 函项体:λy.x
代入参数:FALSE
归约后得到:λy.FALSE
将上述结果应用到第二个参数
TRUE,表达式变为:(λy.FALSE) TRUE最后一步β归约:
- 绑定变量:y
- 函项体:FALSE
代入参数:TRUE
由于函项体FALSE中不包含绑定变量y,归约结果直接为:FALSE
综上,通过β归约可证NOT TRUE = FALSE
内容的提问来源于stack exchange,提问作者Francis Yip
相关产品推荐
相关产品推荐

