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. 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.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.Isos. Require Import  UniMath.CategoryTheory.PrecategoryBinProduct. Require Import UniMath.CategoryTheory.FunctorCategory. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.Limits.BinCoproducts. Require Import UniMath.CategoryTheory.Limits.Coproducts. Require Import UniMath.CategoryTheory.ProductCategory. Import BifunctorNotations. Import BifunctorNotations. Section FunctorsFromProductCategory. Import BifunctorNotations. End FunctorsFromProductCategory. Import BifunctorNotations. Import BifunctorNotations. Import BifunctorNotations.