如何正确地在lambda演算中减去TRUE和TRUE?

时间:2017-04-08 10:51:17

标签: lambda-calculus

我试图理解lambda演算。但是,我有点卡在这个表达式上:TRUE和TRUE。我无法弄清楚你是如何从

获得的
((\T F -> T) (\T F -> T)) 

(\F T F -> T)

,而不是

(\F -> (\T F -> T))

\是lambda-signature

graphical explanation

1 个答案:

答案 0 :(得分:2)

(\F T F -> T)

(\F -> (\T F -> T))

是一回事。

https://en.wikipedia.org/wiki/Lambda_calculus_definition#Notation

  
      
  • 最外面的括号被删除:M N而不是(M N)
  •   
  • [...]
  •   
  • 抽象主体尽可能向右延伸:λx. M N表示λx. (M N)而非(λx. M) N
  •   
  • 签订了一系列抽象:λx. λy. λz. N缩写为λxyz. N
  •   

特别是

(\F -> (\T F -> T))

可以写

(\F -> \T F -> T)

因为我们可以删除多余的括号,并且外部lambda的主体尽可能向右延伸,然后可以写入

(\F -> \T -> \F -> T)

(\F T F -> T)

最后一条规则(收缩)。