proposition: Lemma assoc_left_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_left TD) (assoc_left TC ∙ F).
proof: Proof. unfold assoc_left. 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 pair_functor_composite. } use nat_z_iso_comp. 2: { use post_whisker_nat_z_iso. 2: { use pair_nat_z_iso. 3: { exists FF. apply FF_iso. } 2: { exists (nat_trans_id _). apply is_nat_z_iso_nat_trans_id. } } } unfold functor_tensor_map_codom. use nat_z_iso_comp. 2: { use post_whisker_nat_z_iso. 2: { use pair_nat_z_iso. 3: { exists (nat_trans_id _). apply is_nat_z_iso_nat_trans_id. } 2: apply functor_commutes_with_id. } } use nat_z_iso_comp. 2: { use post_whisker_nat_z_iso. 2: apply (nat_z_iso_inv (pair_functor_composite _ _ _ _)). } use nat_z_iso_comp. 2: apply (nat_z_iso_inv (nat_z_iso_functor_comp_assoc _ _ _)). use nat_z_iso_comp. 2: { use pre_whisker_nat_z_iso. 2: { exists FF. apply FF_iso. } } apply nat_z_iso_functor_comp_assoc. 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