(********** 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}.(********** 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}.(********** 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))}.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))}.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)).

Lemma comp_prop_3_Out : IN X (Cartesian (Domain F) (Range G)).