Module EqdepTh := EqdepTheory EqdepElim.

(* Specifications: *)
Lemma imp_ext: forall (A A' B B' : Prop), (A=A') -> (A -> (B=B')) -> ((A->B)=(A'->B')).
Lemma exists_ext: forall (A: Type) F G, (forall x: A, F x = G x) -> (Logic.ex F = Logic.ex G).
Lemma and_ext: forall A B C D, A=B -> C=D -> (A /\ C) = (B /\ D).
Lemma and_ext': forall (A: Prop) B C D, A=B -> (A -> (C=D)) -> (A /\ C) = (B /\ D).
Lemma or_ext: forall A B C D, A=B -> C=D -> (A \/ C) = (B \/ D).
Lemma forall_ext: forall (A: Type) (F: A -> Prop) G, (forall x:A, F x = G x) -> (forall x, F x) = (forall x, G x).
Lemma existT_ext: forall (A: Type) (P: A -> Prop) (x y: A) (Hx: P x) (Hy: P y), x = y -> existT _ x Hx = existT _ y Hy.
Lemma exist_ext: forall (A: Type) (P: A -> Prop) (x y: A) (Hx: P x) (Hy: P y), x = y -> exist _ x Hx = exist _ y Hy.
Lemma exist_ext' : forall A F (x y:@sig A F), proj1_sig x = proj1_sig y -> x = y.