(* Proof of lem_fun_part_inv_img                                           *)
intros; unfold inc in |- *; intros.
unfold Img in H.
elim
(axs_comprehension
(fun v1 : E =>
fun_ (fun_part_inv f Af) ->
exists v2 : E, In (couple v2 v1) (fun_part_inv f Af))
(reunion (reunion (fun_part_inv f Af))) v0); intros;
generalize (H0 H); clear H H0 H1; intros.
elim H; clear H; intros.
generalize (H0 (lem_fun_part_inv_is_fun f Af)); clear H0; intros.
elim H0; clear H0; intros.
unfold fun_part_inv in H0.
elim
(axs_comprehension
(fun x0 : E => exists y : E, x0 = couple y (fun_img_inverse f Af y))
(cartesien (parties (Img f)) (parties (dom f)))
(couple x v0)); intros; generalize (H1 H0); clear H0 H1 H2;
intros.
elim H0; clear H0; intros; elim H1; clear H1; intros.
elim
(lem_cartesian_propertie (parties (Img f)) (parties (dom f)) (couple x v0));
intros; generalize (H2 H0); clear H0 H2 H3; intros.
elim H0; clear H0; intros; elim H0; clear H0; intros; elim H0; clear H0;
intros; elim H2; clear H2; intros.
elim (lem_couple_propertie x x1 v0 x2); intros; generalize (H4 H3);
clear H3 H4 H5; intros.
elim H3; clear H3; intros.
rewrite H4; auto with zfc.
Qed.
(* End of proof of lem_fun_part_inv_img                                    *)

(* Specifications: *)
(***************************************************************************)
(* fun_img_inverse est un evaluateur de fun_part_inv                       *)
(***************************************************************************)
Lemma lem_fun_part_inv_eval_prop :
forall (f : E) (Af : fun_ f) (x : E),
In x (dom (fun_part_inv f Af)) ->
App (fun_part_inv f Af) (lem_fun_part_inv_is_fun f Af) x =
fun_img_inverse f Af x.