Lemma comonoid_disp_lunitor_inv (m : comonoid M) : comonoid_mor_struct M m (tensor_of_comonoids comonoid_disp_unit m) (mon_linvunitor m). Proof. use make_is_comonoid_mor. - cbn. use (z_iso_inv_to_right _ _ _ _ (_ ,, _)). { set (i := monoidal_leftunitorisolaw M m). use (is_z_iso_bifunctor_z_iso M) ; apply (_ ,, pr2 i ,, pr1 i). } cbn. etrans. 2: { apply maponpaths. apply (precompose_inner_swap_with_lunitors_on_right M). } apply pathsinv0. etrans. { rewrite ! assoc'. do 2 apply maponpaths. rewrite assoc. apply maponpaths_2. apply inner_swap_inv. } rewrite id_left. rewrite <- (when_bifunctor_becomes_rightwhiskering M). etrans. { apply maponpaths. rewrite assoc. apply maponpaths_2. apply pathsinv0, tensor_comp_mor. } etrans. { apply maponpaths. do 2 apply maponpaths_2. apply monoidal_leftunitorisolaw. } rewrite id_right. etrans. { apply maponpaths. refine (_ @ monoidal_leftunitornat M _ _ δ_{m}). apply maponpaths_2. apply (when_bifunctor_becomes_leftwhiskering M). } rewrite assoc. refine (_ @ id_left _). apply maponpaths_2. apply monoidal_leftunitorisolaw. - cbn. rewrite assoc. apply pathsinv0. etrans. { apply maponpaths_2. refine (_ @ monoidal_leftunitorinvnat M _ _ ε_{m}). now rewrite <- (when_bifunctor_becomes_leftwhiskering M). } rewrite assoc'. apply maponpaths. apply monoidal_leftunitorisolaw. 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.Limits.BinProducts. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.CategoryTheory.DisplayedCats.Total. Require Import UniMath.CategoryTheory.DisplayedCats.Constructions. Require Import UniMath.CategoryTheory.PrecategoryBinProduct. Require Import UniMath.CategoryTheory.Monoidal.WhiskeredBifunctors. Require Import UniMath.CategoryTheory.Monoidal.Categories. Import BifunctorNotations. Require Import UniMath.CategoryTheory.Monoidal.Functors. Require Import UniMath.CategoryTheory.Monoidal.Displayed.WhiskeredDisplayedBifunctors. Require Import UniMath.CategoryTheory.Monoidal.Displayed.Monoidal. Require Import UniMath.CategoryTheory.Monoidal.Displayed.TotalMonoidal. Require Import UniMath.CategoryTheory.Monoidal.Examples.Fullsub. Require Import UniMath.CategoryTheory.Monoidal.Examples.Sigma. Require Import UniMath.CategoryTheory.Monoidal.Structure.Cartesian. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Require Import UniMath.CategoryTheory.Monoidal.Structure.SymmetricDiagonal. Require Import UniMath.CategoryTheory.Monoidal.Displayed.Symmetric. Require Import UniMath.CategoryTheory.Monoidal.Comonoids.Category. Import MonoidalNotations. Import ComonoidNotations.