Proposition lwhisker_lassociator_enriched_profunctor {V : benabou_cosmos} {C₁ C₂ C₃ C₄ C₅ C₆ C₇ C₈ : category} {E₁ : enrichment C₁ V} {E₂ : enrichment C₂ V} {E₃ : enrichment C₃ V} {E₄ : enrichment C₄ V} {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₂} {F₂ : C₃ ⟶ C₄} {EF₂ : functor_enrichment F₂ E₃ E₄} {F₃ : C₅ ⟶ C₆} {EF₃ : functor_enrichment F₃ E₅ E₆} {F₄ : C₇ ⟶ C₈} {EF₄ : functor_enrichment F₄ E₇ E₈} {P₁ : E₁ ↛e E₃} {P₂ : E₃ ↛e E₅} {P₃ : E₅ ↛e E₇} {Q₁ : E₂ ↛e E₄} {Q₂ : E₄ ↛e E₆} {Q₃ : E₆ ↛e E₈} (τ₁ : enriched_profunctor_square EF₁ EF₂ P₁ Q₁) (τ₂ : enriched_profunctor_square EF₂ EF₃ P₂ Q₂) (τ₃ : enriched_profunctor_square EF₃ EF₄ P₃ Q₃) : lwhisker_enriched_profunctor_square (lassociator_enriched_profunctor P₁ P₂ P₃) (comp_v_enriched_profunctor_square (comp_v_enriched_profunctor_square τ₁ τ₂) τ₃) = rwhisker_enriched_profunctor_square (lassociator_enriched_profunctor Q₁ Q₂ Q₃) (comp_v_enriched_profunctor_square τ₁ (comp_v_enriched_profunctor_square τ₂ τ₃)). Proof. use eq_enriched_profunctor_transformation ; intros x₁ x₂ ; cbn. use from_comp_enriched_profunctor_eq. intros x₃. etrans. { rewrite !assoc. apply maponpaths_2. apply lassociator_enriched_profunctor_data_comm. } refine (!_). etrans. { rewrite !assoc. apply maponpaths_2. apply comp_v_enriched_profunctor_square_mor_comm. } use is_inj_internal_transpose. use from_comp_enriched_profunctor_eq. intros x₄. use internal_funext. intros v h. rewrite !tensor_comp_r_id_r. rewrite !(tensor_split (comp_enriched_profunctor_in _ _ _ _ _) h). rewrite !assoc'. apply maponpaths. clear v h. unfold internal_transpose. rewrite !internal_beta. rewrite !assoc. rewrite tensor_sym_mon_braiding. rewrite !assoc'. apply maponpaths. etrans. { rewrite !assoc. rewrite <- tensor_comp_mor. rewrite id_left. do 2 apply maponpaths_2. apply maponpaths. apply comp_v_enriched_profunctor_square_mor_comm. } rewrite !assoc'. etrans. { apply maponpaths. apply (lassociator_enriched_profunctor_data_comm Q₁ Q₂ Q₃). } etrans. { rewrite tensor_comp_l_id_r. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite tensor_sym_mon_braiding. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite <- tensor_comp_id_r. apply (lassociator_enriched_profunctor_mor_comm Q₁ Q₂ Q₃). } cbn. etrans. { apply maponpaths. unfold lassociator_enriched_profunctor_mor_ob. rewrite !assoc. rewrite sym_mon_braiding_inv. rewrite id_left. apply idpath. } refine (!_). etrans. { rewrite !assoc. rewrite tensor_sym_mon_braiding. rewrite !assoc'. apply maponpaths. rewrite !assoc. apply maponpaths_2. rewrite <- tensor_comp_id_r. apply (lassociator_enriched_profunctor_mor_comm P₁ P₂ P₃). } etrans. { unfold lassociator_enriched_profunctor_mor_ob. rewrite !assoc. rewrite sym_mon_braiding_inv. rewrite id_left. rewrite !assoc'. do 2 apply maponpaths. apply (comp_v_enriched_profunctor_square_mor_comm (comp_v_enriched_profunctor_square τ₁ τ₂) τ₃). } rewrite !assoc. apply maponpaths_2. etrans. { rewrite !assoc'. apply maponpaths. rewrite <- tensor_comp_mor. rewrite id_left. apply maponpaths_2. apply comp_v_enriched_profunctor_square_mor_comm. } rewrite tensor_comp_r_id_r. rewrite !assoc. apply maponpaths_2. rewrite tensor_rassociator. apply idpath. Qed.
Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.whiskering. 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.