Library UniMath.Bicategories.ComprehensionCat.Biequivalence.Unit

1. The morphism of the unit

Definition finlim_dfl_comp_cat_unit_mor
           (C : univ_cat_with_finlim)
  : functor_finlim
      (dfl_full_comp_cat_to_finlim (finlim_to_dfl_comp_cat C))
      C.
Proof.
  use make_functor_finlim.
  - apply functor_identity.
  - apply identity_preserves_terminal.
  - apply identity_preserves_pullback.
Defined.

2. The naturality of the unit

3. The laws of the unit

Below, we regularly change the opacity of `comp_psfunctor` to guarantee that this proposition gets type checked in reasonable time.
Proposition finlim_dfl_comp_cat_unit_laws
  : is_pstrans finlim_dfl_comp_cat_unit_data.
Proof.
  refine (_ ,, _ ,, _).
  - refine (λ (C₁ C₂ : univ_cat_with_finlim)
              (F G : functor_finlim C₁ C₂)
              (τ : nat_trans_finlim F G),
            _).
    use nat_trans_finlim_eq.
    intro x ; cbn.
    rewrite id_right, id_left.
    apply idpath.
  - refine (λ (C : univ_cat_with_finlim), _).
    Opaque comp_psfunctor.
    use nat_trans_finlim_eq.
    Transparent comp_psfunctor.
    intro x ; cbn.
    rewrite !id_left.
    apply idpath.
  - refine (λ (C₁ C₂ C₃ : univ_cat_with_finlim)
              (F : functor_finlim C₁ C₂)
              (G : functor_finlim C₂ C₃),
            _).
    Opaque comp_psfunctor.
    use nat_trans_finlim_eq.
    Transparent comp_psfunctor.
    intro x ; cbn.
    rewrite !id_left, !id_right.
    exact (!(functor_id _ _)).
    Opaque comp_psfunctor.
Qed.
Transparent comp_psfunctor.

4. The unit

5. The unit is a pointwise adjoint equivalence