Definition strict_kleisli_double_cat {C : setcategory} (M : Monad C) : strict_double_cat. Proof. use make_strict_double_cat. - exact C. - exact (comma_twosided_disp_cat (functor_identity C) M). - apply is_strict_comma_twosided_disp_cat. - exact (hor_id_kleisli M). - exact (hor_comp_kleisli M). - abstract (intros x y f ; cbn ; refine (maponpaths (λ z, z · _) (!(nat_trans_ax (η M) _ _ f)) @ _) ; cbn ; refine (_ @ id_right _) ; rewrite !assoc' ; apply maponpaths ; exact (@Monad_law1 _ M y)). - abstract (intros x y f ; cbn ; refine (_ @ id_right _) ; rewrite !assoc' ; apply maponpaths ; exact (@Monad_law2 _ M y)). - abstract (intros w x y z f g h ; cbn ; rewrite !functor_comp ; rewrite !assoc' ; do 2 apply maponpaths ; rewrite !assoc ; refine (_ @ maponpaths (λ z, z · _) (nat_trans_ax (μ M) _ _ h)) ; cbn ; rewrite !assoc' ; apply maponpaths ; apply (@Monad_law3 _ M)). - abstract (intro ; intros ; apply homset_property). - abstract (intro ; intros ; apply homset_property). - abstract (intro ; intros ; apply homset_property). Defined.
Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.Core.Setcategories. Require Import UniMath.CategoryTheory.Monads.Monads. Require Import UniMath.CategoryTheory.Monics. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.TwoSidedDispCat. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Isos. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Univalence. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Strictness. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Examples.Comma. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.Core.Examples.BicatOfUnivCats. Require Import UniMath.Bicategories.DoubleCategories.Basics.DoubleCategoryBasics. Require Import UniMath.Bicategories.DoubleCategories.Basics.StrictDoubleCatBasics. Require Import UniMath.Bicategories.DoubleCategories.Core.DoubleCats. Require Import UniMath.Bicategories.DoubleCategories.Core.UnivalentDoubleCats. Require Import UniMath.Bicategories.DoubleCategories.Core.StrictDoubleCats. Require Import UniMath.Bicategories.DoubleCategories.Core.CompanionsAndConjoints.