8

This question is a request for references or explanation. The main idea is: What if I add every axiom from standard library of Coq? Will it raise a contradiction or they are well-adjusted to each other? What are other reliable sources of information about Coq other than a standard library of Coq. (I saw a bunch papers from nineties, eighties. Obviously there are plenty of variants of type theories. Which one is for contemporary Coq? Or should I think "Everything that is known may be found in https://coq.inria.fr/refman/ , in https://sympa.inria.fr/sympa/arc/coq-club/1993-12/ and in standard library.")

(A) Do you know paper or other source where it is proved that some axioms may be properly added to Coq? Properly here means that the extended system will be a conservative extension of previous OR will be considered to be safe strengthening.

(B) Personally, I am interested in these axioms:

0) ex2sig (is it consistent?)

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

1) LEM

2) Functional extensionality

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) Choice

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) "Terms-as-Types"

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) Proof-Irrelevance

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

6) ... (you may recommend your axiom in comments)

e.g. Markov's principle

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

But we are not very much interested in Markov's principle. Because we need some very strong classic theory with LEM(so the Markov principle is proved), with some strongest form of Choice(which will imply LEM), extensionality, etc. (Which axioms can we also add?) (By the way, there are many variants of choice in Coq: relational)

p.s. Shall extensive use of "noncomputational" axioms in Coq be treated as misuse of it? (I think no, but I am not sure.) Which properties of Coq will I loose after adding the axioms? (you may say both reference and/or opinion)

p.p.s. The question is big and consist of many connected pieces, so every partial answer is welcome.

ged
  • 687
  • 7
  • 19
  • 1
    Coq's wiki has some information on this, e.g. [here](https://github.com/coq/coq/wiki/CoqAndAxioms) and [here](https://github.com/coq/coq/wiki/The-Logic-of-Coq#axioms). There is a related [issue](https://github.com/coq/coq/issues/8157) on GitHub containing more links and pointers. – Anton Trunov Dec 08 '18 at 11:00
  • LEM implies proof irrelevance, you can find this result in the standard library. – Anton Trunov Dec 08 '18 at 11:01
  • 1
    I believe the HoTT book has some discussion of axioms, and which are consistent with the univalence axiom, and talks about variants of LEM and AC (choice) – Jason Gross Dec 09 '18 at 06:59
  • "Terms-as-Types" seems definable as an Inductive. – Blaisorblade Jun 05 '21 at 09:22
  • 1
    @Blaisorblade How? – ged Jun 06 '21 at 16:14
  • @ged Take `R x a := { y : x & y = a }` (a singleton/contractible type), and `R_inj x a b (y1, eq1 : y1 = a) (y2, eq2 : y2 = b) e := sym eq1 * cong fst e * eq2` (where `*` is concatenates equalites, sym reverses equalities, cong is functorial action of functions on equalities and fst is the first projection) – kyo dralliam Apr 24 '22 at 14:08

0 Answers0