Documentation

Mathlib.CategoryTheory.Sites.PrecoverageToGrothendieck

Grothendieck topology generated by a precoverage #

For any category C, we define the Grothendieck topology generated by a precoverage J on C. It is the smallest Grothendieck topology containing all the sieves generated by the covering presieves of J.

The main definitions and theorems are:

inductive CategoryTheory.Precoverage.Saturate {C : Type u_1} [Category.{u_2, u_1} C] (J : Precoverage C) (X : C) :
Sieve XProp

An auxiliary definition used to define the Grothendieck topology associated to a precoverage. See Precoverage.toGrothendieck.

Instances For

    The Grothendieck topology associated to a precoverage J. It is defined inductively as follows:

    1. If S is a covering presieve for J, then the sieve generated by S is a covering sieve for the associated Grothendieck topology.
    2. The top sieves are in the associated Grothendieck topology.
    3. Add all sieves required by the pullback stability condition of a Grothendieck topology.
    4. Add all sieves required by the local character axiom of a Grothendieck topology.
    Equations
    Instances For

      An alternative characterization of the Grothendieck topology associated to a precoverage J: it is the infimum of all Grothendieck topologies containing Sieve.generate S for all presieves S in J.

      The main theorem of this file: given a precoverage J on C, a Type*-valued presheaf on C is a sheaf for the associated Grothendieck topology if and only if it is a sheaf for all pullback sieves of presieves in J.

      theorem CategoryTheory.Presieve.isSheafFor_ofArrows_comp_iff {C : Type u_4} [Category.{u_3, u_4} C] {F : Functor Cᵒᵖ (Type u_1)} {X : C} {ι : Type u_2} {Y Z : ιC} (g : (i : ι) → Z i X) (e : (i : ι) → Y i Z i) :
      IsSheafFor F (ofArrows Y fun (i : ι) => CategoryStruct.comp (e i).hom (g i)) IsSheafFor F (ofArrows Z g)
      theorem CategoryTheory.Presieve.isSheafFor_singleton_iff_of_iso {C : Type u_3} [Category.{u_2, u_3} C] {F : Functor Cᵒᵖ (Type u_1)} {S X Y : C} (f : X S) (g : Y S) (e : X Y) (he : CategoryStruct.comp e.hom g = f) :