Proposition enriched_eso_ff_lift_functor_enrichment_laws : is_functor_enrichment enriched_eso_ff_lift_functor_enrichment_data. Proof. repeat split. - intros x ; cbn. rewrite !assoc. rewrite functor_enrichment_id. rewrite enriched_id_precomp_arr. rewrite enriched_from_arr_postcomp. rewrite z_iso_inv_after_z_iso. rewrite enriched_from_arr_id. refine (_ @ id_right _). rewrite <- (z_iso_inv_after_z_iso (fully_faithful_enriched_functor_z_iso HG (enriched_eso_ff_lift_ob x) (enriched_eso_ff_lift_ob x))). cbn. rewrite !assoc. apply maponpaths_2. rewrite functor_enrichment_id. apply idpath. - intros x y z ; cbn. rewrite !assoc. rewrite functor_enrichment_comp. rewrite !assoc'. rewrite tensor_comp_mor. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite enriched_comp_precomp_arr. rewrite !assoc'. etrans. { apply maponpaths. rewrite !assoc. rewrite enriched_comp_postcomp_arr. apply idpath. } etrans. { rewrite !assoc. rewrite <- tensor_split. rewrite !assoc'. apply idpath. } refine (_ @ id_right _). rewrite <- (z_iso_inv_after_z_iso (fully_faithful_enriched_functor_z_iso HG (enriched_eso_ff_lift_ob x) (enriched_eso_ff_lift_ob z))). rewrite !assoc ; cbn. apply maponpaths_2. rewrite !assoc'. rewrite functor_enrichment_comp. rewrite !assoc. refine (!_). etrans. { apply maponpaths_2. rewrite <- tensor_comp_mor. rewrite !assoc'. rewrite !z_iso_after_z_iso_inv. rewrite !id_right. apply maponpaths_2. rewrite precomp_postcomp_arr. apply idpath. } rewrite tensor_comp_mor. rewrite !assoc'. apply maponpaths. rewrite tensor_split. rewrite !assoc'. rewrite precomp_postcomp_arr_assoc. refine (_ @ id_left _). rewrite !assoc. apply maponpaths_2. rewrite <- tensor_comp_id_l. rewrite <- tensor_id_id. apply maponpaths. rewrite <- postcomp_arr_comp. rewrite <- postcomp_arr_id. apply maponpaths. apply z_iso_after_z_iso_inv. - intros x y f ; cbn. rewrite !assoc. rewrite <- functor_enrichment_from_arr. rewrite enriched_from_arr_precomp. rewrite enriched_from_arr_postcomp. rewrite <- enriched_eso_ff_lift_mor_eq. rewrite (functor_enrichment_from_arr (enriched_functor_enrichment G)). rewrite !assoc'. refine (!(id_right _) @ !_). apply maponpaths. exact (z_iso_inv_after_z_iso (fully_faithful_enriched_functor_z_iso HG (enriched_eso_ff_lift_ob x) (enriched_eso_ff_lift_ob y))). Qed.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.Subcategory.Core. Require Import UniMath.CategoryTheory.Subcategory.Full. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.EnrichedCats.Enrichment. Require Import UniMath.CategoryTheory.EnrichedCats.EnrichmentFunctor. Require Import UniMath.CategoryTheory.EnrichedCats.EnrichmentTransformation. Require Import UniMath.CategoryTheory.EnrichedCats.Examples.ImageEnriched. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.Core.Invertible_2cells. Require Import UniMath.Bicategories.Morphisms.Adjunctions. Require Import UniMath.Bicategories.DisplayedBicats.Examples.EnrichedCats. Require Import UniMath.Bicategories.OrthogonalFactorization.Orthogonality. Require Import UniMath.Bicategories.OrthogonalFactorization.FactorizationSystem.