Library UniMath.CategoryTheory.GrothendieckToposes.Toposes

1. The property of being a Grothendieck topos

2. Grothendieck toposes

3. The recursion and induction principles


Lemma Grothendieck_topos_rect
  (P : category UU)
  (HP : (D : site), P (sheaf_cat D))
  {C : category}
  (HU : is_univalent C)
  (HT : Grothendieck_topos_structure C)
  : P C.
Proof.
  refine (transportf P _ (HP (Grothendieck_topos_structure_site HT))).
  apply (invmap (catiso_is_path_cat _ _)).
  use (adj_equivalence_of_cats_to_cat_iso (adj_equivalence_of_cats_inv _ (Grothendieck_topos_structure_equiv HT))).
  - apply sheaf_cat_univalent.
  - apply HU.
Qed.

Lemma Grothendieck_topos_ind
  (P : category hProp)
  (HP : (D : site), P (sheaf_cat D))
  {C : category}
  (HU : is_univalent C)
  (HT : is_Grothendieck_topos C)
  : P C.
Proof.
  revert HT.
  apply hinhuniv.
  exact (Grothendieck_topos_rect P HP HU).
Qed.