Module N:=DecidableEqDep(M).
(** Invariance by Substitution of Reflexive Equality Proofs *)
Proof eq_rect_eq_dec eq_dec.
(** Injectivity of Dependent Equality *)
Proof (eq_rect_eq__eq_dep_eq U eq_rect_eq).
(** Uniqueness of Identity Proofs (UIP) *)
Proof (eq_dep_eq__UIP U eq_dep_eq).
(** Uniqueness of Reflexive Identity Proofs *)
Proof (UIP__UIP_refl U UIP).
(** Streicher's axiom K *)
Proof (K_dec_type eq_dec).
(** Proof-irrelevance on subsets of decidable sets *)
Proof N.inj_pairP2.
(** Injectivity of equality on dependent pairs in [Type] *)
Proof eq_dep_eq__inj_pair2 U N.eq_dep_eq.
(** Injectivity of equality on dependent pairs with second component in [Type] *)
Notation inj_pairT2 := inj_pair2.
End DecidableEqDepSet.

(** From decidability to inj_pair2 **)
Lemma inj_pair2_eq_dec : forall A:Type, (forall x y:A, {x=y}+{x<>y}) ->
( forall (P:A -> Type) (p:A) (x y:P p), existT P p x = existT P p y -> x = y ).