proposition: Lemma associator_nat1 {C : category} (M : monoidal C) {x x' y y' z z' : C} (f : C⟦x,x'⟧) (g : C⟦y,y'⟧) (h : C⟦z,z'⟧) : (monoidal_associatordata M x y z) · ((f ⊗^{M}_{r} (y ⊗_{M} z)) · (x' ⊗^{M}_{l} ((g ⊗^{M}_{r} z) · (y' ⊗^{M}_{l} h)))) = (((f ⊗^{M}_{r} y) · (x' ⊗^{M}_{l} g)) ⊗^{M}_{r} z) · ((x' ⊗_{M} y') ⊗^{M}_{l} h) · (monoidal_associatordata M x' y' z').
proof: Proof. rewrite assoc. rewrite (monoidal_associatornatright M). rewrite assoc'. etrans. { apply cancel_precomposition. rewrite (bifunctor_leftcomp M). rewrite assoc. rewrite (monoidal_associatornatleftright M). apply idpath. } etrans. { apply cancel_precomposition. rewrite assoc'. apply cancel_precomposition. apply (monoidal_associatornatleft M). } rewrite assoc. rewrite assoc. apply cancel_postcomposition. apply pathsinv0. rewrite (bifunctor_rightcomp M). apply idpath. Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.Notations UniMath.MoreFoundations.PartA UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.PrecategoryBinProduct UniMath.CategoryTheory.Monoidal.WhiskeredBifunctors UniMath.CategoryTheory.Adjunctions.Core UniMath.CategoryTheory.Equivalences.Core UniMath.CategoryTheory.Equivalences.FullyFaithful UniMath.CategoryTheory.opp_precat