(* Specifications: *)
Theorem Comma_Hom_compose_assoc {a b c d : Comma_Obj} (h : Comma_Hom a b) (h' : Comma_Hom b c) (h'' : Comma_Hom c d) : Comma_Hom_compose h (Comma_Hom_compose h' h'') = Comma_Hom_compose (Comma_Hom_compose h h') h''.
Theorem Prod_Functor_NatTrans_id : Prod_Functor_NatTrans (NatTrans_id F) (NatTrans_id F') = NatTrans_id (Prod_Functor F F').
Lemma Algebra_Hom_eq_simplify (alg alg' : Algebra) (ah ah' : Algebra_Hom alg alg') : (Alg_map ah) = (Alg_map ah') -> ah = ah'.
Theorem Algebra_Hom_compose_assoc {alg alg' alg'' alg''' : Algebra} (f : Algebra_Hom alg alg') (g : Algebra_Hom alg' alg'') (h : Algebra_Hom alg'' alg''') : (Algebra_Hom_compose f (Algebra_Hom_compose g h)) = (Algebra_Hom_compose (Algebra_Hom_compose f g) h).
Theorem Adjunct_Compose_assoc : match (Functor_assoc F F' F'') in _ = Y return Adjunct Y _ with eq_refl => match eq_sym (Functor_assoc G'' G' G) in _ = Y return Adjunct _ Y with eq_refl => Adjunct_Compose adj (Adjunct_Compose adj' adj'') end end
Theorem Adjunct_Id_unit_left : match (Functor_id_unit_left _ _ F) in _ = Y return Adjunct Y _ with eq_refl => match (Functor_id_unit_right _ _ G) in _ = Y return Adjunct _ Y with eq_refl => Adjunct_Compose adj (Adjunct_Id C) end end
Theorem Adjunct_Id_unit_right : match (Functor_id_unit_right _ _ F) in _ = Y return Adjunct Y _ with eq_refl => match (Functor_id_unit_left _ _ G) in _ = Y return Adjunct _ Y with eq_refl => Adjunct_Compose (Adjunct_Id B) adj end end
(** Yoneda embedding is faithful. *)
(** Yoneda embedding is full. *)