(* End of proof of lem_fun_part_eval_prop                                  *)

(***************************************************************************)
(***************************************************************************)
(* Reciproque: application des parties de l'image de f dans les parties du *)
(* domaine de f                                                            *)
(***************************************************************************)
(***************************************************************************)
Definition fun_part_inv (f : E) (Af : fun_ f) :=
  subset (fun x : E => exists y : E, x = couple y (fun_img_inverse f Af y))
    (cartesien (parties (Img f)) (parties (dom f))).

(* Specifications: *)
Lemma lem_fun_part_inv_is_fun : forall (f : E) (Af : fun_ f), fun_ (fun_part_inv f Af).
Lemma lem_fun_part_inv_dom : forall (f : E) (Af : fun_ f), dom (fun_part_inv f Af) = parties (Img f).
Lemma lem_fun_part_inv_img : forall (f : E) (Af : fun_ f), inc (Img (fun_part_inv f Af)) (parties (dom f)).
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.