Lemma fmonoidal_preservesassociativityinv {C D : category} {M : monoidal C} {N : monoidal D} {F : functor C D} (fm : fmonoidal_lax M N F) : preserves_associativityinv (fmonoidal_preservestensordata fm). Proof. intros x y z. rewrite assoc'. apply (z_iso_inv_on_right _ _ _ (_,,_,, monoidal_associatorisolaw N _ _ _)). cbn. etrans. 2: { repeat rewrite assoc. apply cancel_postcomposition. apply fmonoidal_preservesassociativity. } repeat rewrite assoc'. apply maponpaths. etrans. 2: { apply maponpaths. rewrite <- functor_comp. apply maponpaths. apply pathsinv0, (monoidal_associatorisolaw M). } rewrite functor_id. apply pathsinv0, id_right. Qed.
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.Monoidal.WhiskeredBifunctors. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Import BifunctorNotations. Import MonoidalNotations.