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


18

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

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

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

Answers:


19

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

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

这些是截然不同的正规形式,但不能用lambda项来区分,因为NMη-展开,而η-展开在纯类型的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.