(* Proof of lem_inter_assoc                                                *)
intros; apply axs_extensionnalite; intros.
elim (lem_inter_propertie (inter a b) c v2); intros.
elim (lem_inter_propertie a (inter b c) v2); intros.
elim (lem_and_rew_l (In v2 c) (In v2 (inter a b)) (In v2 a /\ In v2 b));
intros.
elim (lem_and_rew_r (In v2 a) (In v2 (inter b c)) (In v2 b /\ In v2 c));
intros.
elim (lem_and_assoc_l (In v2 a) (In v2 b) (In v2 c)); intros.
unfold iff in |- *; split; intros.
clear H0; clear H1; clear H4; clear H5; clear H8.
apply H2; clear H2; apply H6; clear H6; apply H7; clear H7.
apply H3; clear H3; apply H; clear H; auto with zfc.
clear H; clear H2; clear H3; clear H6; clear H7.
apply H0; clear H0; apply H4; clear H4; apply H8; clear H8.
apply H5; clear H5; apply H1; clear H1; auto with zfc.
apply (lem_inter_propertie b c v2).
apply (lem_inter_propertie a b v2).
Qed.
(* End of proof of lem_inter_assoc                                         *)

(* Specifications: *)
Lemma lem_union_commut : forall a b : E, union a b = union b a.
intros; apply axs_extensionnalite; intros.