adjunction_def: fixes C :: "'b \<Rightarrow> 'b \<Rightarrow> 'b"   and D :: "'c \<Rightarrow> 'c \<Rightarrow> 'c"   and S :: "'d \<Rightarrow> 'd \<Rightarrow> 'd"   and \<phi>C :: "'b \<times> 'b \<Rightarrow> 'b \<Rightarrow> 'd"   and \<phi>D :: "'c \<times> 'c \<Rightarrow> 'c \<Rightarrow> 'd"   and F :: "'c \<Rightarrow> 'b"   and G :: "'b \<Rightarrow> 'c"   and \<phi> :: "'c \<Rightarrow> 'b \<Rightarrow> 'c"   and \<psi> :: "'b \<Rightarrow> 'c \<Rightarrow> 'b"   and \<eta> :: "'c \<Rightarrow> 'c"   and \<epsilon> :: "'b \<Rightarrow> 'b"   and \<Phi> :: "'c \<times> 'b \<Rightarrow> 'd"   and \<Psi> :: "'c \<times> 'b \<Rightarrow> 'd" shows "adjunction C D S \<phi>C \<phi>D F G \<phi> \<psi> \<eta> \<epsilon> \<Phi> \<Psi> \<equiv> ((((category C \<and> category D) \<and> replete_set_category S \<and> dual_category C) \<and> (dual_category D \<and> product_category (dual_category.comp C) C) \<and> product_category (dual_category.comp D) D \<and> product_category (dual_category.comp D) C \<and> identity_functor (dual_category.comp D)) \<and> ((hom_functor C S \<phi>C \<and> hom_functor D S \<phi>D) \<and> left_adjoint_functor D C F \<and> right_adjoint_functor C D G) \<and> (composite_functor D C D F G \<and> composite_functor C D C G F) \<and> composite_functor D C C F (comp F G) \<and> composite_functor C D D G (comp G F) \<and> dual_functor (dual_category.comp D) (dual_category.comp C) F) \<and> (((product_functor (dual_category.comp D) C (dual_category.comp C) C (dual_functor.map F) (identity_functor.map C) \<and> product_functor (dual_category.comp D) C (dual_category.comp D) D (identity_functor.map (dual_category.comp D)) G) \<and> composite_functor (product_category.comp (dual_category.comp D) C) (product_category.comp (dual_category.comp C) C) S (product_functor.map (dual_category.comp D) C (dual_category.comp C) C (dual_functor.map F) (identity_functor.map C)) (hom_functor.map C S \<phi>C) \<and> composite_functor (product_category.comp (dual_category.comp D) C) (product_category.comp (dual_category.comp D) D) S (product_functor.map (dual_category.comp D) C (dual_category.comp D) D (identity_functor.map (dual_category.comp D)) G) (hom_functor.map D S \<phi>D)) \<and> (set_valued_functor (product_category.comp (dual_category.comp D) C) S (comp (hom_functor.map C S \<phi>C) (product_functor.map (dual_category.comp D) C (dual_category.comp C) C (dual_functor.map F) (identity_functor.map C))) \<and> set_valued_functor (product_category.comp (dual_category.comp D) C) S (comp (hom_functor.map D S \<phi>D) (product_functor.map (dual_category.comp D) C (dual_category.comp D) D (identity_functor.map (dual_category.comp D)) G))) \<and> natural_transformation D D (identity_functor.map D) (comp G F) \<eta> \<and> natural_transformation C C (comp F G) (identity_functor.map C) \<epsilon> \<and> natural_transformation D C F (comp (comp F G) F) (comp F \<eta>)) \<and> ((natural_transformation C D G (comp (comp G F) G) (comp \<eta> G) \<and> natural_transformation D C (comp (comp F G) F) F (comp \<epsilon> F)) \<and> natural_transformation C D (comp (comp G F) G) G (comp G \<epsilon>) \<and> vertical_composite D C F (comp (comp F G) F) F (comp F \<eta>) (comp \<epsilon> F)) \<and> (vertical_composite C D G (comp (comp G F) G) G (comp \<eta> G) (comp G \<epsilon>) \<and> meta_adjunction C D F G \<phi> \<psi>) \<and> unit_counit_adjunction C D F G \<eta> \<epsilon> \<and> hom_adjunction C D S \<phi>C \<phi>D F G \<Phi> \<Psi> \<and> adjunction_axioms C D S \<phi>C \<phi>D F G \<phi> \<psi> \<eta> \<epsilon> \<Phi> \<Psi>"