proposition: Proposition enriched_rezk_completion_ump_functor_isaprop (w : C₁) (i : z_iso (F w) x) : isaprop (∑ (y : C₃), ∑ (φ : ∏ (w : C₁) (i : z_iso (F w) x), z_iso (G w) y), ∏ (w w' : C₁) (i : z_iso (F w) x) (i' : z_iso (F w') x) (k : w --> w') (p : #F k · i' = i), #G k · φ w' i' = φ w i).
proof: Proof. use invproofirrelevance. intros φ₁ φ₂. induction φ₁ as [ y₁ [ φ₁ p₁ ] ]. induction φ₂ as [ y₂ [ φ₂ p₂ ] ]. use total2_paths_f ; cbn. - exact (isotoid _ (univalent_category_is_univalent C₃) (z_iso_comp (z_iso_inv (φ₁ w i)) (φ₂ w i))). - use subtypePath. { intro. repeat (use impred ; intro). apply homset_property. } rewrite pr1_transportf. use funextsec ; intro v. rewrite transportf_sec_constant. use funextsec ; intro j. rewrite transportf_sec_constant. rewrite <- idtoiso_postcompose_iso. rewrite idtoiso_isotoid. use subtypePath. { intro. apply isaprop_is_z_isomorphism. } cbn. pose (k := iso_from_fully_faithful_reflection F_fully_faithful (z_iso_comp j (z_iso_inv i))). assert (# F k · i = j) as q. { etrans. { apply maponpaths_2. apply (homotweqinvweq (weq_from_fully_faithful F_fully_faithful v w)). } cbn. rewrite !assoc'. rewrite z_iso_after_z_iso_inv. apply id_right. } refine (_ @ p₂ v w j i k q). rewrite !assoc. apply maponpaths_2. refine (!_). use z_iso_inv_on_left. refine (!_). apply (p₁ v w j i). exact q. Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Prelude UniMath.CategoryTheory.whiskering UniMath.CategoryTheory.Adjunctions.Core UniMath.CategoryTheory.Equivalences.Core UniMath.CategoryTheory.EnrichedCats.Enrichment UniMath.CategoryTheory.EnrichedCats.EnrichmentFunctor UniMath.CategoryTheory.EnrichedCats.EnrichmentTransformation UniMath.CategoryTheory.EnrichedCats.FullyFaithful UniMath.CategoryTheory.EnrichedCats.Examples.FunctorCategory UniMath.CategoryTheory.EnrichedCats.Examples.Precomposition UniMath.CategoryTheory.Monoidal.Categories