Section adj_to_ua.
Variables (C D : Category) (F : Functor D C) (G : Functor C D) (ad : Adj F G).
Variable d : D.
(* Prouver que pour tout d, <F(d),phi(Id(F(d)))> est UA de d vers G *)
Definition Unit_ob := F d.
Definition Unit_arrow := ApAphi ad (Id (F d)).
Definition Unit_arrow_diese (c : C) (f : d --> G c) := ApAphi_inv ad f.
(* qq c:C. qq f:d->Gc. f=phi<d,Fd>(Id(Fd)) o G(phi-1<d,c>(f)) (@) *)
(* remarquons que phi<d,c>(Id(Fd) o phi-1<d,c>(f)) = f *)
(* donc (@) est une instance de Adj_eq3 *)
(* qq c1:C. qq f:d->Gc1. qq f':Fd->c1. *)
(* phi<d,Fd>(Id(Fd)) o G(f') = f (@) *)
(* => f'=phi-1<d,c1>(f) *)
(* appliquer phi-1<d,c1> aux 2 membres de (@) *)
(* En appliquant Adj_eq5, on obtient le re'sultat souhaite' *)
Canonical Structure Unit' := Build_IsUA Unit_UAlaw1 Unit_UAlaw2.
Canonical Structure Unit := Build_UA Unit'.
(* Prouver que pour tout c, <G(c),phi-1(Id(G(c)))> est UA de c vers F *)
Variable c : C.
Definition CoUnit_ob := G c.
Definition CoUnit_arrow := ApAphi_inv ad (Id (G c)).
Definition CoUnit_arrow_diese (d : D) (f : F d --> c) := ApAphi ad f.

Lemma CoUnit_coUAlaw1 : CoUA_law1 CoUnit_arrow CoUnit_arrow_diese.