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)).

(* Specifications: *)
Theorem Comp_INTER_pr1 :
forall (F G X : Ens) (c : Comp_prop F G X),
Comp_inter F G (PR1 X) (Comp_INTER F G X) (PR2 X).