可自行归纳的Lambda-Calculus术语


13

在我继续尝试学习lambda演算的过程中,Hindley&Seldin的“ Lambda-Calculus and Combinators简介”中提到了以下论文(由Bruce Lercher撰写),该论文证明了唯一可还原的表达式与其自身相同(模Alpha转换)是:。(λx.xx)(λx.xx)

尽管我相信结果,但我完全不遵循这一论点。

它很短(少于一个段落)。任何解释将是最欢迎的。

谢谢,

查理

Answers:


16

首先,请注意,该结果指出,右侧等于左侧(模alpha转换)的唯一beta redex是(λx.xx)(λx.xx)。在上下文中具有此redex,还有其他一些术语会减少。

我可以看到Lercher的大多数证明工作是如何进行的,尽管有些地方如果不稍加修改就无法通过。假设(我使用表示alpha等价),并且根据变量约定,假设在中不自由出现。(λx.A)B=[B/x]A=xB

计算左侧和右侧的数量。还原移除一个从归约式,加上那些的,以及多达有在添加倍的出现次数中。换言之,如果是数量的在和是游离出现数在然后。Diophantine方程的唯一解决方案是(和但我们不会使用该事实)。λBBxAL(M)λM#x(M)xM1+L(B)=#x(A)×L(B)#x(A)=2L(B)=1

对于以上段落,我不理解莱切尔的观点。他计算和原子项的数量;让我们写这个。等式为,它有两个解:和。我看不出消除第二种可能性的明显方法。λ#(M)#(B)+1=#x(A)×(#(B)1)#x(A)=2,#(B)=3#x(A)=3,#(B)=2

现在让我们对两边等于的数量应用相同的推理。还原移除一个靠近顶部,并作为有取代的出现许多增加在,即2。因此之一多个发生必须消失; 由于的那些仍然存在(因为包含自由),因此在左侧的额外出现必须为。BxABABxBλx.A

我不明白Lercher如何推断没有作为子项,但这实际上与证明无关。AB

根据最初的假设,是一个应用程序。这不可能是的情况下,如果,因此本身是一个应用,具有。由于不能将自身作为子项,因此不能具有的形式,因此。同样,。[(λx.A)/x]AA=xAMNλx.MN=[(λx.MN)/x]M=[(λx.MN)/x]NMMλx.PM=xN=x


我更喜欢无数论证的证明。假设。(λx.A)B=[B/x]A

如果则我们有,这是不可能的,因为不能是其自身的子项。因此,由于假设的右手边等于应用程序,因此必须是应用程序和和。A=x(λx.A)B=BBAA1A2λx.A=[B/x]A1B=[B/x]A2

根据以前的等式,或。在第二种情况下,,这是不可能的,因为$ A_1不能成为其自身的子项。1 = λ X [ / X ] 1 = λ X λ X 1 2A1=xA1=λx.[B/x]AA1=λx.(λx.A1A2)B

根据后者的等式,或没有自由(否则将是其自身的子项)。在后一种情况下,。A 2 x B A 2 = BA2=xA2xBA2=B

我们已经证明。因此,初始假设的右侧为,并且 =。= λ X λ X X XA=xxBBB=λx.Aλx.xx

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.