mathlibdocumentation

category_theory.sites.canonical

The canonical topology on a category #

We define the finest (largest) Grothendieck topology for which a given presheaf P is a sheaf. This is well defined since if P is a sheaf for a topology J, then it is a sheaf for any coarser (smaller) topology. Nonetheless we define the topology explicitly by specifying its sieves: A sieve S on X is covering for finest_topology_single P iff for any f : Y ⟶ X, P satisfies the sheaf axiom for S.pullback f. Showing that this is a genuine Grothendieck topology (namely that it satisfies the transitivity axiom) forms the bulk of this file.

This generalises to a set of presheaves, giving the topology finest_topology Ps which is the finest topology for which every presheaf in Ps is a sheaf. Using Ps as the set of representable presheaves defines the canonical_topology: the finest topology for which every representable is a sheaf.

A Grothendieck topology is called subcanonical if it is smaller than the canonical topology, equivalently it is subcanonical iff every representable presheaf is a sheaf.

References #

theorem category_theory.sheaf.is_sheaf_for_bind {C : Type u} {X : C} (P : Cᵒᵖ Type v) (U : category_theory.sieve X) (B : Π ⦃Y : C⦄ ⦃f : Y X⦄, U f) (hB : ∀ ⦃Y : C⦄ ⦃f : Y X⦄ (hf : U f), ) (hB' : ∀ ⦃Y : C⦄ ⦃f : Y X⦄ (h : U f) ⦃Z : C⦄ (g : Z Y), ) :

To show P is a sheaf for the binding of U with B, it suffices to show that P is a sheaf for U, that P is a sheaf for each sieve in B, and that it is separated for any pullback of any sieve in B.

This is mostly an auxiliary lemma to show is_sheaf_for_trans. Adapted from [Joh02], Lemma C2.1.7(i) with suggestions as mentioned in https://math.stackexchange.com/a/358709/

theorem category_theory.sheaf.is_sheaf_for_trans {C : Type u} {X : C} (P : Cᵒᵖ Type v) (R S : category_theory.sieve X) (hR' : ∀ ⦃Y : C⦄ ⦃f : Y X⦄, ) (hS : ∀ ⦃Y : C⦄ ⦃f : Y X⦄, ) :

Given two sieves R and S, to show that P is a sheaf for S, we can show:

• P is a sheaf for R
• P is a sheaf for the pullback of S along any arrow in R
• P is separated for the pullback of R along any arrow in S.

This is mostly an auxiliary lemma to construct finest_topology. Adapted from [Joh02], Lemma C2.1.7(ii) with suggestions as mentioned in https://math.stackexchange.com/a/358709

def category_theory.sheaf.finest_topology_single {C : Type u} (P : Cᵒᵖ Type v) :

Construct the finest (largest) Grothendieck topology for which the given presheaf is a sheaf.

This is a special case of https://stacks.math.columbia.edu/tag/00Z9, but following a different proof (see the comments there).

Equations
def category_theory.sheaf.finest_topology {C : Type u} (Ps : set (Cᵒᵖ Type v)) :

Construct the finest (largest) Grothendieck topology for which all the given presheaves are sheaves.

This is equal to the construction of https://stacks.math.columbia.edu/tag/00Z9.

Equations
theorem category_theory.sheaf.sheaf_for_finest_topology {C : Type u} {P : Cᵒᵖ Type v} (Ps : set (Cᵒᵖ Type v)) (h : P Ps) :

Check that if P ∈ Ps, then P is indeed a sheaf for the finest topology on Ps.

theorem category_theory.sheaf.le_finest_topology {C : Type u} (Ps : set (Cᵒᵖ Type v)) (hJ : ∀ (P : Cᵒᵖ Type v), P Ps) :

Check that if each P ∈ Ps is a sheaf for J, then J is a subtopology of finest_topology Ps.

The canonical_topology on a category is the finest (largest) topology for which every representable presheaf is a sheaf.

Equations
theorem category_theory.sheaf.is_sheaf_yoneda_obj {C : Type u} (X : C) :

yoneda.obj X is a sheaf for the canonical topology.

theorem category_theory.sheaf.is_sheaf_of_representable {C : Type u} (P : Cᵒᵖ Type v) [P.representable] :

A representable functor is a sheaf for the canonical topology.

def category_theory.sheaf.subcanonical {C : Type u}  :
Prop

A subcanonical topology is a topology which is smaller than the canonical topology. Equivalently, a topology is subcanonical iff every representable is a sheaf.

Equations
theorem category_theory.sheaf.subcanonical.of_yoneda_is_sheaf {C : Type u} (h : ∀ (X : C), ) :

If every functor yoneda.obj X is a J-sheaf, then J is subcanonical.

If J is subcanonical, then any representable is a J-sheaf.