proposition: Lemma sig_eq : forall (A : Type) (P : A -> Prop) (mx my : {x : A | P x}), proj1_sig mx = proj1_sig my -> mx = my.
proof: Proof. intros A P [mx ?] [my ?] H. simpl in H. induction H. compute. f_equal. apply ax_proof_irrel. Qed.
imports: Coq(ssreflect ssrfun ssrbool List) Coq(FunctionalExtensionality) Coq(Relation_Definitions Morphisms) Mon(SPropBase SPropMonadicStructures)