Definition is_em_universal_em_cone_functor_ob {e : em_cone} {x : B} (f : x --> e) : eilenberg_moore_cat (mnd_to_cat_Monad m x). Proof. use make_ob_eilenberg_moore. - exact (f · mor_of_mnd_mor (mor_of_em_cone e)). - exact (rassociator _ _ _ • (_ ◃ (mnd_mor_endo (mor_of_em_cone e) • lunitor _))). - abstract (cbn ; rewrite !vassocl ; rewrite !(maponpaths (λ z, _ • z) (vassocr _ _ _)) ; rewrite <- lwhisker_lwhisker_rassociator ; rewrite !vassocr ; rewrite <- rinvunitor_triangle ; rewrite !vassocl ; rewrite !(maponpaths (λ z, _ • z) (vassocr _ _ _)) ; rewrite lassociator_rassociator ; rewrite id2_left ; rewrite !lwhisker_vcomp ; rewrite !vassocr ; refine (_ @ lwhisker_id2 _ _) ; apply maponpaths ; use vcomp_move_R_Mp ; [ is_iso | ] ; cbn ; rewrite id2_left ; pose (mnd_mor_unit (mor_of_em_cone e)) as p ; cbn in p ; rewrite id2_rwhisker, id2_right in p ; exact (!p)). - abstract (cbn ; rewrite !vassocl ; rewrite !(maponpaths (λ z, _ • z) (vassocr _ _ _)) ; rewrite <- lwhisker_lwhisker_rassociator ; rewrite !vassocl ; rewrite lwhisker_vcomp ; rewrite !vassocr ; etrans ; [ do 2 apply maponpaths ; apply maponpaths_2 ; exact (!(mnd_mor_mu (mor_of_em_cone e))) | ] ; cbn ; rewrite <- !lwhisker_vcomp ; rewrite !vassocr ; apply maponpaths_2 ; rewrite <- rassociator_rassociator ; rewrite <- !rwhisker_vcomp ; rewrite !vassocl ; apply maponpaths ; rewrite !(maponpaths (λ z, _ • z) (vassocr _ _ _)) ; rewrite lwhisker_vcomp ; rewrite rassociator_lassociator ; rewrite lwhisker_id2 ; rewrite id2_left ; rewrite !vassocr ; rewrite rwhisker_lwhisker_rassociator ; rewrite !vassocl ; apply maponpaths ; rewrite !lwhisker_vcomp ; rewrite lunitor_triangle ; rewrite vcomp_lunitor ; rewrite !vassocr ; rewrite <- lunitor_triangle ; rewrite !vassocr ; rewrite rassociator_lassociator ; rewrite id2_left ; rewrite <- !lwhisker_vcomp ; rewrite !vassocr ; rewrite rwhisker_lwhisker_rassociator ; apply idpath). Defined.
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.Core.Univalence. Require Import UniMath.CategoryTheory.Categories.EilenbergMoore. Require Import UniMath.CategoryTheory.Adjunctions.Core. Require Import UniMath.CategoryTheory.Equivalences.Core. Require Import UniMath.CategoryTheory.Equivalences.FullyFaithful. Require Import UniMath.CategoryTheory.Equivalences.CompositesAndInverses. Require Import UniMath.CategoryTheory.Monads.Monads. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.Core.Invertible_2cells. Require Import UniMath.Bicategories.Core.BicategoryLaws. Require Import UniMath.Bicategories.Core.Unitors. Require Import UniMath.Bicategories.Core.TransportLaws. Require Import UniMath.Bicategories.Core.Univalence. Require Import UniMath.Bicategories.Core.AdjointUnique. Require Import UniMath.Bicategories.Morphisms.Adjunctions. Require Import UniMath.Bicategories.Monads.Examples.ToMonadInCat. Require Import UniMath.Bicategories.Core.Examples.BicatOfUnivCats. Require Import UniMath.Bicategories.DisplayedBicats.DispBicat. Import DispBicat.Notations. Require Import UniMath.Bicategories.DisplayedBicats.Examples.MonadsLax. Require Import UniMath.Bicategories.PseudoFunctors.Display.PseudoFunctorBicat. Require Import UniMath.Bicategories.PseudoFunctors.PseudoFunctor. Import PseudoFunctor.Notations. Require Import UniMath.Bicategories.PseudoFunctors.Examples.MonadInclusion.