Proposition self_enrichment_precomp {x y z : V} (f : x --> y) : precomp_arr self_enrichment z f = internal_lam (identity _ #⊗ f · internal_eval _ _). Proof. use internal_funext. intros a h. unfold precomp_arr ; cbn. rewrite !tensor_comp_r_id_r. etrans. { rewrite !assoc'. unfold internal_comp. rewrite !internal_beta. etrans. { apply maponpaths. rewrite !assoc. rewrite tensor_lassociator. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite <- tensor_comp_id_l. unfold internal_from_arr. rewrite internal_beta. rewrite tensor_comp_id_l. apply idpath. } etrans. { apply maponpaths. rewrite !assoc. rewrite <- mon_triangle. apply idpath. } rewrite !assoc. rewrite <- tensor_comp_mor. rewrite id_right. rewrite mon_rinvunitor_runitor. apply idpath. } refine (!_). etrans. { rewrite tensor_split. rewrite !assoc'. rewrite internal_beta. apply idpath. } rewrite !assoc. 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.Monads.Monads. 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.Monoidal.StrongMonad. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Require Import UniMath.CategoryTheory.Monoidal.Structure.Closed. Import MonoidalNotations.