Proposition comp_enriched_profunctor_comm' (y₁ y₂ : C₂) : identity _ #⊗ rmap_e Q z y₁ y₂ · comp_enriched_profunctor_in y₂ = identity _ #⊗ sym_mon_braiding V _ _ · mon_rassociator _ _ _ · sym_mon_braiding V _ _ · mon_rassociator _ _ _ · (lmap_e P y₂ y₁ x #⊗ identity _) · comp_enriched_profunctor_in y₁. Proof. rewrite !assoc'. rewrite comp_enriched_profunctor_comm. refine (!_). etrans. { do 3 apply maponpaths. rewrite !assoc. rewrite mon_rassociator_lassociator. rewrite id_left. apply idpath. } etrans. { do 2 apply maponpaths. rewrite !assoc. rewrite sym_mon_braiding_inv. rewrite id_left. apply idpath. } etrans. { apply maponpaths. rewrite !assoc. rewrite mon_rassociator_lassociator. rewrite id_left. apply idpath. } rewrite !assoc. rewrite <- tensor_comp_id_l. rewrite !assoc. rewrite sym_mon_braiding_inv. rewrite id_left. apply idpath. Qed.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.Limits.Coends. Require Import UniMath.CategoryTheory.OppositeCategory.Core. Require Import UniMath.CategoryTheory.PrecategoryBinProduct. Require Import UniMath.CategoryTheory.EnrichedCats.BenabouCosmos. Require Import UniMath.CategoryTheory.EnrichedCats.Enrichment. Require Import UniMath.CategoryTheory.EnrichedCats.EnrichmentFunctor. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.Profunctor. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.Coend. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Require Import UniMath.CategoryTheory.Monoidal.Structure.Closed. Import MonoidalNotations.