Documentation

Mathlib.CategoryTheory.Sites.Coverage

Coverages #

A coverage K on a category C is a set of presieves associated to every object X : C, called "covering presieves". This collection must satisfy a certain "pullback compatibility" condition, saying that whenever S is a covering presieve on X and f : Y ⟢ X is a morphism, then there exists some covering sieve T on Y such that T factors through S along f.

The main difference between a coverage and a Grothendieck pretopology is that we do not require C to have pullbacks. This is useful, for example, when we want to consider the Grothendieck topology on the category of extremally disconnected sets in the context of condensed mathematics.

A more concrete example: If ℬ is a basis for a topology on a type X (in the sense of TopologicalSpace.IsTopologicalBasis) then it naturally induces a coverage on Opens X whose associated Grothendieck topology is the one induced by the topology on X generated by ℬ. (Project: Formalize this!)

Main Definitions and Results: #

All definitions are in the CategoryTheory namespace.

References #

We don't follow any particular reference, but the arguments can probably be distilled from the following sources:

def CategoryTheory.Presieve.FactorsThruAlong {C : Type u_1} [Category.{v_1, u_1} C] {X Y : C} (S : Presieve Y) (T : Presieve X) (f : Y ⟢ X) :

Given a morphism f : Y ⟢ X, a presieve S on Y and presieve T on X, we say that S factors through T along f, written S.FactorsThruAlong T f, provided that for any morphism g : Z ⟢ Y in S, there exists some morphism e : W ⟢ X in T and some morphism i : Z ⟢ W such that the obvious square commutes: i ≫ e = g ≫ f.

This is used in the definition of a coverage.

Equations
    Instances For

      Given S T : Presieve X, we say that S factors through T if any morphism in S factors through some morphism in T.

      The lemma Presieve.isSheafFor_of_factorsThru gives a sufficient condition for a presheaf to be a sheaf for a presieve T, in terms of S.FactorsThru T, provided that the presheaf is a sheaf for S.

      Equations
        Instances For
          theorem CategoryTheory.Presieve.isSheafFor_of_factorsThru {C : Type u_2} [Category.{v_1, u_2} C] {X : C} {S T : Presieve X} (P : Functor Cα΅’α΅– (Type u_1)) (H : S.FactorsThru T) (hS : IsSheafFor P S) (h : βˆ€ ⦃Y : C⦄ ⦃f : Y ⟢ X⦄, T f β†’ βˆƒ (R : Presieve Y), IsSeparatedFor P R ∧ R.FactorsThruAlong S f) :
          structure CategoryTheory.Coverage (C : Type u_1) [Category.{v_1, u_1} C] extends CategoryTheory.Precoverage C :
          Type (max u_1 v_1)

          The type Coverage C of coverages on C. A coverage is a collection of covering presieves on every object X : C, which satisfies a pullback compatibility condition. Explicitly, this condition says that whenever S is a covering presieve for X and f : Y ⟢ X is a morphism, then there exists some covering presieve T for Y such that T factors through S along f.

          Instances For
            theorem CategoryTheory.Coverage.ext {C : Type u_1} {inst✝ : Category.{v_1, u_1} C} {x y : Coverage C} (coverings : x.coverings = y.coverings) :
            x = y
            @[deprecated CategoryTheory.Precoverage.coverings (since := "2025-08-28")]

            Alias of CategoryTheory.Precoverage.coverings.

            Equations
              Instances For

                Associate a coverage to any Grothendieck topology. If J is a Grothendieck topology, and K is the associated coverage, then a presieve S is a covering presieve for K if and only if the sieve that it generates is a covering sieve for J.

                Equations
                  Instances For
                    @[deprecated CategoryTheory.GrothendieckTopology.toCoverage (since := "2025-09-19")]

                    Alias of CategoryTheory.GrothendieckTopology.toCoverage.


                    Associate a coverage to any Grothendieck topology. If J is a Grothendieck topology, and K is the associated coverage, then a presieve S is a covering presieve for K if and only if the sieve that it generates is a covering sieve for J.

                    Equations
                      Instances For
                        @[deprecated CategoryTheory.GrothendieckTopology.mem_toCoverage_iff (since := "2025-09-19")]

                        Alias of CategoryTheory.GrothendieckTopology.mem_toCoverage_iff.

                        inductive CategoryTheory.Coverage.Saturate {C : Type u_1} [Category.{v_1, u_1} C] (K : Coverage C) (X : C) :
                        Sieve X β†’ Prop

                        An auxiliary definition used to define the Grothendieck topology associated to a coverage. See Coverage.toGrothendieck.

                        Instances For
                          theorem CategoryTheory.Coverage.eq_top_pullback {C : Type u_1} [Category.{v_1, u_1} C] {X Y : C} {S T : Sieve X} (h : S ≀ T) (f : Y ⟢ X) (hf : S.arrows f) :
                          theorem CategoryTheory.Coverage.saturate_of_superset {C : Type u_1} [Category.{v_1, u_1} C] (K : Coverage C) {X : C} {S T : Sieve X} (h : S ≀ T) (hS : K.Saturate X S) :
                          K.Saturate X T
                          theorem CategoryTheory.Coverage.Saturate.pullback {C : Type u_1} [Category.{v_1, u_1} C] (K : Coverage C) {X Y : C} (f : Y ⟢ X) {S : Sieve X} (h : K.Saturate X S) :

                          The Grothendieck topology associated to a coverage K. It is defined inductively as follows:

                          1. If S is a covering presieve for K, 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 local character axiom of a Grothendieck topology.

                          The pullback compatibility condition for a coverage ensures that the associated Grothendieck topology is pullback stable, and so an additional constructor in the inductive construction is not needed.

                          Equations
                            Instances For

                              An alternative characterization of the Grothendieck topology associated to a coverage K: it is the infimum of all Grothendieck topologies whose associated coverage contains K.

                              Any sieve that contains a covering presieve for a coverage is a covering sieve for the associated Grothendieck topology.

                              Any pretopology is a coverage.

                              Equations
                                Instances For

                                  A precoverage with pullbacks defines a coverage.

                                  Equations
                                    Instances For

                                      The induced coverage by a Grothendieck topology as a precoverage.

                                      Equations
                                        Instances For
                                          theorem CategoryTheory.Presieve.isSheaf_coverage {C : Type u_2} [Category.{v_1, u_2} C] (K : Coverage C) (P : Functor Cα΅’α΅– (Type u_1)) :
                                          IsSheaf K.toGrothendieck P ↔ βˆ€ {X : C}, βˆ€ R ∈ K.coverings X, IsSheafFor P R

                                          The main theorem of this file: Given a coverage K on C, a Type*-valued presheaf on C is a sheaf for K if and only if it is a sheaf for the associated Grothendieck topology.

                                          A presheaf is a sheaf for the Grothendieck topology generated by a union of coverages iff it is a sheaf for the Grothendieck topology generated by each coverage separately.