proposition: Lemma comp_essentially_surjective {C D E : precategory} (F : functor C D) (esF : essentially_surjective F) (G : functor D E) (esG : essentially_surjective G) : essentially_surjective (functor_composite F G).
proof: Proof. unfold essentially_surjective. intros e. apply (squash_to_prop (esG e)); [apply isapropishinh|]; intros isoGe. apply (squash_to_prop (esF (pr1 isoGe))); [apply isapropishinh|]; intros isoFGe. apply hinhpr. exists (pr1 isoFGe); unfold functor_composite; cbn. apply (@z_iso_comp E _ (G (pr1 isoGe))). - apply functor_on_z_iso. exact (pr2 isoFGe). - apply (pr2 isoGe). Defined.
imports: UniMath.Foundations.PartD UniMath.Foundations.Propositions UniMath.Foundations.Sets UniMath.MoreFoundations.PartA UniMath.MoreFoundations.Univalence UniMath.MoreFoundations.Tactics UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Core.TransportMorphisms UniMath.CategoryTheory.Core.Univalence