Proof fun P X A a p E f => f X A a p.
(** ** Leibniz equality **)
Definition eq (X : Typ1) (x y : X) : Prop := forall P : X -> Prop, P x -> P y.

Lemma eq_trans :
forall (X : Typ1) (x y z : X), eq X x y -> eq X y z -> eq X x z.