# Documentation

Mathlib.Topology.Sheaves.SheafCondition.Sites

# Coverings and sieves; from sheaves on sites and sheaves on spaces #

In this file, we connect coverings in a topological space to sieves in the associated Grothendieck topology, in preparation of connecting the sheaf condition on sites to the various sheaf conditions on spaces.

We also specialize results about sheaves on sites to sheaves on spaces; we show that the inclusion functor from a topological basis to TopologicalSpace.Opens is CoverDense, that open maps induce CoverPreserving functors, and that open embeddings induce CompatiblePreserving functors.

def TopCat.Presheaf.coveringOfPresieve {X : TopCat} (U : ) (R : ) :
(V : ) × { f // R V f }

Given a presieve R on U, we obtain a covering family of open sets in X, by taking as index type the type of dependent pairs (V, f), where f : V ⟶ U is in R.

Instances For
@[simp]
theorem TopCat.Presheaf.coveringOfPresieve_apply {X : TopCat} (U : ) (R : ) (f : (V : ) × { f // R V f }) :
= f.fst

If R is a presieve in the grothendieck topology on Opens X, the covering family associated to R really is covering, i.e. the union of all open sets equals U.

def TopCat.Presheaf.presieveOfCoveringAux {X : TopCat} {ι : Type v} (U : ) (Y : ) :

Given a family of opens U : ι → Opens X and any open Y : Opens X, we obtain a presieve on Y by declaring that a morphism f : V ⟶ Y is a member of the presieve if and only if there exists an index i : ι such that V = U i.

Instances For
def TopCat.Presheaf.presieveOfCovering {X : TopCat} {ι : Type v} (U : ) :

Take Y to be iSup U and obtain a presieve over iSup U.

Instances For
@[simp]

Given a presieve R on Y, if we take its associated family of opens via coveringOfPresieve (which may not cover Y if R is not covering), and take the presieve on Y associated to the family of opens via presieveOfCoveringAux, then we get back the original presieve R.

The sieve generated by presieveOfCovering U is a member of the grothendieck topology.

def TopCat.Presheaf.presieveOfCovering.homOfIndex {X : TopCat} {ι : Type v} (U : ) (i : ι) :
(V : ) × { f // }

An index i : ι can be turned into a dependent pair (V, f), where V is an open set and f : V ⟶ iSup U is a member of presieveOfCovering U f.

Instances For
def TopCat.Presheaf.presieveOfCovering.indexOfHom {X : TopCat} {ι : Type v} (U : ) (f : (V : ) × { f // }) :
ι

By using the axiom of choice, a dependent pair (V, f) where f : V ⟶ iSup U is a member of presieveOfCovering U f can be turned into an index i : ι, such that V = U i.

Instances For
theorem TopCat.Presheaf.presieveOfCovering.indexOfHom_spec {X : TopCat} {ι : Type v} (U : ) (f : (V : ) × { f // }) :
f.fst =
theorem TopCat.Opens.coverDense_iff_isBasis {X : TopCat} {ι : Type u_1} [] (B : ) :
theorem TopCat.Opens.coverDense_inducedFunctor {X : TopCat} {ι : Type u_1} {B : } (h : ) :
theorem OpenEmbedding.compatiblePreserving {X : TopCat} {Y : TopCat} {f : X Y} (hf : ) :
theorem IsOpenMap.coverPreserving {X : TopCat} {Y : TopCat} {f : X Y} (hf : ) :

The empty component of a sheaf is terminal.

Instances For
def TopCat.Sheaf.isTerminalOfEqEmpty {C : Type u} {X : TopCat} (F : ) {U : } (h : U = ) :

A variant of isTerminalOfEmpty that is easier to apply.

Instances For
def TopCat.Sheaf.restrictHomEquivHom {C : Type u} {X : TopCat} {ι : Type u_1} {B : } (F : ) (F' : ) (h : ) :
() (F F'.val)

If a family B of open sets forms a basis of the topology on X, and if F' is a sheaf on X, then a homomorphism between a presheaf F on X and F' is equivalent to a homomorphism between their restrictions to the indexing type ι of B, with the induced category structure on ι.

Instances For
@[simp]
theorem TopCat.Sheaf.extend_hom_app {C : Type u} {X : TopCat} {ι : Type u_1} {B : } (F : ) (F' : ) (h : ) (α : ) (i : ι) :
(↑() α).app (Opposite.op (B i)) = α.app ()
theorem TopCat.Sheaf.hom_ext {C : Type u} {X : TopCat} {ι : Type u_1} {B : } (F : ) (F' : ) (h : ) {α : F F'.val} {β : F F'.val} (he : ∀ (i : ι), α.app (Opposite.op (B i)) = β.app (Opposite.op (B i))) :
α = β