Skip to Content.
Sympa Menu

coq-club - [Coq-Club] proof_irrelevance question

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] proof_irrelevance question


chronological Thread 
  • From: "Samuel E. Moelius III" <moelius AT cis.udel.edu>
  • To: coq-club AT pauillac.inria.fr
  • Subject: [Coq-Club] proof_irrelevance question
  • Date: Sat, 01 Nov 2008 14:58:49 -0400
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>

In the following example, is use of proof_irrelevance necessary? Is there some way to avoid its use when the domain of the predicate involved is nat, for example?

Thanks in advance.  -- Sam


Require Import Arith.
Require Import ProofIrrelevance.

Variable n : nat.

Definition t := sig (fun i => i < n).

Definition f (x : t) : sig (fun i => i < S n).
  intros [i Hi].
  refine (exist _ (S i) _).
  auto with arith.
Defined.

Lemma lem : forall x y, f x = f y -> x = y.
  intros [x Hx] [y Hy] Heq.
  injection Heq as Heq'.
  clear Heq.
  revert Hx Hy; rewrite Heq'; intros Hx Hy.
  rewrite (proof_irrelevance _ Hx Hy).
  reflexivity.
Qed.





Archive powered by MhonArc 2.6.16.

Top of Page