(* Proof of lem_union_commut                                               *)
elim (lem_union_propertie a b v2); intros.
elim (lem_union_propertie b a v2); intros.
unfold iff in |- *; split; intros.
clear H0; clear H1.
apply H2; clear H2; apply lem_or_sym; apply H; clear H; auto with zfc.
clear H; clear H2.
apply H0; clear H0; apply lem_or_sym; apply H1; clear H1; auto with zfc.
Qed.
(* End of proof of lem_union_commut                                        *)

(* Specifications: *)
Lemma lem_union_assoc :
forall a b c : E, union (union a b) c = union a (union b c).