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_eq2 : ApAphi_inv ad ((h o g) o FMor G k) =_S (FMor F h o ApAphi_inv ad g) o k.