Section coua_laws.
Variable co_diese : forall a' : A, (F a' --> b) -> (a' --> a).
Definition CoUA_eq (a' : A) (f : F a' --> b) (g : a' --> a) :=
FMor F g o u =_S f.
Definition CoUA_law1 :=
forall (a' : A) (f : F a' --> b), CoUA_eq f (co_diese f).
Definition CoUA_law2 :=
forall (a' : A) (f : F a' --> b) (g : a' --> a),
CoUA_eq f g -> g =_S co_diese f.
End coua_laws.
Structure IsCoUA : Type :=
{CoUA_diese : forall a' : A, (F a' --> b) -> (a' --> a);
Prf_isCoUA_law1 : CoUA_law1 CoUA_diese;
Prf_isCoUA_law2 : CoUA_law2 CoUA_diese}.
Variable t : IsCoUA.
(* f=g => f# = g# *)

Lemma Codiese_map : forall a' : A, Map_law (CoUA_diese t (a':=a')).