用公理扩展CIC有什么负面影响?


13

将公理添加到CIC确实会对定义和定理的计算内容产生负面影响吗?我的理解是,在该理论的正常行为,任何封闭来看会减少它的规范形式,例如,如果是真实的,那么ñ必须降低到窗体的一个术语S ^ ü Ç Ç 小号ü c c 0 。但是,当假设一个公理时(例如函数扩展性公理),我们只是向系统添加一个新常数。n:Nn(succ...(succ(0)))funext

funext:Πx:Af(x)=g(x)f=g

这将只是“神奇”产生的一个证明从任何证明Π X 一个 ˚F X = g ^ X ,没有在所有任何计算的意义(在这个意义上,我们不能提取他们的任何代码?f=gΠx:Af(x)=g(x)

但是为什么这个“坏”呢?

对于funext,我读了这个coq条目和这个mathoverflow问题,它将导致系统失去规范性或可判定的检查。coq条目似乎是一个很好的例子,但我仍然希望对此有更多参考-某种程度上我找不到。

如何添加额外的公理会导致CIC表现更糟?任何实际的例子都很好。(例如,Univalence公理?)我担心这个问题太过温和了,但是如果有人可以阐明这些问题或给我一些参考,那就太好了!


PS:常见问题解答条目提到“ Thierry Coquand已经观察到在90年代中期,内涵家庭的模式匹配与扩张性不一致。” 有人知道用哪种纸或什么东西?

Answers:


7

拒绝公理的第一个原因是,它们可能不一致。即使对于被证明是一致的公理,也有一些具有计算解释(我们知道如何用归约原理来扩展定义等式),而另一些则没有-打破规范。由于不同的原因,这是“不好的”:

  • 从理论上讲,经典可以让您证明语言价值的事情,而不必使用特定的模型。考虑您的系统是一个非常令人满意的属性;特别是,它支持有关现实世界的主张-我们可以nat将系统中形式化的类型视为真正的“自然数”,因为我们可以证明其封闭的正常居民确实是自然数。否则,很容易认为您已在系统中正确建模了某些东西,但实际上是在使用不同的对象。

  • 实际上,归约是依赖类型理论的主要资产,因为它使证明变得容易。证明命题相等性可能是任意困难的,而证明定义相等性是(较少可能)但要容易得多,因为证明项是微不足道的。更一般而言,计算是证明助手用户体验的核心方面,通常定义事物只是为了使它们按照您的期望正确地减少。(您不需要公理就可以使计算变得困难;例如,对命题相等性使用转换原理已经可以阻止归约)。反思证明的整个过程是基于使用计算来帮助证明的。与其他基于逻辑的证明助手(例如,仅支持等式推理的HOL-light;或使用Zombie寻求其他方法)以及使用未经检查的公理或其他编程样式相比,这是功能和便利性方面的主要区别。可以让您脱离这个舒适区。


+1感谢您的回答!您能给我一些具有计算解释性(或对该主题的任何参考)的公理示例吗?
StudentType

具有计算解释的一个公理示例是Prop-Irrelevance:声称某种类型的所有居民(在这种情况下,Prop就是Coq证明助手中的那种居民,它们完全对应于逻辑语句; Prop-Irrelevance对应忽略那些陈述的证据的内部结构)可以通过不再关心它们来完成,它不需要影响计算-但是需要谨慎进行,以免使系统不一致。
加什

另一类计算解释来自经典推理和控制效果之间的对应关系。其中最著名的部分是可以通过连续捕获为被排除的中间对象提供计算语义,但是控制的受限形式(正类型的例外)给出了更细粒度的逻辑原理(例如,马尔可夫原理)。参见雨果·赫伯林(Hugo Herbelin)的《直觉逻辑证明马尔可夫原理》,2010
。– gasche

5

要理解为什么用某些公理扩展定理证明者会导致问题,看看何时这样做是有益的也很有趣。我想到了两种情况,它们都与我们不在乎假设的计算行为这一事实有关。

  • 在观察类型理论中,可以假设任何一致性的证明Prop而不会失去正典性。确实,所有证明都被认为是平等的,系统通过完全拒绝查看条款来强制执行。因此,证明是手工制作的或仅作假设的事实不承担任何后果。一个典型的例子是“凝聚力”的证明:如果我们有一个证明eqA = B : Type那么对于任何t类型的At == coerce A B eq t这里coerce简单地沿着输送相等证明的术语。

  • 在MLTT中,可以假定任何负的一致公理而不会丧失正。这背后的直觉是,负公理(形式的公理A -> False)仅用于消除不相关的分支。如果公理是一致的,则只能在确实不相关的分支中使用,因此在评估术语时将永远不会使用它。


4

一个非常糟糕的公理的实际例子,你问什么?

 0 = 1

所提到的Coquand论文可能是[1],他在该论文中指出,依赖的ITT(马丁-洛夫的直觉类型理论)扩展了模式匹配,可以让您证明UIP(身份证明唯一性公理)。后来,Streicher和Hoffmann [2]提出了在ITT中伪造UIP的模型。因此,模式匹配不是ITT的保守扩展。


  1. T. Coquand,与依存类型进行模式匹配

  2. M. Hofmann,T。Streicher,类型理论的群似的解释

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.