(* End of proof of lem_equiv_comp_bij_under                                *)

(***************************************************************************)
(***************************************************************************)
(* Deux corollaires au thm fondamental                                     *)
(***************************************************************************)
(***************************************************************************)

(***************************************************************************)
(* Corollaire 1                                                            *)
(***************************************************************************)
(***************************************************************************)
(* On s'interesse a equiv_comp dans le cas ou la relation r est le noyau   *)
(* d'equivalence de f.                                                     *)
(***************************************************************************)
Definition equiv_comp_fun (f a s : E) (Afs : fun_sig f a s) :=
  equiv_comp (equiv_fun f (lem_fun_sig_is_fun f a s Afs)) a
    (lem_sig_fun_equiv_is_rel f a s Afs)
    (lem_sig_fun_equiv_is_equiv f a s Afs) (lem_sig_fun_equiv_dom f a s Afs)
    s f Afs (lem_fun_equiv_prop f (lem_fun_sig_is_fun f a s Afs)).

Lemma lem_equiv_comp_fun_prop : forall (f a s : E) (Afs : fun_sig f a s), f = comp (projQuotient (equiv_fun f (lem_fun_sig_is_fun f a s Afs)) a (lem_sig_fun_equiv_is_rel f a s Afs) (lem_sig_fun_equiv_is_equiv f a s Afs) (lem_sig_fun_equiv_dom f a s Afs)) (equiv_comp_fun f a s Afs) a (quotient (equiv_fun f (lem_fun_sig_is_fun f a s Afs)) a (lem_sig_fun_equiv_is_rel f a s Afs) (lem_sig_fun_equiv_is_equiv f a s Afs) (lem_sig_fun_equiv_dom f a s Afs)) s (lem_projQuotient_sig (equiv_fun f (lem_fun_sig_is_fun f a s Afs)) a (lem_sig_fun_equiv_is_rel f a s Afs) (lem_sig_fun_equiv_is_equiv f a s Afs) (lem_sig_fun_equiv_dom f a s Afs)) (lem_equiv_comp_fun_sig f a s Afs).