Concrete sites #
Concrete sites are concrete categories whose forgetful functor is corepresented by a terminal object, equipped with a Grothendieck topology consisting only of jointly surjective sieves. See https://ncatlab.org/nlab/show/concrete+site.
Also see https://arxiv.org/abs/0807.1704; note that while that article requires concrete sites to be subcanonical, we don't require that here.
Main definitions / results: #
Presieve.IsJointlySurjective
: property stating that a presieve in a concrete category is jointly surjectiveIsConcreteSite
: typeclass giving a site the structure of a concrete siteIsConcreteSite.isLocalSite
: every concrete site is also a local siteIsConcreteSite.isSeparated_of_isRepresentable
: every representable presheaf on a concrete site is separated. In particular, to show that a concrete site is subcanonical it suffices to show the existence part of the sheaf condition for representable sheaves.
There is also some material on concrete sheaves, but they should probably be redefined in terms of local sites / biseparated sheaves before being expanded upon.
TODOs #
- switch from
HasForget
to the newConcreteCategory
API - maybe split out concrete categories where points correspond to morphisms from a terminal object into a separate definition / file
A presieve S
on X
in a concrete category is jointly surjective if every x : X
is in
the image of some f
in S
.
Equations
- S.IsJointlySurjective = ∀ (x : (CategoryTheory.forget C).obj X), ∃ (Y : C), ∃ f ∈ S, ∃ (y : (CategoryTheory.forget C).obj Y), f y = x
Instances For
A site is concrete if it is a concrete category in such a way that points correspond to morphisms from a terminal object, and all sieves are jointly surjective.
The forgetful functor is given by morphisms from the terminal object. Since a forgetful functor might already exists, this is encoded here as a natural isomorphism.
- forgetNatIsoCoyoneda_apply {X : C} {x : (forget C).obj X} : ⇑(forgetNatIsoCoyoneda.hom.app X x) = fun (x_1 : (forget C).obj (⊤_ C)) => x
Said isomorphism takes
x : X
to a morphism with underlying mapfun _ ↦ x
. All covering sieves are jointly surjective.
Instances
The terminal object of a concrete site has exactly one point.
Every concrete site is also a local site.
On concrete sites, covering sieves contain all morphisms from the terminal object.
The property of being separated for some presieve is preserved under isomorphisms. TODO: upstream to mathlib.
The property of being separated is preserved under isomorphisms. TODO: upstream to mathlib.
Every representable presheaf on a concrete site is, while not necessarily a sheaf, at least separated.
Equations
- CategoryTheory.Presheaf.IsConcrete J P = ∀ (X : C), Function.Injective fun (p : P.obj (Opposite.op X)) (f : ⊤_ C ⟶ X) => P.map f.op p
Instances For
The category of concrete sheaves.
- cond : Presheaf.IsSheaf J self.val
- concrete : Presheaf.IsConcrete J self.val
Instances For
Morphisms of concrete sheaves are simply morphisms of sheaves.
The forgetful functor from concrete sheaves to sheaves.