SubClass Adj := NatIso (FunSET2_r F) (FunSET2_l G).Definition Build_Adj : Adj := Build_NatIso phi_iso.(* Left Adjunction *)

Structure LeftAdj (C D : Category) (G : Functor C D) : Type := 
  {Adjoint : Functor D C; Adj_l :> Adj Adjoint G}.(* Left Adjunction *)

Structure LeftAdj (C D : Category) (G : Functor C D) : Type := 
  {Adjoint : Functor D C; Adj_l :> Adj Adjoint G}.(* Left Adjunction *)

Structure LeftAdj (C D : Category) (G : Functor C D) : Type := 
  {Adjoint : Functor D C; Adj_l :> Adj Adjoint G}.(* Right Adjunction *)

Structure RightAdj (C D : Category) (F : Functor D C) : Type := 
  {CoAdjoint : Functor C D; Adj_r :> Adj F CoAdjoint}.(* Right Adjunction *)

Structure RightAdj (C D : Category) (F : Functor D C) : Type := 
  {CoAdjoint : Functor C D; Adj_r :> Adj F CoAdjoint}.(* Right Adjunction *)

Structure RightAdj (C D : Category) (F : Functor D C) : Type := 
  {CoAdjoint : Functor C D; Adj_r :> Adj F CoAdjoint}.

Lemma Adj_eq1 : ApAphi ad ((FMor F h o f) o k) =_S (h o ApAphi ad f) o FMor G k.