Definition bicat_of_cats_has_kleisli_ump_1 : has_kleisli_ump_1 m bicat_of_cats_has_kleisli_cocone. Proof. intro q. pose (F := mor_of_kleisli_cocone _ q). pose (γ := cell_of_kleisli_cocone _ q). pose (p₁ := nat_trans_eq_pointwise (kleisli_cocone_unit _ q)). assert (p₂ : ∏ (x : C), pr1 γ (M x) · pr1 γ x = # (pr1 F) (μ M x) · pr1 γ x). { intro x. pose (p₂ := nat_trans_eq_pointwise (kleisli_cocone_mult _ q) x). cbn in p₂. rewrite !id_left in p₂. exact p₂. } use make_kleisli_cocone_mor. - exact (functor_from_kleisli_cat_monad M F γ p₁ p₂). - exact (functor_from_kleisli_cat_monad_nat_trans M F γ p₁ p₂). - abstract (use nat_trans_eq ; [ apply homset_property | ] ; intro x ; cbn ; rewrite functor_id ; rewrite !id_left, id_right ; apply idpath). - use is_nat_z_iso_to_is_invertible_2cell. intro. apply is_z_isomorphism_identity. 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.Monads.Monads. Require Import UniMath.CategoryTheory.Monads.KleisliCategory. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.DisplayedBicats.DispBicat. Import DispBicat.Notations. Require Import UniMath.Bicategories.DisplayedBicats.Examples.MonadsLax. Require Import UniMath.Bicategories.Core.Examples.BicatOfCats. Require Import UniMath.Bicategories.Core.Examples.OpMorBicat. Require Import UniMath.Bicategories.Monads.Examples.MonadsInBicatOfCats. Require Import UniMath.Bicategories.Monads.Examples.MonadsInOp1Bicat. Require Import UniMath.Bicategories.Colimits.KleisliObjects.