Proposition rassociator_enriched_profunctor_mor_eq (z : C₄) (y : C₃) (x₁ x₂ : C₂) (w : C₁) : lmap_e P₁ x₂ x₁ w #⊗ identity _ · internal_lam (rassociator_enriched_profunctor_mor_ob z y x₁ w) = sym_mon_braiding _ _ _ #⊗ identity _ · mon_lassociator _ _ _ · identity _ #⊗ rmap_e P₂ y x₁ x₂ · internal_lam (rassociator_enriched_profunctor_mor_ob z y x₂ w). Proof. use internal_funext. intros a h. rewrite !tensor_comp_r_id_r. rewrite !assoc'. rewrite !internal_beta. rewrite !(tensor_split (_ #⊗ _) h). rewrite !assoc'. apply maponpaths. unfold rassociator_enriched_profunctor_mor_ob. rewrite !assoc. etrans. { rewrite tensor_lassociator. rewrite !assoc'. apply maponpaths. rewrite tensor_id_id. rewrite !assoc. rewrite <- tensor_split'. rewrite tensor_split. rewrite !assoc'. apply maponpaths. apply (comp_enriched_profunctor_comm P₁ (comp_enriched_profunctor P₂ P₃)). } etrans. { apply maponpaths. rewrite !assoc. rewrite <- tensor_id_id. rewrite tensor_lassociator. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite tensor_sym_mon_braiding. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite tensor_lassociator. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite <- tensor_comp_id_l. rewrite !assoc. rewrite tensor_sym_mon_braiding. rewrite !assoc'. rewrite tensor_comp_id_l. rewrite !assoc'. apply maponpaths. cbn. rewrite !assoc. rewrite <- tensor_comp_id_l. rewrite tensor_sym_mon_braiding. rewrite !assoc'. rewrite tensor_comp_id_l. rewrite !assoc'. rewrite comp_enriched_profunctor_rmap_comm. rewrite !assoc. rewrite <- tensor_comp_id_l. rewrite !assoc. rewrite sym_mon_braiding_inv. rewrite id_left. unfold comp_enriched_profunctor_rmap_mor. rewrite !tensor_comp_id_l. apply idpath. } rewrite !assoc. do 2 apply maponpaths_2. rewrite !assoc'. rewrite tensor_lassociator. rewrite !assoc. apply maponpaths_2. etrans. { do 2 apply maponpaths_2. rewrite !assoc'. apply maponpaths. rewrite !assoc. apply sym_mon_hexagon_lassociator. } etrans. { apply maponpaths_2. rewrite !assoc'. rewrite <- tensor_comp_id_l. rewrite sym_mon_braiding_inv. rewrite tensor_id_id. rewrite id_right. apply idpath. } rewrite !assoc. rewrite <- tensor_id_id. rewrite <- tensor_lassociator. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite mon_lassociator_lassociator. rewrite !assoc'. rewrite <- tensor_comp_id_l. rewrite mon_lassociator_rassociator. rewrite tensor_id_id. rewrite id_right. 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.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.Composition.CompositionProf. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Require Import UniMath.CategoryTheory.Monoidal.Structure.Closed. Import MonoidalNotations.