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)Nw[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

由于,我们确实有。但是,如果这是一个反例,则应具有。但是,如果我们翻译,我们实际上会得到:中号= 瓦特 Ñ λ * ý 中号瓦特λ * ý Ñ SKKxwKx(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定理,它们不能转换。中号= 瓦特 ÑKxywxM=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)PwPλ

现在我们检查: N

N=λx.x=I=SKK

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

现在我们证明了(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.