在HOTT和COQ中,人们无法证明UIP,即 \ Prod_ {p:a = a} p = refl a
但有人可以证明:
\ Prod_ {p:a = a}(a,p)=(a,refl a)
为什么定义它是这样的? 是吗,因为人们希望有一个很好的同伦解释? 或者这个定义有一些自然的,更深层次的原因吗?
答案 0 :(得分:5)
今天我们知道拒绝UIP的一个很好的理由:它与同伦类型理论的单一性原理不相容,后者粗略地说可以识别出同构类型。然而,据我所知,Coq平等不能验证UIP的原因主要是遗传自其祖先之一的历史事故:Martin-Löf的内涵类型理论,它早于HoTT多年。
ITT中的平等行为最初是出于保持类型检查可判定性的愿望。这在ITT中是可行的,因为它要求我们明确标记证明中的每个重写步骤。 (形式上,这些重写步骤对应于在Coq中使用等式消除器eq_rect
。相比之下,Martin-Löf设计了另一个称为扩展类型理论的系统,其中重写是隐式:每当两个条款a
和b
相等,在我们可以证明a = b
的意义上,它们可以互换使用。这依赖于相等反射规则,它表明命题相等的元素在定义上也是相等的。不幸的是,为这种便利付出了代价:类型检查变得不可判定。粗略地说,类型检查算法在很大程度上依赖于ITT的显式重写步骤来指导其计算,而ETT中缺少这些提示。
由于平等反映规则,我们可以在ETT中轻松证明UIP;然而,很长一段时间不知道UIP是否可以在ITT中证明。我们不得不等到90年代Hofmann and Streicher的工作,这表明UIP无法通过构建UIP无效的模型在ITT中得到证明。 (请查看霍夫曼的这些slides,从历史的角度解释这个问题。)
这并不意味着UIP与可判定类型检查不兼容:后来证明它可以在Martin-Löf类型理论的其他可判断变体(例如Agda)中导出,并且可以安全地添加为像Coq这样的系统中的公理。
答案 1 :(得分:3)
直观地说,我倾向于认为a = a
为pi_1(A,a),即从a到自身模数同伦等价的路径类;而我认为{ x:A | a = x }
是A的通用覆盖空间,即从模数同伦等价的一个到另一个点的路径。因此,虽然pi_1(A,a)通常是非平凡的,但我们确实A的通用覆盖空间是可缩小的。