(* Contribution to the Coq Library   V6.3 (July 1999)                    *)
(***************************************************************************)
(* File: axs_reunion.v                                                     *)
(* auteur: alex@sysal.ibp.fr                                               *)
(* date: 19/10/95                                                          *)
(***************************************************************************)
Require Export axs_paire.
(***************************************************************************)
(* Axiome de la reunion                                                    *)
(***************************************************************************)
Parameter reunion : E -> E.
Axiom
axs_reunion :
forall v0 v2 : E,
In v2 (reunion v0) <-> (exists v3 : E, In v3 v0 /\ In v2 v3).
(* Preuve de lem_reunion_unique                                            *)
intros.
generalize (axs_reunion v0); intros.
apply axs_extensionnalite; intros.
generalize (H v2); clear H; unfold iff in |- *; intros.
elim H; clear H; intros.
generalize (H0 v2); clear H0; unfold iff in |- *; intros.
elim H0; clear H0; intros.
split; intros.
clear H0; clear H1; auto with zfc.
clear H; clear H2; auto with zfc.
Qed.
(* Fin de la preuve de lem_reunion_unique                                  *)
(* Autre version                                                           *)
(***************************************************************************)
(* Notion d'union de deux ensembles                                        *)
(***************************************************************************)
Definition union (a b : E) := reunion (paire a b).
Hint Unfold union: zfc.

Lemma lem_union_propertie :
forall a b v0 : E, In v0 (union a b) <-> In v0 a \/ In v0 b.