根据彼得·塞林格(Peter Selinger)的观点,拉姆达微积分是代数(PDF)。在本文的开头,他说:
众所周知,lambda演算的组合解释是不完善的,因为它不满足:在这种解释下,并不意味着\ lambda xM = \ lambda xN(Barendregt,1984)。
问题:
- 在这里意味着什么等价?
- 给定等效性的定义,隐含的反例是什么?
根据彼得·塞林格(Peter Selinger)的观点,拉姆达微积分是代数(PDF)。在本文的开头,他说:
众所周知,lambda演算的组合解释是不完善的,因为它不满足:在这种解释下,并不意味着\ lambda xM = \ lambda xN(Barendregt,1984)。
问题:
Answers:
等价只是正在讨论的等式理论中的等价。在这种情况下,这是表1中概述的理论。请注意,该理论不包含:这样做会使该理论具有可扩展性,而最终的目的是尊重的内涵,而会使CL趋于线性。部分延伸。我不确定为什么其他答案提到。η ξ λ η
注意在:
这应该是非常直观:如果是可转化到当它孤零零地立着,那么它也是可转化到当它是一个subterm。β Ñ β Ñ λ X 。中号
所述 -rule,定义为 使得这种推理直接可能当它的一部分 -理论。它的CL类似物为: 中号 λ中号
现在,关键是在CL中,以下内容不成立:
换句话说,如果两个项弱相等,那么对于它们的伪抽象版本来说不一定是正确的。
因此,如果将添加到CL理论中,那么我们便开始将具有不同范式的项等同起来。
注意。在此,表示弱等式。这意味着可以通过一系列和收缩(如果是理论的一部分,也可以是)转换为(反之亦然)。您可能知道,是的CL类似物。M N S K I = w = β
是文档第5页上定义的伪抽象。它具有以下属性:
此属性使查找任何术语的CL类似物变得容易:只需将更改为并根据的定义应用翻译。λ λ * λ *
需要明确的是,此答案中的“反例” 不是(2)的反例。因为如果我们有:
Ñ = (λ * Ž 。Ž )X
然后真正表示(应用第5页的翻译,以及在第4页末尾被定义为的事实):I S K K
由于,我们确实有。但是,如果这是一个反例,则应具有。但是,如果我们翻译,我们实际上会得到:中号= 瓦特 Ñ (λ * ý 。中号)≠ 瓦特(λ * ý 。Ñ )
(λ * ý 。Ñ )= (λ * ý 。小号ķ ķ X )= ķ(小号ķ ķ X )
并且很容易验证(7)和(8)仍然弱相等,因为:
现在,对(2)的适当反例将是:
N = x
由于,我们肯定有。但是,如果仔细翻译抽象版本,则会发现两者都是不同的常规形式-根据Church-Rosser定理,它们不能转换。中号= 瓦特 Ñ
首先我们检查:
现在我们检查:
这显然是不同于的范式,因此根据Church-Rosser定理,。还要注意,即和 '对于任意输入 '产生相同的输出' 。中号” ≠ 瓦特ñ ' Ñ ' P ⊳ 瓦特 P 中号' Ñ ' P
现在我们证明了(2)在CL中不成立,因此并入的CL理论将等同于不弱相等的项。但是我们为什么要关心呢?
好吧,首先,它使的组合解释不完美:显然,并非所有元理论特性都可以继承。
另外,也许更重要的是,尽管存在和CL的扩展理论,但它们最初并通常保持内涵。强度是一个很好的属性,因为和CL模型作为过程进行计算,并且从这个角度来看,总是产生相同结果(给定相等输入)的两个不同程序(特别是具有不同范式的术语)将不相等。在尊重这个原则,如果我们想使扩展的,我们可以添加例如。但是引入λ ξ λ λ η ξ ξ在CL中不再使它完全内涵化(事实上,只是部分如此)。正如文章所述,这就是的“恶名” 的原因。
编辑这个答案是不正确的,因为另一个回答者正确指出。我使用了Asperti&Longo的组合逻辑翻译,这与Selinger的巧妙不同。
实际上,这说明了一个关键点:lambda演算的“组合解释”不是一件容易的事!不同的作者所做的略有不同。
我将答案留给后代,但另一个答案更好。
在此上下文中的等效性由Selinger的论文的表1和2定义。但是,公理化稍有不同可能会使事情更加清楚。
真正的意思是两个术语在理论中是可转换的。我们可以通过以下两个公理定义“可转换性”:
当然,还要加上使一致所需的通常的公理和推理规则。由此可见,任何反例都将依赖于规则被破坏时的自由变量条件。η
我认为这可能是最简单的:
Ñ = (λ Ž 。Ž )X
您可以自己验证,但是根据表2中的规则,它们各自的组合解释不相等。