Lambda演算的组合解释


10

根据彼得·塞林格(Peter Selinger)的观点,拉姆达微积分是代数(PDF)。在本文的开头,他说:

众所周知,lambda演算的组合解释是不完善的,因为它不满足:在这种解释下,并不意味着\ lambda xM = \ lambda xN(Barendregt,1984)。ξM=Nλx.M=λx.N

问题:

  • 在这里意味着什么等价?
  • 给定等效性的定义,隐含的反例是什么?

Answers:


7

等价只是正在讨论的等式理论中的等价。在这种情况下,这是表1中概述的理论。请注意,该理论不包含:这样做会使该理论具有可扩展性,而最终的目的是尊重的内涵,而会使CL趋于线性。部分延伸。我不确定为什么其他答案提到。η ξ λ ηληξλη

注意在:λ

(1)(M=βN)⟹(λx.M=βλx.N)

这应该是非常直观:如果是可转化到当它孤零零地立着,那么它也是可转化到当它是一个subterm。β Ñ β Ñ λ X 。中号MβNβNλx.M

所述 -rule,定义为 使得这种推理直接可能当它的一部分 -理论。它的CL类似物为: 中号ξ λ中号

M=N(ξλ)(λx.M)=(λx.N)
λ
M=N(ξCL)(λ∗x.M)=(λ∗x.N)

现在,关键是在CL中,以下内容不成立:

(2)(M=wN)⟹(λ∗x.M=wλ∗x.N)

换句话说,如果两个项弱相等,那么对于它们的伪抽象版本来说不一定是正确的。

因此,如果将添加到CL理论中,那么我们便开始将具有不同范式的项等同起来。ξCL


注意。在此,表示弱等式。这意味着可以通过一系列和收缩(如果是理论的一部分,也可以是)转换为(反之亦然)。您可能知道,是的CL类似物。M N S K I = w = βM=wNMNSKI=w=β

λ∗是文档第5页上定义的伪抽象。它具有以下属性:

(3)(λ∗x.M)N⊳w[N/x]M

此属性使查找任何术语的CL类似物变得容易:只需将更改为并根据的定义应用翻译。λ λ * λ *λλλ∗λ∗


需要明确的是,此答案中的“反例” 不是(2)的反例。因为如果我们有:

Ñ = (λ * Ž 。Ž )X

(4)M=x
(5)N=(λ∗z.z)x

然后真正表示(应用第5页的翻译,以及在第4页末尾被定义为的事实):I S K KNISKK

(6)N=(λ∗z.z)x=Ix=SKKx

由于,我们确实有。但是,如果这是一个反例,则应具有。但是,如果我们翻译,我们实际上会得到:中号= 瓦特 Ñ (λ * ý 。中号)≠ 瓦特(λ * ý 。Ñ )SKKx⊳wKx(Kx)⊳wxM=wN(λ∗y.M)≠w(λ∗y.N)

(λ * ý 。Ñ )= (λ * ý 。小号ķ ķ X )= ķ(小号ķ ķ X )

(7)(λ∗y.M)=(λ∗y.x)=Kx
(8)(λ∗y.N)=(λ∗y.SKKx)=K(SKKx)

并且很容易验证(7)和(8)仍然弱相等,因为:

(9)K(SKKx)⊳wK(Kx(Kx))⊳wKx

现在,对(2)的适当反例将是:

N = x

M=Kxy
N=x

由于,我们肯定有。但是,如果仔细翻译抽象版本,则会发现两者都是不同的常规形式-根据Church-Rosser定理,它们不能转换。中号= 瓦特 ÑKxy⊳wxM=wN

首先我们检查:M′

M′=λ∗x.Kxy=S(λ∗x.Kx)(λ∗x.y)=S(λ∗x.Kx)(Ky)=S(S(λ∗x.K)(λ∗x.x))(Ky)=S(S(λ∗x.K)(I))(Ky)=S(S(λ∗x.K)(SKK))(Ky)=S(S(KK)(SKK))(Ky)
在这里您可以验证是正常形式。在这里,您可以检查,正如您应该期望的那样,如果行为类似于CL的抽象器。M′(λ∗x.Kxy)P⊳wPλ∗

现在我们检查: N′

N′=λ∗x.x=I=SKK

这显然是不同于的范式,因此根据Church-Rosser定理,。还要注意,即和 '对于任意输入 '产生相同的输出' 。中号” ≠ 瓦特ñ ' Ñ ' P ⊳ 瓦特 P 中号' Ñ ' PM′M′≠wN′N′P⊳wPM′N′P

现在我们证明了(2)在CL中不成立,因此并入的CL理论将等同于不弱相等的项。但是我们为什么要关心呢?ξ

好吧,首先,它使的组合解释不完美:显然,并非所有元理论特性都可以继承。λ

另外,也许更重要的是,尽管存在和CL的扩展理论,但它们最初并通常保持内涵。强度是一个很好的属性,因为和CL模型作为过程进行计算,并且从这个角度来看,总是产生相同结果(给定相等输入)的两个不同程序(特别是具有不同范式的术语)将不相等。在尊重这个原则,如果我们想使扩展的,我们可以添加例如。但是引入λ ξ λ λ η ξ ξλλξλληξ在CL中不再使它完全内涵化(事实上,只是部分如此)。正如文章所述,这就是的“恶名” 的原因。ξ


1
我无法评论质量,因为我对这门学科知之甚少,但这看起来有点工作。感谢,谢谢!
— 拉斐尔

确实,该职位的结局比我预期的要长。谢谢你的评论。:)
— Roy O.

2
哦这个。发生。定期。
— 拉斐尔

3

编辑这个答案是不正确的,因为另一个回答者正确指出。我使用了Asperti&Longo的组合逻辑翻译,这与Selinger的巧妙不同。

实际上,这说明了一个关键点:lambda演算的“组合解释”不是一件容易的事!不同的作者所做的略有不同。

我将答案留给后代,但另一个答案更好。


在此上下文中的等效性由Selinger的论文的表1和2定义。但是,公理化稍有不同可能会使事情更加清楚。

真正的意思是两个术语在理论中是可转换的。我们可以通过以下两个公理定义“可转换性”:λ

  • (λ X 。中号)ñ = [ Ñ / X ] 中号Xβ。,如果释放用于在(λx.M)N=[N/x]Mx中号NM
  • λ ÿ 。M y = M y Mη。,如果在不自由λy.My=MyM

当然,还要加上使一致所需的通常的公理和推理规则。由此可见,任何反例都将依赖于规则被破坏时的自由变量条件。η=η

我认为这可能是最简单的:

Ñ = (λ Ž 。Ž )X

M=x
N=(λz.z)x

您可以自己验证,但是根据表2中的规则,它们各自的组合解释不相等。λy.M=λy.N


对于您的答案,我不了解:1)为什么要提到,而表1中的理论并未包括它,并且显然是故意的?2)和的组合解释如何不等于?我的答案中的推导表明它们是。3)没有解决 -rule,这是问题的元凶。λ ÿ 。中号λ ÿ 。ñ ξηλy.Mλy.Nξ
— Roy O.
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.