Proposition dwhisker_enriched_profunctor_square_comp {V : benabou_cosmos} {C₁ C₂ C₃ C₄ : category} {E₁ : enrichment C₁ V} {E₂ : enrichment C₂ V} {E₃ : enrichment C₃ V} {E₄ : enrichment C₄ V} {F : C₁ ⟶ C₂} {EF : functor_enrichment F E₁ E₂} {G₁ G₂ G₃ : C₃ ⟶ C₄} {EG₁ : functor_enrichment G₁ E₃ E₄} {EG₂ : functor_enrichment G₂ E₃ E₄} {EG₃ : functor_enrichment G₃ E₃ E₄} {P : E₁ ↛e E₃} {Q : E₂ ↛e E₄} {τ₁ : G₁ ⟹ G₂} (Hτ₁ : nat_trans_enrichment τ₁ EG₁ EG₂) {τ₂ : G₂ ⟹ G₃} (Hτ₂ : nat_trans_enrichment τ₂ EG₂ EG₃) (θ : enriched_profunctor_square EF EG₃ P Q) : dwhisker_enriched_profunctor_square (comp_trans_enrichment Hτ₁ Hτ₂) θ = dwhisker_enriched_profunctor_square Hτ₁ (dwhisker_enriched_profunctor_square Hτ₂ θ). Proof. use eq_enriched_profunctor_transformation ; intros z x ; cbn. rewrite !assoc'. do 2 apply maponpaths. refine (!_). etrans. { apply maponpaths. rewrite !assoc. rewrite tensor_linvunitor. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite <- tensor_split. rewrite tensor_split'. rewrite !assoc'. rewrite lmap_e_lmap_e. apply idpath. } rewrite !assoc. apply maponpaths_2. rewrite enriched_from_arr_comp. rewrite tensor_comp_id_r. apply maponpaths_2. etrans. { rewrite !assoc'. do 2 apply maponpaths. rewrite !assoc. rewrite <- tensor_id_id. rewrite tensor_rassociator. rewrite !assoc'. rewrite <- tensor_comp_id_r. rewrite tensor_sym_mon_braiding. rewrite tensor_comp_id_r. apply idpath. } refine (!_). etrans. { apply maponpaths_2. rewrite tensor_split'. rewrite !assoc. rewrite mon_linvunitor_I_mon_rinvunitor_I. rewrite <- tensor_rinvunitor. apply idpath. } rewrite !tensor_comp_id_r. rewrite !assoc'. apply maponpaths. rewrite !assoc. apply maponpaths_2. rewrite <- mon_linvunitor_triangle. refine (!_). etrans. { apply maponpaths_2. rewrite !assoc'. rewrite mon_lassociator_rassociator. apply id_right. } rewrite <- tensor_comp_id_r. rewrite sym_mon_braiding_linvunitor. 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.EnrichedCats.Profunctors.Composition.SquareComp. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.Composition.Unitors. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.Composition.Associators. Require Import UniMath.CategoryTheory.EnrichedCats.Profunctors.Composition.Whiskering. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Require Import UniMath.CategoryTheory.Monoidal.Structure.Closed. Import MonoidalNotations.