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. 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.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.Notations. Require Import UniMath.MoreFoundations.PartA. 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.PrecategoryBinProduct. Require Import UniMath.CategoryTheory.Monoidal.WhiskeredBifunctors. Require Import UniMath.CategoryTheory.Adjunctions.Core. Require Import UniMath.CategoryTheory.Equivalences.Core. Require Import UniMath.CategoryTheory.Equivalences.FullyFaithful. Require Import UniMath.CategoryTheory.opp_precat. Import BifunctorNotations. Import MonoidalNotations. Section EquivalenceFromTensorWithUnit. Import MonoidalNotations. End EquivalenceFromTensorWithUnit. Import MonoidalNotations. Import MonoidalNotations. Import MonoidalNotations. Import MonoidalNotations. Import MonoidalNotations.