为什么是无限类型层次结构?


18

Coq,Agda和Idris具有无限的类型层次结构(类型1:类型2:类型3:...)。但是,为什么不像λC那样代替它呢?λC是最接近构造演算的lambda立方系统,它只有两种,和and,并且有这些规则?

:

ΓT1:s1Γ,x:T1t:T2Γ(λx:T1,t):(Πx:T1,T2)

ΓT1:s1Γ,x:T1T2:s2Γ(Πx:T1,T2):s2

这似乎更简单。这个系统有重要限制吗?

Answers:


19

实际上,CoC的方法更具表现力-允许任意强制性量化。例如,键入a.aa可以实例化\ to a以获得(a.aa)(a.aa),这在Universe层次结构中是不可能的。

它没有被广泛使用的原因是强制性量化与经典逻辑不兼容。如果有的话,就无法给出类型理论的模型,在该模型中,类型被天真地解释为集合-参见约翰·雷诺兹(John Reynolds)着名的论文《多态性不是集合论》。

由于许多人希望使用类型理论作为对普通数学证明进行机器检查的方式,因此他们通常对与常规基础不兼容的类型理论特征不感兴趣。实际上,Coq最初支持不可抗药性,但他们已经稳步放弃了。


9

我会对Neel(和往常一样出色)的回答表示赞赏,并进一步说明了为什么在实践中使用水平。

CoC的第一个重要限制是它微不足道!令人惊讶的发现是,没有一种类型可以证明它具有多个元素,而无穷多个元素。仅添加2个Universe即可为您提供具有可证明的无限多个元素和所有“简单”数据类型的自然数。

第二个限制是计算规则:CoC仅支持迭代,也就是说,可追溯函数无法访问其参数的子项。因此,将归纳类型添加为原始构造更为方便,从而产生了CIC。但是现在又出现了另一个问题:最自然的归纳法则(在这种情况下称为消除法)与排除中间法则不一致!如果将归纳规则限制为具有Universe的谓词类型,则不会出现这些问题。

总之,看来CoC既不具有您希望在基本系统中实现的表现力,也没有鲁棒性。添加Universe解决了许多此类问题。


您对第一个限制有一些参考吗?如果不是,您能否暗示第二宇宙如何帮助证明(命题?元?)不等式?
卢卡斯卢

@ŁukaszLew实际上,这是“证明无关的”模型的简单结果,可以在某些地方轻松找到它。在该模型中,任何类型的元素都不能超过1个。具有2个Universe将阻止该模型的存在。亚历山大·米克尔(Alexandre Miquel)的论文为具有两个Universe的无限数量元素的类型提供了参考。
科迪
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.