(* Proof of lem_second_propertie                                           *)
unfold second in H.
elim
(axs_comprehension
(fun x : E =>
exists a0 : E, (exists b0 : E, couple a b = couple a0 b0 /\ In x b0))
(reunion (reunion (couple a b))) v2); intros.
elim H0; clear H0 H1; intros; [ clear H | auto with zfc ].
elim H1; clear H1; intros.
elim H; clear H; intros.
elim H; clear H; intros.
elim (lem_couple_propertie a x b x0); intros.
elim H2; clear H2 H3; intros; [ clear H | auto with zfc ].
rewrite H3; auto with zfc.
unfold second in |- *.
elim
(axs_comprehension
(fun x : E =>
exists a0 : E, (exists b0 : E, couple a b = couple a0 b0 /\ In x b0))
(reunion (reunion (couple a b))) v2); intros.
apply H1; clear H1 H0; intros.
rewrite (lem_reunion_couple a b).
split;
[ idtac | exists a; exists b; split; [ reflexivity | auto with zfc ] ].
elim (lem_union_propertie a b v2); intros.
clear H0; unfold union in H1; apply H1; clear H1; intros.
right; auto with zfc.
Qed.
(* End of proof of lem_second_propertie                                    *)

(* Specifications: *)
(***************************************************************************)
(* Couples et reunion                                                      *)
(***************************************************************************)
Lemma lem_couple_reunion_prop :
forall x y z : E,
In (couple x y) z ->
In x (reunion (reunion z)) /\ In y (reunion (reunion z)).