Proposition graph_enriched_profunctor_enrichment_laws : enrichment_laws graph_enriched_profunctor_enrichment_data. Proof. repeat split. - intros xyf₁ xyf₂ ; cbn. use graph_enriched_profunctor_enrichment_hom_mor_eq. + rewrite !assoc'. rewrite graph_enriched_profunctor_enrichment_comp_pr1. rewrite !assoc. rewrite <- tensor_comp_mor. rewrite id_left. rewrite graph_enriched_profunctor_enrichment_id_pr1. rewrite tensor_split. rewrite !assoc'. rewrite <- enrichment_id_left. rewrite tensor_lunitor. apply idpath. + rewrite !assoc'. rewrite graph_enriched_profunctor_enrichment_comp_pr2. rewrite !assoc. rewrite <- tensor_comp_mor. rewrite id_left. rewrite graph_enriched_profunctor_enrichment_id_pr2. rewrite tensor_split. rewrite !assoc'. rewrite <- enrichment_id_left. rewrite tensor_lunitor. apply idpath. - intros xyf₁ xyf₂ ; cbn. use graph_enriched_profunctor_enrichment_hom_mor_eq. + rewrite !assoc'. rewrite graph_enriched_profunctor_enrichment_comp_pr1. rewrite !assoc. rewrite <- tensor_comp_mor. rewrite id_left. rewrite graph_enriched_profunctor_enrichment_id_pr1. rewrite tensor_split'. rewrite !assoc'. rewrite <- enrichment_id_right. rewrite tensor_runitor. apply idpath. + rewrite !assoc'. rewrite graph_enriched_profunctor_enrichment_comp_pr2. rewrite !assoc. rewrite <- tensor_comp_mor. rewrite id_left. rewrite graph_enriched_profunctor_enrichment_id_pr2. rewrite tensor_split'. rewrite !assoc'. rewrite <- enrichment_id_right. rewrite tensor_runitor. apply idpath. - intros xyf₁ xyf₂ xyf₃ xyf₄ ; cbn. use graph_enriched_profunctor_enrichment_hom_mor_eq. + rewrite !assoc'. rewrite graph_enriched_profunctor_enrichment_comp_pr1. etrans. { rewrite !assoc. rewrite <- tensor_comp_mor. rewrite id_left. rewrite graph_enriched_profunctor_enrichment_comp_pr1. rewrite tensor_comp_r_id_r. rewrite !assoc'. rewrite enrichment_assoc. rewrite !assoc. rewrite tensor_lassociator. apply idpath. } rewrite !assoc'. apply maponpaths. rewrite graph_enriched_profunctor_enrichment_comp_pr1. rewrite !assoc. apply maponpaths_2. rewrite <- !tensor_comp_mor. rewrite id_left, id_right. rewrite graph_enriched_profunctor_enrichment_comp_pr1. apply idpath. + rewrite !assoc'. rewrite graph_enriched_profunctor_enrichment_comp_pr2. etrans. { rewrite !assoc. rewrite <- tensor_comp_mor. rewrite id_left. rewrite graph_enriched_profunctor_enrichment_comp_pr2. rewrite tensor_comp_r_id_r. rewrite !assoc'. rewrite enrichment_assoc. rewrite !assoc. rewrite tensor_lassociator. apply idpath. } rewrite !assoc'. apply maponpaths. rewrite graph_enriched_profunctor_enrichment_comp_pr2. rewrite !assoc. apply maponpaths_2. rewrite <- !tensor_comp_mor. rewrite id_left, id_right. rewrite graph_enriched_profunctor_enrichment_comp_pr2. apply idpath. - intros xyf₁ xyf₂ f. use eq_graph_enriched_profunctor_mor. + cbn. rewrite graph_enriched_profunctor_enrichment_from_arr_pr2. rewrite enriched_to_from_arr. apply idpath. + cbn. rewrite graph_enriched_profunctor_enrichment_from_arr_pr1. rewrite enriched_to_from_arr. apply idpath. - intros xyf₁ xyf₂ f ; cbn. use graph_enriched_profunctor_enrichment_hom_mor_eq. + rewrite graph_enriched_profunctor_enrichment_from_arr_pr1. rewrite enriched_from_to_arr. apply idpath. + rewrite graph_enriched_profunctor_enrichment_from_arr_pr2. rewrite enriched_from_to_arr. apply idpath. - intros xyf. use eq_graph_enriched_profunctor_mor. + cbn. rewrite graph_enriched_profunctor_enrichment_id_pr2. rewrite enriched_to_arr_id. apply idpath. + cbn. rewrite graph_enriched_profunctor_enrichment_id_pr1. rewrite enriched_to_arr_id. apply idpath. - intros xyf₁ xyf₂ xyf₃ h₁ h₂. use eq_graph_enriched_profunctor_mor. + cbn. rewrite !assoc'. rewrite graph_enriched_profunctor_enrichment_comp_pr2. refine (!_). etrans. { do 2 apply maponpaths. rewrite !assoc. apply maponpaths_2. rewrite <- !tensor_comp_mor. rewrite !graph_enriched_profunctor_enrichment_from_arr_pr2. apply idpath. } refine (_ @ !(enriched_to_arr_comp E₂ (pr1 h₁) (pr1 h₂))). rewrite !assoc'. apply idpath. + cbn. rewrite !assoc'. rewrite graph_enriched_profunctor_enrichment_comp_pr1. refine (!_). etrans. { do 2 apply maponpaths. rewrite !assoc. apply maponpaths_2. rewrite <- !tensor_comp_mor. rewrite !graph_enriched_profunctor_enrichment_from_arr_pr1. apply idpath. } refine (_ @ !(enriched_to_arr_comp E₁ (pr12 h₁) (pr12 h₂))). rewrite !assoc'. 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.