Proposition comp_v_enriched_profunctor_square_mor_eq (z : C₃) (y₁ y₂ : C₂) (x : C₁) : lmap_e P₁ y₂ y₁ x #⊗ identity _ · (τ y₁ x #⊗ θ z y₁ · comp_enriched_profunctor_in Q₁ Q₂ (F₃ z) (F₁ x) (F₂ y₁)) = sym_mon_braiding _ _ _ #⊗ identity _ · mon_lassociator _ _ _ · identity _ #⊗ rmap_e P₂ z y₁ y₂ · (τ y₂ x #⊗ θ z y₂ · comp_enriched_profunctor_in Q₁ Q₂ (F₃ z) (F₁ x) (F₂ y₂)). Proof. etrans. { rewrite !assoc. apply maponpaths_2. rewrite <- tensor_comp_mor. rewrite id_left. rewrite <- enriched_profunctor_transformation_lmap_e. apply idpath. } refine (!_). etrans. { rewrite !assoc'. do 2 apply maponpaths. rewrite !assoc. apply maponpaths_2. rewrite <- tensor_comp_mor. rewrite id_left. rewrite <- enriched_profunctor_transformation_rmap_e. apply idpath. } cbn. refine (!_). etrans. { rewrite tensor_comp_r_id_r. rewrite !tensor_comp_id_r. rewrite !assoc'. rewrite comp_enriched_profunctor_comm. apply idpath. } rewrite !tensor_comp_id_l. rewrite tensor_comp_l_id_l. rewrite tensor_comp_l_id_r. rewrite !assoc. do 2 apply maponpaths_2. etrans. { do 4 apply maponpaths_2. rewrite <- tensor_comp_mor. rewrite id_right. rewrite <- tensor_split. apply idpath. } refine (!_). etrans. { apply maponpaths_2. rewrite !assoc'. rewrite <- tensor_lassociator. rewrite !assoc. rewrite tensor_id_id. rewrite <- tensor_split'. rewrite tensor_split. apply idpath. } etrans. { rewrite !assoc'. rewrite <- tensor_lassociator. rewrite !assoc. apply maponpaths_2. rewrite !assoc'. rewrite <- tensor_comp_id_r. rewrite <- tensor_sym_mon_braiding. rewrite tensor_comp_id_r. rewrite !assoc. rewrite <- tensor_split. apply idpath. } rewrite !assoc'. apply maponpaths. refine (!_). etrans. { rewrite !assoc. apply maponpaths_2. apply sym_mon_hexagon_lassociator. } rewrite !assoc'. rewrite <- tensor_comp_id_l. rewrite sym_mon_braiding_inv. rewrite tensor_id_id. rewrite id_right. apply idpath. Qed.
Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.EnrichedCats.BenabouCosmos. Require Import UniMath.CategoryTheory.EnrichedCats.Enrichment. Require Import UniMath.CategoryTheory.EnrichedCats.EnrichmentFunctor. Require Import UniMath.CategoryTheory.EnrichedCats.EnrichmentTransformation. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.Profunctor. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.StandardProfunctors. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.ProfunctorTransformations. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.Invertible. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.ProfunctorSquares. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.Coend. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.Composition.CompositionProf. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Require Import UniMath.CategoryTheory.Monoidal.Structure.Closed. Import MonoidalNotations.