Definition Cartesian (A B : Ens) := REPLACEMENT (in_cartesian A B).

(* Specifications: *)
Theorem Cartesian_pr1 : forall (A B M : Ens) (h : in_cartesian A B M), IN M (Cartesian A B).
Theorem Cartesian_pr2 : forall (A B M : Ens) (i : IN M (Cartesian A B)), in_cartesian A B M.
Lemma cartesian_construction_Out : IN U (Cartesian A B).
Theorem Cartesian_construction : forall (A B X Y : Ens) (i : IN X A) (j : IN Y B), IN (PAIR X Y) (Cartesian A B).
Theorem Cartesian_th1 : forall (A B U : Ens) (i : IN U (Cartesian A B)), is_a_pair U.
Theorem Cartesian_proj1_th : forall (A B U : Ens) (i : IN U (Cartesian A B)), IN (PR1 U) A.
Theorem Cartesian_proj2_th : forall (A B U : Ens) (i : IN U (Cartesian A B)), IN (PR2 U) B.
Lemma cartpairA_Out : IN X A.
Lemma cartpairB_Out : IN Y B.
Theorem Cartesian_pair_th1 : forall (A B X Y : Ens) (i : IN (PAIR X Y) (Cartesian A B)), IN X A.
Theorem Cartesian_pair_th2 : forall (A B X Y : Ens) (i : IN (PAIR X Y) (Cartesian A B)), IN Y B.
Lemma relations_in_cartesian_Out : IN U (Cartesian A B).
Theorem relations_in_cartesian : forall (R : Ens) (r : is_a_relation R), SUB R (Cartesian (Domain R) (Range R)).
Lemma cartesian_is_relation_Out : is_a_pair U.
Theorem cartesian_is_relation : forall A B : Ens, is_a_relation (Cartesian A B).
Theorem cartesian_subs_are_relations : forall (A B R : Ens) (s : SUB R (Cartesian A B)), is_a_relation R.
Lemma (*Fact*) stepA6 : False.
Lemma (*Fact*) stepB6 : False.
Lemma (*Fact*) covering_em_Out : False.
Lemma covering_1_Out : EQ (EV F X) (EV G X).
Theorem covering_th1 : forall (A B F G : Ens) (f : is_a_function F) (g : is_a_function G) (u : EQ (Domain F) (union A B)) (i : EQ (restricted_to A F) (restricted_to A G)) (j : EQ (restricted_to B F) (restricted_to B G)), Extensionally_equivalent F G.
Theorem covering_th2 : forall (A B F G : Ens) (f : is_a_function F) (g : is_a_function G) (u : EQ (Domain F) (union A B)) (v : EQ (Domain G) (union A B)) (i : EQ (restricted_to A F) (restricted_to A G)) (j : EQ (restricted_to B F) (restricted_to B G)), EQ F G.
Lemma gr1_Out : is_a_pair X.
Lemma gr2_Out : is_a_pair X.
Lemma gr_Out : is_a_pair X.
Theorem glueing_th1 : forall (F G : Ens) (f : is_a_relation F) (g : is_a_relation G), is_a_relation (union F G).
Lemma gd1a_Out : IN X (union (Domain F) (Domain G)).
Lemma gd1b_Out : IN X (union (Domain F) (Domain G)).
Lemma glueing_domain1_Out : IN X (union (Domain F) (Domain G)).
Theorem glueing_th2 : forall F G : Ens, SUB (Domain (union F G)) (union (Domain F) (Domain G)).
Lemma gd2A_Out : IN X (Domain H).
Lemma gd2B_Out : IN X (Domain H).
Lemma gd2_Out : IN X (Domain H).
Theorem glueing_th3 : forall F G : Ens, SUB (union (Domain F) (Domain G)) (Domain (union F G)).
Theorem glueing_th4 : forall F G : Ens, EQ (Domain (union F G)) (union (Domain F) (Domain G)).
Lemma gluA_Out : EQ Y Z.
Lemma gluB_Out : EQ Y Z.
Lemma gluC_Out : EQ Y Z.
Lemma gluD_Out : EQ Y Z.
Lemma glu_wd_Out : EQ Y Z.
Lemma glueing_proof_Out : is_a_function H.
Theorem glueing_th5 : forall (F G : Ens) (f : is_a_function F) (g : is_a_function G) (e : Extensionally_equivalent F G), is_a_function (union F G).