(* Contribution to the Coq Library   V6.3 (July 1999)                    *)
(***************************************************************************)
(* File: axs_paire.v                                                       *)
(* auteur: alex@sysal.ibp.fr                                               *)
(* date: 19/10/95                                                          *)
(***************************************************************************)
Require Export axs_extensionnalite.
(***************************************************************************)
(* Axiome de la paire                                                      *)
(***************************************************************************)
Parameter paire : E -> E -> E.
Axiom
axs_paire : forall v0 v1 v3 : E, In v3 (paire v0 v1) <-> v3 = v0 \/ v3 = v1.
(* Proof of lem_paire_unique                                               *)
intros.
apply axs_extensionnalite; intros.
generalize (H v2); clear H; unfold iff in |- *; intros.
elim H; clear H; intros.
generalize (axs_paire a b); unfold iff in |- *; intros.
generalize (H1 v2); clear H1; intros.
elim H1; clear H1; intros.
split; intros.
clear H0; clear H1; auto.
clear H; clear H2; auto.
Qed.
(* End of proof of lem_paire_unique                                        *)
(* Proof of lem_paire_sym                                                  *)
intros.
apply axs_extensionnalite; intros; unfold iff in |- *; intros.
elim (axs_paire b a v2); intros.
elim (axs_paire a b v2); intros.
split; intros.
clear H; clear H2; apply H0; clear H0; apply lem_or_sym; auto.
clear H0; clear H1; apply H2; clear H2; apply lem_or_sym; auto.
Qed.
(* End of proof of lem_paire_sym                                           *)

(***************************************************************************)
(* Propriete de la paire                                                   *)
(***************************************************************************)
Lemma lem_paire_propertie :
forall a0 b0 a1 b1 : E,
paire a0 b0 = paire a1 b1 <-> a0 = a1 /\ b0 = b1 \/ a0 = b1 /\ b0 = a1.