Proposition is_inverse_lassociator_enriched_profunctor_mor (z : C₄) (w : C₁) : is_inverse_in_precat (lassociator_enriched_profunctor z w) (rassociator_enriched_profunctor_data z w). Proof. split ; cbn. - use from_comp_enriched_profunctor_eq. intros x. rewrite id_right. rewrite !assoc. rewrite lassociator_enriched_profunctor_data_comm. use is_inj_internal_transpose. use from_comp_enriched_profunctor_eq. intros y. use internal_funext. intros a h. rewrite !tensor_comp_r_id_r. rewrite !(tensor_split (comp_enriched_profunctor_in _ _ _ _ _) h). rewrite !assoc'. apply maponpaths. unfold internal_transpose. rewrite !internal_beta. rewrite !assoc. etrans. { do 3 apply maponpaths_2. rewrite !assoc'. rewrite sym_mon_braiding_inv. apply id_right. } rewrite <- tensor_comp_id_r. rewrite lassociator_enriched_profunctor_mor_comm. rewrite tensor_sym_mon_braiding. unfold lassociator_enriched_profunctor_mor_ob. rewrite !assoc'. apply maponpaths. etrans. { do 2 apply maponpaths. apply rassociator_enriched_profunctor_data_comm. } etrans. { apply maponpaths. rewrite !assoc. rewrite <- tensor_comp_id_r. rewrite rassociator_enriched_profunctor_mor_comm. apply idpath. } unfold rassociator_enriched_profunctor_mor_ob. rewrite !assoc. rewrite mon_rassociator_lassociator. rewrite id_left. apply idpath. - use from_comp_enriched_profunctor_eq. intros x. rewrite id_right. rewrite !assoc. rewrite rassociator_enriched_profunctor_data_comm. use is_inj_internal_lam. use from_comp_enriched_profunctor_eq. intros y. use internal_funext. intros a h. rewrite !tensor_comp_r_id_r. rewrite !(tensor_split (comp_enriched_profunctor_in _ _ _ _ _) h). rewrite !assoc'. apply maponpaths. rewrite !internal_beta. rewrite !assoc. rewrite <- tensor_comp_id_r. rewrite rassociator_enriched_profunctor_mor_comm. unfold rassociator_enriched_profunctor_mor_ob. rewrite !assoc'. etrans. { do 2 apply maponpaths. apply lassociator_enriched_profunctor_data_comm. } etrans. { apply maponpaths. rewrite !assoc. rewrite tensor_sym_mon_braiding. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite <- tensor_comp_id_r. rewrite lassociator_enriched_profunctor_mor_comm. apply idpath. } unfold lassociator_enriched_profunctor_mor_ob. etrans. { apply maponpaths. rewrite !assoc. rewrite sym_mon_braiding_inv. rewrite id_left. apply idpath. } rewrite !assoc. rewrite mon_lassociator_rassociator. rewrite id_left. 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.