Proposition functor_from_kleisli_cat_enrichment_laws : is_functor_enrichment functor_from_kleisli_cat_enrichment_data. Proof. repeat split. - intros x ; cbn. unfold functor_from_kleisli_cat_enrichment_data. rewrite !assoc. rewrite <- functor_enrichment_from_arr. rewrite enriched_from_arr_postcomp. etrans. { apply maponpaths. exact (p x). } rewrite enriched_from_arr_id. apply idpath. - intros x y z ; cbn. unfold functor_from_kleisli_cat_enrichment_data. rewrite !assoc'. etrans. { apply maponpaths. etrans. { apply maponpaths. rewrite !assoc. rewrite <- functor_enrichment_postcomp_arr. rewrite !assoc'. rewrite <- postcomp_arr_comp. apply idpath. } rewrite !assoc. rewrite functor_enrichment_comp. rewrite !assoc'. rewrite enriched_comp_postcomp_arr. apply idpath. } etrans. { rewrite !assoc. rewrite <- !tensor_comp_mor. rewrite id_left, id_right. apply idpath. } refine (!_). etrans. { rewrite tensor_comp_l_id_r. rewrite !assoc'. rewrite <- precomp_postcomp_arr_assoc ; cbn. rewrite !assoc. rewrite <- !tensor_comp_mor. rewrite id_right. apply idpath. } do 2 apply maponpaths_2. rewrite !assoc'. rewrite <- precomp_postcomp_arr. rewrite !assoc. etrans. { apply maponpaths_2. exact (nat_trans_enrichment_to_comp Eγ y (M z)). } cbn. rewrite !assoc'. rewrite <- postcomp_arr_comp. do 3 apply maponpaths. apply q. - intros x y f ; cbn. unfold functor_from_kleisli_cat_enrichment_data. rewrite !assoc. rewrite <- functor_enrichment_from_arr. rewrite enriched_from_arr_postcomp. 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.