Subobject classifiers in categories of sheaves #
In this file we construct a subobject classifier in the category of sheaves of types on any site, as the sheaf that sends every object to the set of closed sieves on it. See https://ncatlab.org/nlab/show/subobject+classifier#in_a_sheaf_topos.
For Grothendieck topologies J ≤ K we also construct comparison maps between the corresponding
subobject classifiers, both viewed as J-sheaves.
Main definitions / results #
ClosedSieve J X: the type ofJ-closed sieves onXJ.Ω: theJ-sheaf sending eachXto the type ofJ-closed sieves onXJ.classifier: the data makingJ.Ωinto a subobject classifierJ.Ω' h:K.Ωas aJ-sheaf forh : J ≤ KJ.ΩInclusionOfLE h: the inclusionJ.Ω' h ⟶ J.Ωforh : J ≤ KJ.ΩProjectionOfLE h: the projectionJ.Ω ⟶ J.Ω' hforh : J ≤ K
A sieve is called J-closed if it contains every morphism along which it pulls back to a
J-covering sieve, i.e. if it contains every morphism it covers.
Equations
- CategoryTheory.Sieve.IsClosed J S = ∀ (Y : C) (f : Y ⟶ X), CategoryTheory.Sieve.pullback f S ∈ J Y → S.arrows f
Instances For
A sieve on X that is J-closed in the sense of Sieve.IsClosed, i.e. that contains every
morphism along which it pulls back to a J-covering sieve.
- downward_closed {Y Z : C} {f : Y ⟶ X} : self.arrows f → ∀ (g : Z ⟶ Y), self.arrows (CategoryStruct.comp g f)
- isClosed : Sieve.IsClosed J self.toSieve
Instances For
The smallest J-closed sieve containing a given sieve S : Sieve X, given by all morphisms
f : Y ⟶ X along which S pulls back to a covering sieve, i.e. "all morphisms that S covers".
Equations
- CategoryTheory.ClosedSieve.generate J S = { arrows := fun (Y : C) (f : Y ⟶ X) => CategoryTheory.Sieve.pullback f S ∈ J Y, downward_closed := ⋯, isClosed := ⋯ }
Instances For
The Galois insertion given by ClosedSieve.generate : Sieve X → ClosedSieve J X.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.ClosedSieve.pullback f S = { toSieve := CategoryTheory.Sieve.pullback f S.toSieve, isClosed := ⋯ }
Instances For
The inclusion of K-closed sieves into J-closed sieves for J ≤ K.
Equations
- CategoryTheory.ClosedSieve.inclusionOfLE h S = { toSieve := S.toSieve, isClosed := ⋯ }
Instances For
The K-closed sieve generated by the sieve underlying a J-closed sieve. For J ≤ K, this
is left adjoint to inclusionOfLE : ClosedSieve K X → ClosedSieve J X.
Equations
Instances For
The galois insertion given by inclusionOfLE h : ClosedSieve K X → ClosedSieve J X.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A specific choice of subobject classifier in the sheaf topos Sheaf J (Type max u v): the
sheaf that associates to each X : C the type of all J-closed sieves on X. The data that
makes this a subobject classifier can be found in GrothendieckTopology.classifier.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Evaluating a terminal functor yields terminal objects. TODO: move somewhere else
Equations
- hF.isTerminalObj_functor X = CategoryTheory.Limits.IsTerminal.isTerminalObj ((CategoryTheory.evaluation C D).obj X) F hF
Instances For
A terminal sheaf is also terminal as a presheaf.
Equations
Instances For
Sections of a terminal sheaf are terminal objects.
Equations
Instances For
For sheaves valued in a concrete category whose terminal object is a point, sections of the terminal sheaf are unique.
Equations
- One or more equations did not get rendered due to their size.
Terminal types are singletons.
Equations
Instances For
Sections of the terminal sheaf are unique.
A specific choice of subobject classifier in the sheaf topos Sheaf J (Type max u v), given
by J.Ω and the morphism ⊤_ C ⟶ J.Ω that picks the maximal sieve on each object.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The subobject classifier sheaf K.Ω : Sheaf K (Type max u v) as a J-sheaf for J ≤ K.
Instances For
The inclusion of J.Ω' h, the subobject classifier of K-sheaves viewed as a J-sheaf,
into J.Ω, the subobject classifier of J-sheaves. In components this is simply the inclusion of
K-closed sieves into J-closed sieves.
Equations
- CategoryTheory.GrothendieckTopology.ΩInclusionOfLE h = { val := { app := fun (X : Cᵒᵖ) => CategoryTheory.ClosedSieve.inclusionOfLE h, naturality := ⋯ } }
Instances For
The projection of J.Ω, the subobject classifier of J-sheaves, onto J.Ω' h, the subobject
classifier of K-sheaves viewed as a J-sheaf. In components this generates K-closed sieves from
J-closed sieves.
Equations
- CategoryTheory.GrothendieckTopology.ΩProjectionOfLE h = { val := { app := fun (X : Cᵒᵖ) => CategoryTheory.ClosedSieve.toClosedSieve K, naturality := ⋯ } }