Library UniMath.Bicategories.PseudoFunctors.Preservation.PullbackPreservation

1. Pullbacks preserve strict biinitial objects
Definition pullback_preserves_biinitial
           (B : bicat_with_pb)
           (HI : strict_biinitial_obj B)
           {b₁ b₂ : B}
           (f : b₁ --> b₂)
  : preserves_biinitial
      (pb_psfunctor B f).
Show proof.
  pose (H := map_to_strict_biinitial_is_biinitial
               (pr2 HI)
               (pb_pr2 f (is_biinitial_1cell_property (pr12 HI) b₂))).
  use (preserves_chosen_biinitial_to_preserve_biinitial
         (_ ,, _)
         (pb_psfunctor B f)).
  - apply biinitial_in_slice.
    exact (pr1 HI ,, pr12 HI).
  - use (equiv_from_biinitial
           (is_biinitial_slice
              (pb_obj f (is_biinitial_1cell_property (pr12 HI) b₂)
               ,,
               H)
              b₁)).
    + use make_1cell_slice.
      * apply id₁.
      * cbn.
        use is_biinitial_invertible_2cell_property.
        exact H.
    + use left_adjoint_equivalence_in_slice_bicat.
      cbn.
      apply internal_adjoint_equivalence_identity.