Module DecidableEqDep (M:DecidableType).
(** 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 *)

Lemma Streicher_K :
forall (x:U) (P:x = x -> Prop), P (eq_refl x) -> forall p:x = x, P p.