(* Proof of lem_App                                                   *)
intros; unfold dom in H0.
elim
(axs_comprehension
(fun v0 : E => fun_ f -> exists v1 : E, In (couple v0 v1) f)
(reunion (reunion f)) x); intros; generalize (H1 H0);
clear H0 H1 H2; intros.
elim H0; clear H0; intros; generalize (H1 H); clear H1; intros.
elim H1; clear H1; intros.
exists x0; split; [ exact (lem_fun_and_img f x x0 H H1) | auto with zfc ].
Qed.
(* End of proof of lem_App                                            *)

(* Specifications: *)
(***************************************************************************)
(* Si f est une application et que y est un element de l'image de f alors  *)
(* il existe au moins un x du domaine de f tel que (x,y) in f              *)
(***************************************************************************)
Lemma lem_App_rev :
forall f y : E,
fun_ f -> In y (Img f) -> exists x : E, In x (dom f) /\ In (couple x y) f.