Section gluD.
Hypothesis j1 : IN (PAIR X Z) G.
Hypothesis i1 : IN (PAIR X Y) G.
Proof step4 X Y Z i1 j1.
End gluD.
Let step6 : IN (PAIR X Y) F -> EQ Y Z.
Proof
union_th4 (IN (PAIR X Y) F -> EQ Y Z) F G (PAIR X Z) j gluA_Out gluB_Out.
Let step7 : IN (PAIR X Y) G -> EQ Y Z.
Proof
union_th4 (IN (PAIR X Y) G -> EQ Y Z) F G (PAIR X Z) j gluC_Out gluD_Out.
Proof union_th4 (EQ Y Z) F G (PAIR X Y) i step6 step7.
End glu_wd.
Let step8 : well_definedness H.
Proof glu_wd_Out.
Proof Build_is_a_function H step5 step8.
End glueing_proof.
Proof glueing_proof_Out.
(********** composition ********)
Record Comp_inter (F G X Y Z : Ens) : Prop :=
{Comp_inter_xy : IN (PAIR X Y) F; Comp_inter_yz : IN (PAIR Y Z) G}.
Record Comp_prop (F G X : Ens) : Prop :=
{Comp_pair : is_a_pair X;
Comp_intern : EXISTS (fun Y : Ens => Comp_inter F G (PR1 X) Y (PR2 X))}.
Definition Comp_INTER (F G X : Ens) :=
CHOICE (fun Y : Ens => Comp_inter F G (PR1 X) Y (PR2 X)).
Proof
fun (F G X : Ens) (c : Comp_prop F G X) =>
CHOICE_pr (fun Y : Ens => Comp_inter F G (PR1 X) Y (PR2 X))
(Comp_intern F G X c).
Proof
fun (F G X : Ens) (c : Comp_prop F G X) =>
Comp_inter_xy F G (PR1 X) (Comp_INTER F G X) (PR2 X)
(Comp_INTER_pr1 F G X c).
Proof
fun (F G X : Ens) (c : Comp_prop F G X) =>
Comp_inter_yz F G (PR1 X) (Comp_INTER F G X) (PR2 X)
(Comp_INTER_pr1 F G X c).
Proof
fun (F G X : Ens) (c : Comp_prop F G X) =>
Domain_th1 F (PR1 X) (Comp_INTER F G X) (Comp_INTER_th1 F G X c).

Theorem Comp_prop_th2 :
forall (F G X : Ens) (c : Comp_prop F G X), IN (PR2 X) (Range G).