Section union_symm_proof.
Variable A : Ens.
Variable B : Ens.
Let U := union A B.
Let V := union B A.
Let step1 : SUB A U.
Proof union_pr1 A B.
Let step2 : SUB B U.
Proof union_pr2 A B.
Let step3 : SUB B V.
Proof union_pr1 B A.
Let step4 : SUB A V.
Proof union_pr2 B A.
Let step5 : SUB U V.
Proof union_pr3 A B V step4 step3.
Let step6 : SUB V U.
Proof union_pr3 B A U step2 step1.
Proof Build_EQ U V step5 step6.
End union_symm_proof.
Proof union_symm_proof_Out.
(********** Union ************)
Definition Union (F : Ens) : Ens := REPLACEMENT (b_in_Union_a F).

Theorem Union_pr1 :
forall (F X : Ens) (h : EXISTS (fun U : Ens => nested_IN X U F)),
IN X (Union F).