Proof
fun (A B C D : Ens) (e : EQ (PAIR A B) (PAIR C D)) =>
pairwise_EQ_bd A B C D (PAIR_uniqueness A B C D e).
Definition is_a_pair (M : Ens) :=
EXISTS (fun A : Ens => EXISTS (fun B : Ens => EQ M (PAIR A B))).
Section a_pair_is_a_pair_proof.
Variable A : Ens.
Variable B : Ens.
Let M := PAIR A B.
Let step1 : EQ M (PAIR A B) := EQ_refl M.
Let step2 : EXISTS (fun B1 : Ens => EQ M (PAIR A B1)) :=
EXISTS_th1 (fun B1 : Ens => EQ M (PAIR A B1)) B step1.
Definition a_pair_is_a_pair_Out : is_a_pair M :=
EXISTS_th1 (fun A1 : Ens => EXISTS (fun B1 : Ens => EQ M (PAIR A1 B1))) A
step2.
End a_pair_is_a_pair_proof.

(* Specifications: *)
Theorem a_pair_is_a_pair : forall A B : Ens, is_a_pair (PAIR A B).
Proof a_pair_is_a_pair_Out.
Theorem a_pair_is_a_pair_th2 :
forall (A B U : Ens) (i : EQ (PAIR A B) U), is_a_pair U.