(* Proof of lem_Einter_sing                                                *)
intros; apply axs_extensionnalite; intros; unfold iff in |- *; split; intros.
unfold Einter in H.
elim
(axs_comprehension
(fun v0 : E => forall v3 : E, In v3 (singleton a) -> In v0 v3)
(reunion (singleton a)) v2); intros; generalize (H0 H);
clear H H0 H1; intros.
elim H; clear H; intros.
elim (axs_reunion (singleton a) v2); intros; generalize (H1 H); clear H H1 H2;
intros.
elim H; clear H; intros; elim H; clear H; intros.
unfold singleton in H.
elim (axs_paire a a x); intros; generalize (H2 H); clear H H2 H3; intros.
elim H; clear H; intros; generalize H1; rewrite H; tauto.
unfold Einter in |- *.
elim
(axs_comprehension
(fun v0 : E => forall v3 : E, In v3 (singleton a) -> In v0 v3)
(reunion (singleton a)) v2); intros; apply H1;
clear H0 H1; intros.
split; intros.
elim (axs_reunion (singleton a) v2); intros; apply H1; clear H0 H1; intros.
exists a; split; [ apply lem_x_in_sing_x | idtac ]; auto with zfc.
unfold singleton in H0.
elim (axs_paire a a v3); intros; generalize (H1 H0); clear H0 H1 H2; intros.
elim H0; clear H0; intros; rewrite H0; auto with zfc.
Qed.
(* End of proof of lem_Einter_sing                                         *)

(* Specifications: *)
Lemma lem_Einter_paire :
forall a b : E, Einter (paire a b) (lem_paire_not_empty a b) = inter a b.