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.
Coverage C: The type of coverages onC.Coverage.ofGrothendieck C: A function which associates a coverage to any Grothendieck topology.Coverage.toGrothendieck C: A function which associates a Grothendieck topology to any coverage.Coverage.gi: The two functions above form a Galois insertion.Presieve.isSheaf_coverage: GivenK : Coverage Cwith associated Grothendieck topologyJ, aType*-valued presheaf onCis a sheaf forKif and only if it is a sheaf forJ.
References #
We don't follow any particular reference, but the arguments can probably be distilled from the following sources:
- [Elephant]: Sketches of an Elephant, P. T. Johnstone: C2.1.
- nLab, Coverage
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
- S.FactorsThruAlong T f = ∀ ⦃Z : C⦄ ⦃g : Z ⟶ Y⦄, S g → ∃ (W : C) (i : Z ⟶ W) (e : W ⟶ X), T e ∧ CategoryTheory.CategoryStruct.comp i e = CategoryTheory.CategoryStruct.comp g f
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
- S.FactorsThru T = ∀ ⦃Z : C⦄ ⦃g : Z ⟶ X⦄, S g → ∃ (W : C) (i : Z ⟶ W) (e : W ⟶ X), T e ∧ CategoryTheory.CategoryStruct.comp i e = g
Instances For
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.
The collection of covering presieves for an object
X.- pullback ⦃X Y : C⦄ (f : Y ⟶ X) (S : Presieve X) : S ∈ self.covering X → ∃ T ∈ self.covering Y, T.FactorsThruAlong S f
Given any covering sieve
SonXand a morphismf : Y ⟶ X, there exists some covering sieveTonYsuch thatTfactors throughSalongf.
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
- CategoryTheory.Coverage.ofGrothendieck C J = { covering := fun (X : C) => {S : CategoryTheory.Presieve X | CategoryTheory.Sieve.generate S ∈ J X}, pullback := ⋯ }
Instances For
An auxiliary definition used to define the Grothendieck topology associated to a
coverage. See Coverage.toGrothendieck.
- of {C : Type u_1} [Category.{u_2, u_1} C] {K : Coverage C} (X : C) (S : Presieve X) (hS : S ∈ K.covering X) : K.Saturate X (Sieve.generate S)
- top {C : Type u_1} [Category.{u_2, u_1} C] {K : Coverage C} (X : C) : K.Saturate X ⊤
- transitive {C : Type u_1} [Category.{u_2, u_1} C] {K : Coverage C} (X : C) (R S : Sieve X) : K.Saturate X R → (∀ ⦃Y : C⦄ ⦃f : Y ⟶ X⦄, R.arrows f → K.Saturate Y (Sieve.pullback f S)) → K.Saturate X S
Instances For
The Grothendieck topology associated to a coverage K.
It is defined inductively as follows:
- If
Sis a covering presieve forK, then the sieve generated bySis a covering sieve for the associated Grothendieck topology. - The top sieves are in the associated Grothendieck topology.
- 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
- CategoryTheory.Coverage.toGrothendieck C K = { sieves := K.Saturate, top_mem' := ⋯, pullback_stable' := ⋯, transitive' := ⋯ }
Instances For
Equations
- CategoryTheory.Coverage.instPartialOrder = { le := fun (A B : CategoryTheory.Coverage C) => A.covering ≤ B.covering, le_refl := ⋯, le_trans := ⋯, lt_iff_le_not_ge := ⋯, le_antisymm := ⋯ }
The two constructions Coverage.toGrothendieck and Coverage.ofGrothendieck form
a Galois insertion.
Equations
- One or more equations did not get rendered due to their size.
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.
Equations
- One or more equations did not get rendered due to their size.
Any sieve that contains a covering presieve for a coverage is a covering sieve for the associated Grothendieck topology.
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.