Lemma functor_tensor_composition_is_nat_trans {C D E : category} {TC : functor (C ⊠ C) C} {TD : functor (D ⊠ D) D} {TE : functor (E ⊠ E) E} {F : functor C D} {G : functor D E} (FF : functor_tensor TC TD F) (GG : functor_tensor TD TE G) : is_nat_trans (functor_tensor_map_dom TE (F ∙ G)) (functor_tensor_map_codom TC (F ∙ G)) (λ cc : C × C, GG (F (pr1 cc), F (pr2 cc)) · # G (FF cc)). Proof. intros cc1 cc2 f. etrans. { rewrite assoc. apply maponpaths_2. exact (pr2 GG ((pair_functor F F) cc1) (pair_functor F F cc2) (# (pair_functor F F) f)). } etrans. 2: { rewrite assoc'. simpl. rewrite <- (functor_comp G). do 2 apply maponpaths. exact (pr2 FF cc1 cc2 f). } rewrite assoc'. apply maponpaths. apply (! functor_comp G _ _). 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.NaturalTransformations. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.whiskering. Require Import UniMath.CategoryTheory.PrecategoryBinProduct. Require Import UniMath.CategoryTheory.FunctorCategory. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.CategoryTheory.DisplayedCats.Total. Require Import UniMath.CategoryTheory.DisplayedCats.Constructions. Require Import UniMath.CategoryTheory.DisplayedCats.Univalence. Require Import UniMath.CategoryTheory.Monoidal.AlternativeDefinitions.MonoidalCategoriesTensored.