Lemma lineator_laxlaws_coprod : lineator_laxlaws Mon_V ActC ActD FF lineator_data_coprod. Proof. repeat split; red; intros; unfold lineator_data_coprod. - etrans. { repeat rewrite assoc. apply cancel_postcomposition. apply (lineator_linnatleft _ _ _ _ δll v). } repeat rewrite assoc'. apply maponpaths. etrans. { apply CoproductOfArrows_comp. } etrans. 2: { apply pathsinv0, CoproductOfArrows_comp. } apply maponpaths, funextsec; intro i; apply lineator_linnatleft. - etrans. { repeat rewrite assoc. apply cancel_postcomposition. apply (lineator_linnatright _ _ _ _ δll v1 v2 _ f). } repeat rewrite assoc'. apply maponpaths. etrans. { apply CoproductOfArrows_comp. } etrans. 2: { apply pathsinv0, CoproductOfArrows_comp. } apply maponpaths, funextsec; intro i; apply lineator_linnatright. - etrans. { rewrite assoc'. apply maponpaths. etrans. { apply CoproductOfArrows_comp. } cbn. apply maponpaths, funextsec; intro i; apply lineator_preservesactor. } etrans. { apply maponpaths. assert (aux : (fun i => aα^{ ActD }_{ v, w, F i x} · v ⊗^{ ActD}_{l} ll i w x · ll i v (w ⊗_{ ActC} x)) = (fun i => aα^{ ActD }_{ v, w, F i x} · (v ⊗^{ ActD}_{l} ll i w x · ll i v (w ⊗_{ ActC} x)))). { apply funextsec; intro i; apply assoc'. } rewrite aux. apply pathsinv0, CoproductOfArrows_comp. } etrans. { rewrite assoc. apply cancel_postcomposition. apply (lineator_preservesactor _ _ _ _ δll v w). } etrans. 2: { apply cancel_postcomposition. apply maponpaths. apply pathsinv0, (functor_comp (leftwhiskering_functor ActD v)). } repeat rewrite assoc'. do 2 apply maponpaths. repeat rewrite assoc. etrans. 2: { apply cancel_postcomposition. apply pathsinv0, (lineator_linnatleft _ _ _ _ δll v). } rewrite assoc'. apply maponpaths. etrans. 2: { apply pathsinv0, CoproductOfArrows_comp. } apply idpath. - etrans. 2: { apply (lineator_preservesunitor _ _ _ _ δll). } rewrite assoc'. apply maponpaths. etrans. { apply CoproductOfArrows_comp. } cbn. apply maponpaths, funextsec; intro i; apply lineator_preservesunitor. 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.PrecategoryBinProduct. Require Import UniMath.CategoryTheory.whiskering. Require Import UniMath.CategoryTheory.Monoidal.WhiskeredBifunctors. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Functors. Require Import UniMath.CategoryTheory.Actegories.Actegories. Require Import UniMath.CategoryTheory.Actegories.MorphismsOfActegories. Require Import UniMath.CategoryTheory.Actegories.ConstructionOfActegories. Require Import UniMath.CategoryTheory.coslicecat. Require Import UniMath.CategoryTheory.Monoidal.Examples.MonoidalPointedObjects. Require Import UniMath.CategoryTheory.Limits.BinProducts. Require Import UniMath.CategoryTheory.Limits.BinCoproducts. Require Import UniMath.CategoryTheory.Limits.Coproducts. Require Import UniMath.CategoryTheory.Actegories.CoproductsInActegories. Require Import UniMath.CategoryTheory.Actegories.ProductsInActegories. Require Import UniMath.CategoryTheory.Actegories.ProductActegory. Import BifunctorNotations. Import MonoidalNotations. Import ActegoryNotations. Section ActegoryMorphismFromRelativeLaxCommutator. End ActegoryMorphismFromRelativeLaxCommutator.