Section Axioms.
Variable U:Type.
(** Invariance by Substitution of Reflexive Equality Proofs *)
Proof M.eq_rect_eq U.
Proof (fun p Q => M.eq_rect_eq U p Q).
(** Injectivity of Dependent Equality *)
Proof (eq_rect_eq__eq_dep_eq U eq_rect_eq).
(** Uniqueness of Identity Proofs (UIP) is a consequence of *)
(** Injectivity of Dependent Equality *)
Proof (eq_dep_eq__UIP U eq_dep_eq).
(** Uniqueness of Reflexive Identity Proofs is a direct instance of UIP *)
Proof (UIP__UIP_refl U UIP).
(** Streicher's axiom K is a direct consequence of Uniqueness of Reflexive Identity Proofs *)
Proof (UIP_refl__Streicher_K U UIP_refl).
End Axioms.
(** UIP implies the injectivity of equality on dependent pairs in Type *)
Proof (fun U => eq_dep_eq__inj_pair2 U (eq_dep_eq U)).
Notation inj_pairT2 := inj_pair2.
End EqdepTheory.
(** Basic facts about eq_dep *)

Lemma f_eq_dep :
forall U (P:U->Type) R p q x y (f:forall p, P p -> R p),
eq_dep p x q y -> eq_dep p (f p x) q (f q y).