是否存在一致且图灵完成的类型化lambda演算?


20

是否存在类型化的Lambda演算,其中Curry-Howard对应关系下的相应逻辑是一致的,并且每个可计算函数都有可键入的Lambda表达式?

公认地,这是一个不精确的问题,缺少“类型化λ演算”的精确定义。我基本上想知道是否有(a)此方面的已知示例,或(b)该领域中某些事物的已知不可能证明。

编辑:@cody在下面的回答中给出了此问题的精确版本:是否存在一个逻辑上纯的类型系统(LPTS),该系统是一致的并且图灵完整的(在下面定义的意义上)?


2
没有递归可公理化的演算(lambda或其他),其可证明的总递归函数都是递归函数,因此您的演算必须包含非终止项。
EmilJeřábek在2015年

2
这个答案有一个定理,说,你不能有任何类型的结石,既图灵完备总。
Andrej Bauer

1
一旦使其足够精确,它很可能会回答您的问题。我认为Andrej的证明不必要地复杂(但它显示了更多的意思):重点仅仅是,如果有一个有效描述的系统,其中所有递归函数都可以表示,这样您就可以在语法上证明表达式是a的诚实表示。递归函数(例如,通过检查它是否在系统中正确键入),那么您将获得通用的总递归函数,这是不可能的。
EmilJeřábek在2015年

1
当然,对此类问题的经典答案可能是:键入具有交集类型的微积分,因为它会键入所有(且仅那些)强烈归一化的项。但是,问微积分是否接受“柯里-霍华德解释”更是一个哲学问题。λ
cody 2015年

2
这里很难更精确,因为问题并不精确。
安德烈·鲍尔

Answers:


21

好吧,我会对此加以说明:通常对于给定的类型系统,以下内容是正确的:T

如果演算中的所有良好型项都已归一化,则T在被视为逻辑时是一致的。TT

证明通常通过假设你有一个术语前进的类型˚F 小号ê,使用发明的还原,以获得正常的形式,然后在这样的术语的结构出发通过感应得到一个矛盾。absurdFalse

很自然地想知道相反是否成立,即

对于任何类型的系统,如果牛逼逻辑一致,然后在每一个良好的长期输入Ť是正火。TTT

这样做的问题是,没有真正的最普遍的“类型系统”概念,甚至在此类系统的逻辑一致性意义上的共识也更少。但是,我们可以凭经验验证

对于大多数具有逻辑解释的类型系统,确实存在相反的情况。

这如何与图灵完整性相关联?好吧,对于一个,如果类型检查是可判定的,那么Andrej的参数表明以下条件之一必须成立:

  1. 该组中的所有良好类型的程序是不是图灵完备。
  2. 有一个不终止的类型良好的程序。

这倾向于表明:

具有逻辑解释一致可递归枚举的类型系统不是图灵完整的。

给出一个实际的定理而不是一个建议,需要使类型系统和逻辑解释的概念在数学上精确。

现在,我想到两点:

  1. 有一个不确定的类型系统,交叉类型系统具有逻辑解释并可以表示每个归一化的项。如您所言,这与图灵完成并不完全相同,因为在将总函数的类型应用于所需参数之前,可能需要对其进行更新(实际上是经过改进)。结石是“咖喱风格”演算和等于STLC + Γ 中号τλΓ中号τσ

    ΓM:τΓM:σΓM:τσ
    很显然,该“解释”=通向一致的逻辑解释。
    Γ中号τσΓ中号τΓ中号τσΓ中号σ
    =
  2. 存在一类类型系统,即纯类型系统,其中此类问题可能很精确。但是,在此框架中,逻辑解释不太清楚。有人可能会说:“如果PTS具有无人居住的类型,则它是一致的”。但这是行不通的,因为类型可能存在于不同的“宇宙”中,其中某些可能是一致的,而有些则可能不一致。 Coquand和Herbelin定义了“ 逻辑纯类型系统”的概念,在这个概念中问题是有道理的,并表明

    每个不一致的,非依赖的 LPTS都有一个循环组合器(图灵完成也是如此)

    在这种情况下,哪个方向回答了一个问题(不一致)。据我所知,关于通用LPTS的问题仍然悬而未决。


编辑: Coquand-Herbelin结果的相反过程并不像我想的那么简单!到目前为止,这是我想出的。

