λ演算扩展中的η转换与可扩展性


14

η转换与可扩展性之间的关系经常使我感到困惑。

编辑:根据评论,似乎我也对延伸对等与观察对等之间的关系感到困惑。但是至少在具有函数的扩展性相等性的Agda(作为假设)和简单类型的lambda演算(如果我没有记错的话,它具有完全抽象的语义)中,指称等效性与观察性等效性相同。随时用评论或答案来纠正我;我从未在这些问题上接受过系统的教育。

在无类型的lambda演算中,如Barendregt所证明的那样(根据该问题的回答),eta规则提供与扩展性规则相同的证明系统。我理解这意味着具有等于规则的证明系统对于观察等价而言是完整的(从其他答案来看,可能需要ξ规则规则,即根据约束力IIUC进行归约;我也没有问题添加该规则) 。

但是,如果我们切换到类型化演算并添加额外的基本类型以及相应的引入和消除形式来扩展该演算,会发生什么?我们还能为观察等效性编写一个完整的证明系统吗?我将按照米切尔(Mitchell)的编程语言基础(FPL)来讨论公理语义形式的证明系统。证明系统/公理语义定义程序等效性。

问题1:Barendregt定理是否扩展到STLC?在这种情况下,η等价性等同于可扩展性吗?

我正在浏览FPL对PCF的讨论(但尚未完成本节),似乎一旦添加了对,可扩展性就需要另外一条规则,即排斥性配对:pair (Proj1 P, Proj2 P) = P。有趣的是,该规则与对的引入和消除完全相同,就像η规则与功能的引入和消除一样。

问题2:添加简单的配对公理是否足以证明简单的带对的λ微积分的可扩展性?编辑问题2b:由于我提到的结构相似性,否定性配对η-律,如本文中提到的η-律?

现在让我们一路前往PCF。然后,我所看到的对扩展性相等的描述证明了扩展性是一种归纳证明的规则,但是他们没有说这是否足够。由于PCF是图灵完备的,所以扩展等式是不确定的。但这并不意味着没有完整的证明系统,因为证明的长度是不受限制的。更相关的是,这样的证明系统可能与哥德尔的不完备性定理相矛盾。该论点甚至适用于不带的PCF fix和Gödel的SystemT。

问题3:PCF中是否存在用于观测等效性的完整证明系统?没有PCF fix呢?

更新:完全抽象

我在这里回答关于完全抽象的评论。我认为PCF遇到两种不同类型的问题:它具有非终止(通过修复),这会导致完全抽象的丢失,但是它也具有自然数。这两个问题都使观察对等难以解决,但我认为彼此独立。

一方面,PCF失去了完全的抽象,因为并行或存在于语义域中(Plotkin 1977),这似乎与非终止有关。Ralph Loader(2000年,“最终PCF不可判定”)表明,最终PCF(无自然值,但具有非终止性)已经不确定。因此,(如果我总结正确的话),完全抽象的语义不能限制于具有可计算操作的域。

另一方面,以不带有终结符的GödelSystem T为例。(我不确定它具有完全抽象的语义,但是我猜是的,因为仅针对PCF提到了该问题;该域必须包含高阶原始递归函数)。Harper的《编程语言实用基础》讨论了该语言的观察等效性。秒 47.4的标题为“一些平等法则”,并显示了观察等效性的一些可接受的证明规则。它没有地方说出证明系统是否完整,所以我想不是,但也没有地方讨论它是否可以完成。我的最佳猜测可以追溯到哥德尔的不完全性定理。


1
我想我可以回答其中一些问题,但是我对您要问的内容感到困惑。您所指的问题与程序等效性无关。你是说观察等效吗?对于什么操作语义?因此,从本质上讲,如果您确切解释问题1中的“证明”是指什么,我想我可以猜测正在发生什么。到目前为止,我最好的猜测是:您想要一个等式理论,该理论对于观察等效性是完整的,并且您正在问我们规则是否足够。是吗 η
安德烈·鲍尔

@AndrejBauer:您的猜测是正确的,我将开始更新问题。
2013年

我不确定操作语义-这是否对原始定理有所不同?
2013年

我试图进一步完善这个问题。但我仍然认为您的最佳猜测是正​​确的。
Blaisorblade 2013年

这里有一个小问题:真的不清楚是自然数!如果你只是刚功能和产品类型,那么你在明确的:条件是观察性等价当且仅当它们是β η相等。更笼统地说,我认为这与完全抽象的问题有关。ηβη
科迪

Answers:


7

我不确定我是否能完全回答您的问题,但是我会试一试,并提出一些我自己的问题,这些问题可能会激发对此问题的进一步讨论。

我的第一点是这样的:两个术语无类型λ演算被说成是可观察地等于每术语IFF 中号中号 终止 中号'  终止  在哪里终止装置“具有β -正常形式”t,t λM

M t terminates M t terminates 
β

我发现考虑带有“空洞”或上下文 的术语而不是简单地使用术语M并写E [ t ]而不是M t更为自然。这两种观点当然是相当的(如果变量没有上下文的约束),作为抽象允许你打开上下文 é [ _ ]进入长期λ X E [ x ]E[_]ME[t]M tE[_]λx.E[x]

现在,这是一个事实,即在无类型演算观察平等没有捕获 -equality!确实存在一整类术语,它们既不终止也不具有正态范式,因此可以观察到地相等。这些有时被称为永久术语不可解术语,这里是两个这样的术语: λ X X X λ X X X λ X X X X λ X βη

(λx.x x)(λx.x x)
这是很容易证明,这些条件不 β η -EQUal。
(λx.x x x)(λx.x x x)
βη

