Z.le在标准库中的定义证明不相关吗?

时间:2018-04-11 16:38:03

标签: coq type-theory

在Coq标准库中,有一个名为comparison的枚举类型,其中包含三个元素Eq,Lt,Gt。这用于定义ZArith中的小于或小于或等于运算符:m < n定义为m ?= n = Ltm <= n定义为{{1} }}。凭借Hedberg定理(标准库中的m ?= n <> Gt),我可以证明UIP_dec与证明无关,但是当涉及<时,我遇到了问题,因为它被定义为负面。我发现这特别令人讨厌,因为如果在IMO中定义<=,更自然的方式(<=),我将能够证明证据不相关就好了。

背景:我使用了一些以前写过的Coq文件,其中作者使用证明不相关作为全局公理来避免引入setoids,出于审美原因,我宁愿没有公理。在我看来,我的选择是:

  1. 希望目前定义的最终m ?= n = Lt \/ m ?= n = Eq仍然无法证明

  2. 使用我自己的定义,以证明证据不相关是可证明的(因为我希望尽可能地坚持标准库,所以不太满意)

  3. 使用setoids重做工作

1 个答案:

答案 0 :(得分:3)

不,这在Coq中是不可证明的。它取决于函数扩展性的公理,即(forall x, f x = g x) -> f = g。很容易证明所有否定都是在这个假设下无关的证明(因为False证明是不相关的),并且如果没有它,任何否定都是不相关的证据是非常不可能的。