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.exists_unique_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.sieves 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 ⋯