哪些公理可以安全地添加到Coq?

时间:2018-12-08 08:24:32

标签: math logic coq proof

这个问题是要求参考或解释。 主要思想是:如果我从Coq的标准库中添加每个公理怎么办? 会引起矛盾还是彼此调适? 除了Coq的标准库以外,还有哪些其他有关Coq的可靠信息来源。 (我看到了一堆从90年代到80年代的论文。显然有很多类型理论的变体。哪一个是当代Coq的?或者我应该认为“ https://coq.inria.fr/refman/的所有内容都可以在{{ 3}}和标准库中。“)

(A)您是否知道可以证明某些公理可以适当地添加到Coq中的论文或其他来源? 适当地,这意味着扩展的系统将是先前OR的保守扩展,将被认为是安全的。

(B)我个人对这些公理感兴趣:

0)ex2sig(一致吗?)

Axiom ex2sig : forall (A:Type) (P:A->Prop), @ex A P -> @sig A P.

1)LEM

2)功能扩展性

Axiom functional_extensionality_dep : forall {A} {B : A -> Type},
  forall (f g : forall x : A, B x),
  (forall x, f x = g x) -> f = g.

3)选择

Theorem choice :
 forall (A B : Type) (R : A->B->Prop),
   (forall x : A, exists y : B, R x y) ->
    exists f : A->B, (forall x : A, R x (f x)).

4)“术语作为类型”

Definition E := Type.
Axiom R : forall x : E, x -> E.  
Axiom R_inj : forall (x : E) (a b : x), R x a = R x b -> a = b.

5)不相关性证明

Axiom proof_irrelevance : forall (P:Prop) (p1 p2:P), p1 = p2.

6)...(您可能会在评论中建议您的公理)

例如马尔可夫原理

Parameter P:nat -> Prop.
Theorem M:((forall n,(P n \/ ~ (P n)))/\ ~(forall n, ~(P n))  -> exists n,P n).

但是我们对马尔可夫原理并不十分感兴趣。 因为我们需要使用LEM的一些非常强大的经典理论(因此证明了马尔可夫原理),某些最强形式的Choice(这将暗示LEM),可扩展性等(我们还可以添加哪些公理?)(顺便说一句, Coq中有很多可供选择的变体:关系)

p.s。在Coq中广泛使用“非计算”公理应被视为滥用吗? (我认为没有,但是我不确定。) 添加公理后,我会失去Coq的哪些属性? (您可能会说参考和/或意见)

p.p.s。这个问题很大,由许多相互联系的部分组成,因此欢迎部分回答。

0 个答案:

没有答案