Objects which cover the terminal object
In this file, given a site (C, J), we introduce the notion of a family
of objects Y : I → C which "cover the final object": this means
that for all X : C, the sieve Sieve.ofObjects Y X is covering for J.
When there is a terminal object X : C, then J.CoversTop Y
holds iff Sieve.ofObjects Y X is covering for J.
We introduce a notion of compatible family of elements on objects Y
and obtain Presheaf.FamilyOfElementsOnObjects.IsCompatible.existsUnique_section
which asserts that if a presheaf of types is a sheaf, then any compatible
family of elements on objects Y which cover the final object extends as
a section of this presheaf.
A family of objects Y : I → C "covers the final object"
if for all X : C, the sieve ofObjects Y X is a covering sieve.
Equations
- J.CoversTop Y = ∀ (X : C), CategoryTheory.Sieve.ofObjects Y X ∈ J X
Instances For
The cover of any object W : C attached to a family of objects Y that satisfy
J.CoversTop Y
Equations
- hY.cover W = ⟨CategoryTheory.Sieve.ofObjects Y W, ⋯⟩
Instances For
A family of elements of a presheaf of types F indexed by a family of objects
Y : I → C consists of the data of an element in F.obj (Opposite.op (Y i)) for all i.
Equations
- CategoryTheory.Presheaf.FamilyOfElementsOnObjects F Y = ((i : I) → F.obj (Opposite.op (Y i)))
Instances For
x : FamilyOfElementsOnObjects F Y is compatible if for any object Z such that
there exists a morphism f : Z → Y i, then the pullback of x i by f is independent
of f and i.
Equations
Instances For
A family of elements indexed by Sieve.ofObjects Y X that is induced by
x : FamilyOfElementsOnObjects F Y. See the equational lemma
IsCompatible.familyOfElements_apply which holds under the assumption x.IsCompatible.
Equations
- x.familyOfElements X x✝ hf = F.map ⋯.some.op (x (Exists.choose hf))
Instances For
The section of a sheaf of types which lifts a compatible family of elements indexed by objects which cover the terminal object.
Equations
- hx.section_ hY hF = Exists.choose ⋯