Proposition Kleisli_cat_enrichment_precomp_arr {x y : Kleisli_cat_monad M} (w : Kleisli_cat_monad M) (f : x --> y) : precomp_arr Kleisli_cat_monad_enrichment w f = EM y (M w) · postcomp_arr E _ (μ M w) · precomp_arr E _ f. Proof. unfold precomp_arr ; cbn. rewrite !assoc'. etrans. { apply maponpaths. rewrite !assoc. rewrite <- tensor_split. rewrite tensor_split'. apply idpath. } rewrite !assoc. rewrite tensor_rinvunitor. rewrite !tensor_comp_id_r. rewrite !assoc'. do 2 apply maponpaths. rewrite enriched_comp_postcomp_arr. rewrite !assoc. apply maponpaths_2. rewrite <- tensor_split. rewrite <- tensor_split'. apply idpath. Qed.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.Univalence. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.EnrichedCats.Enrichment. Require Import UniMath.CategoryTheory.EnrichedCats.EnrichmentFunctor. Require Import UniMath.CategoryTheory.EnrichedCats.EnrichmentTransformation. Require Import UniMath.CategoryTheory.EnrichedCats.EnrichmentMonad. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monads.Monads. Require Import UniMath.CategoryTheory.Monads.KleisliCategory. Section FunctorFromKleisli. End FunctorFromKleisli.