proposition: Lemma assoc_right_commutes_with_triple_pairing {C D : category} (F : functor C D) {TC : functor (C ⊠ C) C} {TD : functor (D ⊠ D) D} {FF : functor_tensor TC TD F} (FF_iso : is_nat_z_iso FF) : nat_z_iso (pair_functor (pair_functor F F) F ∙ assoc_right TD) (assoc_right TC ∙ F).
proof: Proof. use nat_z_iso_comp. 2: apply nat_z_iso_functor_comp_assoc. use nat_z_iso_comp. 2: { use post_whisker_nat_z_iso. 2: apply unassoc_commutes. } use nat_z_iso_comp. 2: apply (nat_z_iso_inv (nat_z_iso_functor_comp_assoc _ _ _)). use nat_z_iso_comp. 3: apply nat_z_iso_functor_comp_assoc. apply pre_whisker_nat_z_iso. use nat_z_iso_comp. 3: apply nat_z_iso_functor_comp_assoc. use nat_z_iso_comp. 3: { apply pre_whisker_nat_z_iso. apply (FF ,, FF_iso). } use nat_z_iso_comp. 3: apply (nat_z_iso_inv (nat_z_iso_functor_comp_assoc _ _ _)). use nat_z_iso_comp. 2: apply nat_z_iso_functor_comp_assoc. apply post_whisker_nat_z_iso. use product_of_commuting_squares. { apply (make_nat_z_iso _ _ _ (is_nat_z_iso_nat_trans_id F)). } apply (FF ,, FF_iso). Defined.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.whiskering UniMath.CategoryTheory.PrecategoryBinProduct UniMath.CategoryTheory.FunctorCategory UniMath.CategoryTheory.DisplayedCats.Core UniMath.CategoryTheory.DisplayedCats.Total UniMath.CategoryTheory.DisplayedCats.Constructions UniMath.CategoryTheory.DisplayedCats.Univalence UniMath.CategoryTheory.Monoidal.AlternativeDefinitions.MonoidalCategoriesTensored