Lemma lax_monoidal_functor_on_precompose_underlying_morphism {A : enriched_precat Mon_V} {x y : A} (z : A) (f : underlying_morphism x y) : # F (precompose_underlying_morphism z f) = @precompose_underlying_morphism _ (change_of_base_enriched_precat _) _ _ _ (mon_functor_unit F · # F f). Proof. unfold precompose_underlying_morphism. do 2 rewrite (functor_comp F). cbn. rewrite assoc. apply cancel_postcomposition. rewrite <- (functor_id F). rewrite <- (id_left (#F (identity _))). rewrite tensor_comp_mor. rewrite assoc, assoc'. apply (transportb (λ g, _ = _ · g) (tensor_mon_functor_tensor F _ _)). rewrite assoc. apply cancel_postcomposition. change (# F (is_z_isomorphism_mor ?f)) with (is_z_isomorphism_mor (functor_on_is_z_isomorphism F f)). change (is_z_isomorphism_mor ?x) with (inv_from_z_iso (_,,x)). apply pathsinv0. rewrite mon_functor_rinvunitor. apply idpath. Qed.
Require Import UniMath.Foundations.PartA. Require Import UniMath.Foundations.Propositions. 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.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Functors. Require Import UniMath.CategoryTheory.EnrichedCats.Enriched.Enriched. Import MonoidalNotations.