Theorem Kleisli_adjunction_monad_eq {C : category} (T : Monad C) : Monad_from_adjunction (Kleisli_functors_are_adjoints T) = T. Proof. use Monad_eq_raw_data. apply total2_paths_equiv; use tpair. + cbn. apply idpath. + cbn. apply total2_paths_equiv; use tpair. * cbn. apply total2_paths_equiv; use tpair. -- cbn. do 2 (apply funextsec; intro). apply funextfun; intro f. cbn. apply bind_comp_η. -- cbn. rewrite transportf_const. cbn. apply funextsec; intro c. apply bind_identity. * cbn. rewrite transportf_const. 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.Adjunctions.Core. Require Import UniMath.CategoryTheory.Monads.Monads. Require Import UniMath.CategoryTheory.whiskering.