Sheaves #
We define sheaves on a topological space, with values in an arbitrary category.
A presheaf on a topological space X is a sheaf precisely when it is a sheaf under the
Grothendieck topology on opens X, which expands out to say: For each open cover { Uᵢ } of
U, and a family of compatible functions A ⟶ F(Uᵢ) for an A : X, there exists a unique
gluing A ⟶ F(U) compatible with the restriction.
See the docstring of TopCat.Presheaf.IsSheaf for an explanation on the design decisions and a list
of equivalent conditions.
We provide the instance CategoryTheory.Category (TopCat.Sheaf C X) as the full subcategory of
presheaves, and the fully faithful functor Sheaf.forget : TopCat.Sheaf C X ⥤ TopCat.Presheaf C X.
The sheaf condition has several different equivalent formulations.
The official definition chosen here is in terms of Grothendieck topologies so that the results on
sites could be applied here easily, and this condition does not require additional constraints on
the value category.
The equivalent formulations of the sheaf condition on presheaf C X are as follows :
- TopCat.Presheaf.IsSheaf: (the official definition) It is a sheaf with respect to the Grothendieck topology on- opens X, which is to say: For each open cover- { Uᵢ }of- U, and a family of compatible functions- A ⟶ F(Uᵢ)for an- A : X, there exists a unique gluing- A ⟶ F(U)compatible with the restriction.
- TopCat.Presheaf.IsSheafEqualizerProducts: (requires- Cto have all products) For each open cover- { Uᵢ }of- U,- F(U) ⟶ ∏ᶜ F(Uᵢ)is the equalizer of the two morphisms- ∏ᶜ F(Uᵢ) ⟶ ∏ᶜ F(Uᵢ ∩ Uⱼ). See- TopCat.Presheaf.isSheaf_iff_isSheafEqualizerProducts.
- TopCat.Presheaf.IsSheafOpensLeCover: For each open cover- { Uᵢ }of- U,- F(U)is the limit of the diagram consisting of arrows- F(V₁) ⟶ F(V₂)for every pair of open sets- V₁ ⊇ V₂that are contained in some- Uᵢ. See- TopCat.Presheaf.isSheaf_iff_isSheafOpensLeCover.
- TopCat.Presheaf.IsSheafPairwiseIntersections: For each open cover- { Uᵢ }of- U,- F(U)is the limit of the diagram consisting of arrows from- F(Uᵢ)and- F(Uⱼ)to- F(Uᵢ ∩ Uⱼ)for each pair- (i, j). See- TopCat.Presheaf.isSheaf_iff_isSheafPairwiseIntersections.
The following requires C to be concrete and complete, and forget C to reflect isomorphisms and
preserve limits. This applies to most "algebraic" categories, e.g. groups, abelian groups and rings.
- TopCat.Presheaf.IsSheafUniqueGluing: (requires- Cto be concrete and complete;- forget Cto reflect isomorphisms and preserve limits) For each open cover- { Uᵢ }of- U, and a compatible family of elements- x : F(Uᵢ), there exists a unique gluing- x : F(U)that restricts to the given elements. See- TopCat.Presheaf.isSheaf_iff_isSheafUniqueGluing.
- The underlying sheaf of types is a sheaf. See - TopCat.Presheaf.isSheaf_iff_isSheaf_compand- CategoryTheory.Presheaf.isSheaf_iff_isSheaf_forget.
Equations
Instances For
The presheaf valued in Unit over any topological space is a sheaf.
Transfer the sheaf condition across an isomorphism of presheaves.
A TopCat.Sheaf C X is a presheaf of objects from C over a (bundled) topological space X,
satisfying the sheaf condition.
Equations
Instances For
The underlying presheaf of a sheaf
Instances For
Equations
- X.sheafInhabited = { default := { val := CategoryTheory.Functor.star (TopologicalSpace.Opens ↑X)ᵒᵖ, cond := ⋯ } }
The forgetful functor from sheaves to presheaves.