Library UniMath.CategoryTheory.RezkCompletions.Construction

2. The construction of the Rezk completion and the embedding F


Section RezkCompletion.

  Context (A : category).

  Definition Rezk_completion_category : category.
  Show proof.

  Definition Rezk_completion_univalent_category : univalent_category.
  Show proof.

  Definition Rezk_eta : functor A Rezk_completion_univalent_category.
  Show proof.
    apply (functor_full_img (yoneda A)).

  Lemma Rezk_eta_fully_faithful : fully_faithful Rezk_eta.
  Show proof.

  Lemma Rezk_eta_essentially_surjective : essentially_surjective Rezk_eta.
  Show proof.

  Definition Rezk_completion
    : rezk_completion A.
  Show proof.
    use make_rezk_completion.
    - exact Rezk_completion_univalent_category.
    - exact Rezk_eta.
    - exact Rezk_eta_essentially_surjective.
    - exact Rezk_eta_fully_faithful.

  Section UniversalProperty.

    Context (C : category).
    Context (Ccat : is_univalent C).

    Definition Rezk_eta_adj_equiv
      : adj_equivalence_of_cats (pre_composition_functor A Rezk_completion C Rezk_eta)
      := rezk_completion_functor_equivalence _ Rezk_completion _ Ccat.

    Definition Rezk_eta_Universal_Property
      : isweq (pre_composition_functor _ _ C Rezk_eta)
      := rezk_completion_universal_property _ Rezk_completion _ Ccat.

    Definition Rezk_eta_weq
      : [Rezk_completion, C] [A, C]
      := make_weq _ Rezk_eta_Universal_Property.

    Definition Rezk_op_adj_equiv
      : adj_equivalence_of_cats
        (pre_composition_functor A^op Rezk_completion^op C
            (functor_opp Rezk_eta))
      := rezk_completion_opp_functor_equivalence A Rezk_completion _ Ccat.

    Definition Rezk_op_Universal_Property
      : isweq (pre_composition_functor A^op Rezk_completion^op C (functor_opp Rezk_eta))
      := rezk_completion_opp_universal_property _ Rezk_completion _ Ccat.

    Definition Rezk_opp_weq
      : [Rezk_completion^op, C] [A^op, C]
      := make_weq _ Rezk_op_Universal_Property.

  End UniversalProperty.

End RezkCompletion.