proposition: Lemma composition_bifunctor_with_functor_isbifunctor {A B C D : category} (F : bifunctor A B C) (G : functor C D) : is_bifunctor (compose_bifunctor_with_functor_data F G).
proof: Proof. repeat split. - intros a b. cbn. rewrite bifunctor_leftid. exact (functor_id G (a ⊗_{F} b)). - intros a b. cbn. rewrite bifunctor_rightid. apply functor_id. - intros a b1 b2 b3 g1 g2. cbn. rewrite bifunctor_leftcomp. apply functor_comp. - intros b a1 a2 a3 f1 f2. cbn. rewrite bifunctor_rightcomp. apply functor_comp. - intros a1 a2 b1 b2 f g. unfold compose_bifunctor_with_functor_data. etrans. { apply pathsinv0, functor_comp. } rewrite whiskerscommutes. + apply functor_comp. + apply bifunctor_equalwhiskers. Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.PrecategoryBinProduct UniMath.CategoryTheory.FunctorCategory UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Limits.BinCoproducts UniMath.CategoryTheory.Limits.Coproducts UniMath.CategoryTheory.ProductCategory