逻辑纯类型系统是与PTS(至少)的种类Ť ÿ p ë,(至少)公理P - [R ø pŤ ÿ p È和(至少)的规则P ř o pp r o pP r o p,并进一步要求没有类型的P r o pP[RØpŤÿpËP[RØpŤÿpË(Prop,Prop,Prop)Prop

现在,我将假设图灵完整性的特定声明:修复LPTS 并让Γ为上下文LΓ

Γ=nat:Prop, 0:nat, S:natnat

图灵完备当且仅当对于每个总可计算函数 ˚F ÑÑ有一个术语˚F使得 Γ ˚FÑ Ñ 并为每 Ñ Ñ ˚F小号Ñ 0 * β小号˚F ñ 0Lf:NNtf

Γtf:natnat
nN
tf (Sn 0)βSf(n) 0

现在,安德烈的对角化论证表明,有是非终止的ñ 一个牛逼tnat

现在看来我们已经中途了!给定一个非终端项,我们要替换的出现ñ 一个牛逼由一些通用的类型,摆脱0小号Γ,我们将有我们的不一致性(一个有人居住在上下文A中P r o p)!Γloop:natnatA0SΓAA:Prop

不幸的是,这很容易卡住我,因为很容易用标识替换,但是0则更难消除。理想情况下,我们想使用一些Kleene递归定理,但我还没有弄清楚。S0


好的,因此请先对您的发言做两点澄清(1)。当您说此交集类型系统不可递归枚举时,您是什么意思?当然,系统定理的集合是重新的,因为您已经将其定为直接的后续演算。另外,我看到您所链接的论文中证明的结果是,系统中可键入的术语恰好是严格归一化的术语。但这与说它可以准确键入全部可计算函数有什么不同吗?比如,是不是强烈正常化,但不是全部?λx.xx
Morgan Thomas

现在,关于您的发言的问题(2)。在我看来,您引述的定理不是我们感兴趣的定理。它说,对于每个非依赖的LPTS,如果不一致,那么它就是图灵完成的。但是我们想知道是否对于每个LPTS,如果它的图灵完成,那么就不一致了。我在这里误会什么吗?
Morgan Thomas

@MorganThomas:啊,你是对第一点正确的:我的意思说的是,该类型的系统不能可判定,即给定,声明Γ 牛逼一个是不可判定。我会在帖子中更正此问题。Γ,t,AΓt:A
科迪2015年

第二点:您还可以正确地确定一个非总计函数的类型正确(尽管不一定将其应用于给定的参数)。我会修改答案。
2015年

1
第三点。你又是对的!但是,相反的情况(在LPTS的特殊情况下)则微不足道。我将概述论点。
2015年

11

这是@cody对我的问题进行精确描述的一种答案。如果我们允许引入其他公理和归约规则,则存在一个一致的LPTS,大致在@cody的意义上是图灵完成的。因此严格来说,该系统不是 LPTS。它仅仅是一个类似的东西。β

考虑构造的演算(或您最喜欢的 cube 成员)。这是一个LPTS,但我们将添加额外的内容,使其不成为LPTS。选择常量符号nat 0 S,然后添加公理:λnat,0,S

0 NAT 小号NAT NAT

nat:
0:nat
S:natnat

指数自然数图灵机的程序,并为每个自然数,选择一个常量符号˚F ē,添加公理˚F ËNAT NAT,并为所有ē X ñ,添加β -还原规则efefe:natnate,xNβ

fe(x)βΦe(x),

其中照常是的输出ë个上图灵机程序X。如果Φ ËX 发散则此规则不执行任何操作。注意,通过添加这些公理和规则,系统的定理仍然可以递归枚举,尽管它的β-约简规则集不再是可判定的,而仅是递归可枚举的。我相信,通过在系统的语法和规则中明确说明计算模型的细节,我们可以轻松地确定β约简规则集。Φe(x)exΦe(x)ββ

现在,从蛮横的角度来看,这个理论显然是图灵大致上的图灵完成的;但声称它也是一致的。让我们构建一个模型。

U1U2U3

  • ,N,0,SU1S
  • abUiaUi
  • A,BUiBAUi
  • AUi and f:AUi, then aAf(a)Ui.

The existence of such sets follows, for example, from ZFC plus the axiom that every cardinal is bounded by an inaccessible cardinal; we can take each set Ui to be a Grothendieck universe.

We define an "interpretation" to be a mapping v from the set of variable names to elements of U2. Given an interpretation v, we can define an interpretation Iv of terms of the system in the evident way:

  • Iv(x)=v(x), for x a variable name.
  • Iv()=U1,Iv()=U2.
  • Iv(nat)=N,Iv(0)=0,Iv(S)=S.
  • Iv(fe)=Φe, i.e., the function NN defined by the eth Turing program.
  • Iv(AB)=Iv(A)(Iv(B)), if Iv(A) is a function with Iv(B) in its domain, or Iv(AB)=0 otherwise (just an arbitrary choice).
  • Iv(λx:A.B) is the function which maps an element aIv(A) to Iv[x:=a](B).
  • Iv(Πx:A.B)=aIv(A)Iv[x:=a](B).

We have that for all terms A, Iv(A)U3. Now we say that an interpretation v satisfies A:B, written vA:B, if Iv(A)Iv(B). We say that ΓA:B if for all interpretations v, if vx:C for all (x:C)Γ, then vA:B.

It is straightforward to check that if ΓA:B, then ΓA:B, so this is a model of the system. But, for any variables x,y, it is not the case that y:x:y, because we can interpret y by , so the system is consistent.

Now, this is an answer to my original question, in the sense that this is something that it's reasonable to call a typed lambda calulus, which is consistent and Turing complete. However, it's not an answer to @cody's question, because this is not an LPTS, because of the addition of extra axioms and β-reduction rules. I imagine that the answer to @cody's question is much harder.


2
This is a nice answer, but I'm not sure you need to go through all those calisthenics to prove consistency: a term of type A in the empty context can be "de-sugared" to a term in the CoC: I'll call the fe(x)Φe(x) rules ι-rules and keep β for the usual ones. Perform all β-reductions (this terminates since you have only added constants), and replace every term of the form fe(x) by its reduct if it has one. The idea here is that the ι-rules only operate on ground terms, so you can do all the β-reductions first to get them out of the way.
cody

I think you're right. This is not my field, so I'm a bit clumsy doing things. :-) I think your proof works, and one interesting consequence, if I'm right, is that this theory doesn't have very much consistency strength. It looks like a potentially very powerful theory, since it has types and natural numbers, which should let you interpret set theory; but apparently you can't, because you can prove it consistent without using powerful set theory!
Morgan Thomas
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.