如果确定了所有永久性术语,则经典结果将完全捕获观察相等性(请参见Barendregt定理16.2.7)。


现在用于键入结石。让我们首先考虑不带自然数的简单类型的 演算。随着每个术语的归一化,上述观察性平等的定义变得微不足道!我们需要更好的区分。对于封闭项,我们将使用值相等性 t 1t 2,由对t 1t 2的类型的归纳定义。让我们先来添加每种类型的一个,常量无限数量的ç ç ' ç ...。我们将选择一些常数c xλt1t2t1t2AcA,cA,cA,cx对应于每个变量的适当类型。x

  1. 在基本类型12当且仅当β的-head正常形式1ç Ù 1 ... Ü Ñ和的2d v 1 ... v ÑC ^ = dü 1v 1... ü ñv ň在各自的类型。Bt1t2βt1c u1unt2d v1vnc=du1v1,,unvn

  2. 如果使用箭头类型,则均将两个项β-都减小为 λ-吸收量。t1t2βλ

注意,在此定义中我仅使用 conversion。β

现在,我定义背景是: 具有标题上下文,应用,抽象和替换(按闭合术语)。

[_]E[_] ut E[_]λx. E[_]E[_]θ

然后,当且仅当对于每个上下文E [ _ ] 使得E [ t ] E [ t ' ]的类型正确且封闭时,我们才能将类型为T的t '定义为在观察上等效。 E [ t ] E [ t ' ]ttTE[_]E[t],E[t]

E[t]E[t]
,我们将写在这种情况下t=obst

现在很容易观察到,如果然后 = ö b 小号'。另一个方向是没有价值的,但也适用:事实上,如果= ö b 小号',那么我们可以表明,该术语是相等的β η通过感应的类型:t=βηtt=obstt=obstβη

  1. E[_][_]θθxcxE[t]=tθE[t]=tθtθβcx u1θunθtθβcx v1θvnθ. We then have cx=cx and so x=x. Now we can't immediately conclude that uiθ=βηviθ. Indeed, if ui and vi are λ-abstractions, then trivially uiθviθ! The trick here is to send x to

    λy.cx~ (y1c1)(yncn)
    and to repeat this as many times as necessary. I'm a bit fuzzy on the details here, but the idea is similar to Böhm's theorem (Barendregt again 10.4.2).
  2. At arrow type, take E[_] to be [_] cy, i.e. application to cy with cy and y not in t or t. By the induction hypothesis we have:

    t cy =βη t cy
    and so
    t y =βη t y
    Which gives λy.t y =βη λ.t y and finally by η-equality:
    t =βη t

That was harder than expected!


Alright let's tackle system T. Let's add a type N to the mix, constructors 0 and S, and a recursor recT for each type T, with the "β-rules"

recT u v 0βu
recT u v (S n)βv n (recT u v n)

We want to prove the same theorem as above. It's tempting to add "η-rules" to prove equivalences like:

λx.x =βη recN 0 (λk m.S m)
where the term on the right is the "stupid identity" that peels off m successors just to add them again.

For example let's add this rule:

f (S x) =βη h x (f x)f t =βηrecT (f 0) h t
where x is a fresh variable as in the usual η rule. Now note that this rule is recursively enumerable (you can try every possible choice for h).

Can we prove the same theorem as above? Unfortunately, as you suspected, you're going to run into some Gödel nastiness, or rather, the Kleene variant (see Wikipedia). For every Turing machine M, it's easy to build a term tM in system T such that tM (S S 0) (with n Ses) returns 1 if M finishes in at most n steps and 0 otherwise.

So now if M does not terminate, you can ask whether the (true) equation

tM =λx.0
is provable using the βη rules above. But taking M to be the machine that terminates iff
0 =βη S 0
is provable in system T (with the above rules), you're going to run into trouble, i.e. the equation tM=λx.0 is true but not provable (or Peano Arithmetic is inconsistent!).

Thanks for your answer! My first question is: is it usual to have substitutions in contexts for observational equivalence? At least Plotkin's LCF paper (1997) does not do that (though I can imagine something like that would make sense in some closure calculus, where something like substitutions is part of the syntax). But I can easily see for each "substitution" context one can define a more (for me) "standard" context which uses just lambda-abstraction and application, say (λx.[]) c_x; so I guess the observational equivalence above is equivalent to the definition I'm used to.
Blaisorblade

The "true but not provable" equation is (I assume) t=λx.0, not 0=βηS0, right? To construct M, I guess you just need to enumerate proofs looking for one of 0=βηS0. However, I'm still lost as to why 0 = 1 is hard enough — actually, it should be easy to prove that 0βηS 0 since they're both normal forms, and I'd be surprised if Peano arithmetic weren't strong enough.
Blaisorblade

Say instead that M searches for a proof of the inconsistency of arithmetic. You still have t=λx.0 because arithmetic is consistent, but by the second incompleteness theorem, proving this requires more metatheoretic power than Peano arithmetic (or than the rules we discussed), so our simple rules won't be able to proof this observational equivalence. Does this make sense? I've looked up Wikipedia, but it's not very specific on Kleene's variant of Gödel's result; maybe if I knew that proof better, I would also understand your proof. (Meanwhile, upvoting you anyway).
Blaisorblade

1
3. Note that PA can prove 01, but not "PA0=1", so you can try looking for that proof for ever. I've used the same kind of trick above to find an observational equality in T that can't be captured by any "reasonable" equality rule. You could always add the rule
f 0=g 0f (S 0)=g (S 0)f=g
but that would be non-effective (and complete!). I have a feeling that's not what you're looking for though.
cody

1
That's right! Though it does sometimes make sense to consider such "infinitary" systems for proof-theoretical purposes (e.g. ordinal analysis).
cody
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.