是否可以确定系统F(或其他归一化类型的λ演算)中的


18

我知道,无法确定未类型化的lambda演算的等价性。引用Barendregt,HP Lambda微积分:其语法和语义。北荷兰省阿姆斯特丹(1984)。:β

如果A和B是不相交的非空Lambda项集,且它们在相等条件下关闭,则A和B递归不可分割。因此,如果A是在相等条件下封闭的一组非平凡的Lambda项,则A不会递归。因此,我们无法确定问题“ M = x?”。对于任何特定的M。同样,Lambda没有递归模型。

如果我们有一个规范化系统,例如System F,则可以通过减少两个给定的项并比较它们的范式是否相同来确定“ 等效性”。但是,我们可以“从内部”做到吗?是否存在一个System-F组合器E,对于两个组合器M和N,如果M和N具有相同的范式,则我们的E M N = 真,否则,E M N = 假?还是至少可以在M s内完成?构造一个组合器E MβEMNEMN=trueMNEMN=falseMEM这样是当且仅当真正ñ ≡ β中号?如果没有,为什么?EMNN≡βM

Answers:


19

不,不可能。请考虑以下类型的两个居民。(A→B)→(A→B)

M=λf.fN=λf.λa.fa

这些是截然不同的正规形式,但不能用lambda项来区分,因为N是M的η-展开,而η-展开在纯类型的lambda演算中保留了观测等价物。βNηMη

科迪问,如果我们也用等价进行修正,会发生什么情况。由于参数化,答案仍然是否定的。考虑在键入以下两个术语(∀ α 。η:(∀α.α→α)→(∀α.α→α)

M=λf:(∀α.α→α).Λα.λx:α.f[∀α.α→α](Λβ.λy:β.y)[α]xN=λf:(∀α.α→α).Λα.λx:α.f[α]x

它们是不同的,η长形式,但在观察上是等效的。事实上,这种类型的所有功能是等效的,因为∀ α 。βη是单元类型的编码,因此所述类型的所有功能(∀ α 。∀α.α→α必须在扩展上相等。(∀α.α→α)→(∀α.α→α)


2
好吧,与β,η
— equivalence

11

另一种可能的答案尼尔的完全正确的一项:假设有是一个组合子,在F系统良好的输入,使得上述条件成立。E的类型是:EE

E:∀α.α→α→bool

事实证明,有一个免费的定理表示这样的术语一定是常数:

∀T, t,u,t′,u′:T, E T t u=E T t′ u′

E

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.