Lemma unassoc_commutes {C D : category} (F : functor C D) : nat_z_iso ((pair_functor (pair_functor F F) F) ∙ (precategory_binproduct_unassoc D D D)) ((precategory_binproduct_unassoc C C C) ∙ (pair_functor F (pair_functor F F))). Proof. use make_nat_z_iso. - use make_nat_trans. + intro ; use catbinprodmor ; apply identity. + intro ; intros. use total2_paths_f. * exact (id_right _ @ ! id_left _). * abstract (rewrite transportf_const ; exact (id_right _ @ ! id_left _)). - intro. use tpair. * use catbinprodmor ; apply identity. * abstract (split ; (use total2_paths_f ; [ apply id_right | rewrite transportf_const ; apply id_right ])). Defined.
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.