Proposition graph_enriched_profunctor_enrichment_comp_eq : l · mon_rinvunitor _ · identity _ #⊗ f · rmap_e P y₁ x₁ x₃ = r · mon_rinvunitor _ · identity _ #⊗ h · lmap_e P y₃ y₁ x₃. Proof. unfold l, r. etrans. { rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite tensor_rinvunitor. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite <- tensor_split'. rewrite tensor_split. rewrite !assoc'. rewrite rmap_e_comp. apply idpath. } etrans. { do 2 apply maponpaths. rewrite !assoc. rewrite <- tensor_id_id. rewrite tensor_lassociator. apply idpath. } etrans. { apply maponpaths. rewrite !assoc. rewrite <- mon_rinvunitor_triangle. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite mon_rassociator_lassociator. rewrite id_left. apply idpath. } etrans. { rewrite !assoc. rewrite <- !tensor_comp_l_id_r. apply maponpaths_2. apply maponpaths. apply graph_enriched_profunctor_enrichment_hom_eq. } etrans. { rewrite tensor_comp_l_id_r. rewrite !assoc'. apply maponpaths. apply lmap_e_rmap_e'. } refine (!_). etrans. { rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite tensor_rinvunitor. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite <- tensor_split'. rewrite tensor_split. rewrite !assoc'. rewrite lmap_e_comp'. apply idpath. } etrans. { do 2 apply maponpaths. rewrite !assoc. rewrite <- tensor_id_id. rewrite <- tensor_comp_r_id_r. rewrite tensor_sym_mon_braiding. rewrite tensor_comp_r_id_r. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite tensor_lassociator. apply idpath. } etrans. { apply maponpaths. rewrite !assoc. rewrite tensor_split'. rewrite !assoc. rewrite <- tensor_rinvunitor. rewrite !assoc'. apply maponpaths. etrans. { apply maponpaths. rewrite !assoc. rewrite <- tensor_id_id. rewrite tensor_lassociator. apply idpath. } rewrite !assoc. rewrite <- mon_rinvunitor_triangle. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite mon_rassociator_lassociator. rewrite id_left. apply idpath. } etrans. { rewrite !assoc. rewrite tensor_sym_mon_braiding. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite <- !tensor_comp_mor. rewrite !id_right. apply maponpaths_2. apply maponpaths. rewrite tensor_id_id. rewrite id_right. refine (!_). apply graph_enriched_profunctor_enrichment_hom_eq. } rewrite !assoc. apply maponpaths_2. rewrite tensor_comp_l_id_r. rewrite !assoc. apply maponpaths_2. etrans. { do 2 rewrite tensor_comp_l_id_r. rewrite !assoc. rewrite <- tensor_sym_mon_braiding. do 3 apply maponpaths_2. apply tensor_split'. } refine (!_). etrans. { do 3 apply maponpaths_2. apply tensor_split'. } rewrite !assoc'. apply maponpaths. do 2 rewrite tensor_comp_l_id_l. rewrite !assoc'. apply maponpaths. etrans. { apply maponpaths. rewrite !assoc. rewrite tensor_rassociator. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite tensor_id_id. rewrite <- tensor_split. rewrite tensor_split'. rewrite !assoc'. apply maponpaths. rewrite <- tensor_id_id. rewrite tensor_lassociator. apply idpath. } rewrite !assoc. apply maponpaths_2. etrans. { rewrite sym_mon_tensor_lassociator'. rewrite !assoc'. rewrite mon_rassociator_lassociator. rewrite id_right. apply maponpaths. rewrite !assoc. rewrite mon_rassociator_lassociator. rewrite id_left. apply idpath. } rewrite !assoc. rewrite tensor_sym_mon_braiding. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite <- mon_inv_triangle. rewrite <- tensor_comp_id_l. rewrite sym_mon_braiding_linvunitor. apply idpath. Qed.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.Limits.BinProducts. Require Import UniMath.CategoryTheory.Limits.Equalizers. 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.ProfunctorTransformations. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.ProfunctorSquares. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.StandardProfunctors. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Require Import UniMath.CategoryTheory.Monoidal.Structure.Closed. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.TwoSidedDispCat. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Isos. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Univalence. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Total. Import MonoidalNotations.