The equalizer diagram sheaf condition for a presieve #
In Mathlib/CategoryTheory/Sites/IsSheafFor.lean
it is defined what it means for a presheaf to be a
sheaf for a particular presieve. In this file we provide equivalent conditions in terms of
equalizer diagrams.
In
Equalizer.Presieve.sheaf_condition
, the sheaf condition at a presieve is shown to be equivalent to that of https://stacks.math.columbia.edu/tag/00VM (and combined withisSheaf_pretopology
, this shows the notions ofIsSheaf
are exactly equivalent.)In
Equalizer.Sieve.equalizer_sheaf_condition
, the sheaf condition at a sieve is shown to be equivalent to that of Equation (3) p. 122 in Maclane-Moerdijk [MLM92].
References #
- [MLM92]: Sheaves in geometry and logic, Saunders MacLane, and Ieke Moerdijk: Chapter III, Section 4.
- https://stacks.math.columbia.edu/tag/00VL (sheaves on a pretopology or site)
The middle object of the fork diagram given in Equation (3) of [MLM92], as well as the fork diagram of https://stacks.math.columbia.edu/tag/00VM.
Equations
- CategoryTheory.Equalizer.FirstObj P R = ∏ᶜ fun (f : (Y : C) × { f : Y ⟶ X // R f }) => P.obj (Opposite.op f.fst)
Instances For
Show that FirstObj
is isomorphic to FamilyOfElements
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.Equalizer.instInhabitedFirstObjBotPresieve P = (CategoryTheory.Equalizer.firstObjEqFamily P ⊥).toEquiv.inhabited
Equations
- CategoryTheory.Equalizer.instInhabitedFirstObjArrowsBotSieve P = inferInstance
The left morphism of the fork diagram given in Equation (3) of [MLM92], as well as the fork diagram of https://stacks.math.columbia.edu/tag/00VM.
Equations
- CategoryTheory.Equalizer.forkMap P R = CategoryTheory.Limits.Pi.lift fun (f : (Y : C) × { f : Y ⟶ X // R f }) => P.map (↑f.snd).op
Instances For
This section establishes the equivalence between the sheaf condition of Equation (3) [MLM92] and
the definition of IsSheafFor
.
The rightmost object of the fork diagram of Equation (3) [MLM92], which contains the data used to check a family is compatible.
Equations
- CategoryTheory.Equalizer.Sieve.SecondObj P S = ∏ᶜ fun (f : (Y : C) × (Z : C) × (_ : Z ⟶ Y) × { f' : Y ⟶ X // S.arrows f' }) => P.obj (Opposite.op f.snd.fst)
Instances For
The map p
of Equations (3,4) [MLM92].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.Equalizer.Sieve.instInhabitedSecondObjBotSieve P = { default := CategoryTheory.Equalizer.Sieve.firstMap P ⊥ default }
The map a
of Equations (3,4) [MLM92].
Equations
- One or more equations did not get rendered due to their size.
Instances For
The family of elements given by x : FirstObj P S
is compatible iff firstMap
and secondMap
map it to the same point.
P
is a sheaf for S
, iff the fork given by w
is an equalizer.
This section establishes the equivalence between the sheaf condition of
https://stacks.math.columbia.edu/tag/00VM and the definition of isSheafFor
.
The rightmost object of the fork diagram of https://stacks.math.columbia.edu/tag/00VM, which contains the data used to check a family of elements for a presieve is compatible.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The map pr₀*
of https://stacks.math.columbia.edu/tag/00VL.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.Equalizer.Presieve.instInhabitedSecondObjBotPresieve P = { default := CategoryTheory.Equalizer.Presieve.firstMap P ⊥ default }
The map pr₁*
of https://stacks.math.columbia.edu/tag/00VL.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The family of elements given by x : FirstObj P S
is compatible iff firstMap
and secondMap
map it to the same point.
P
is a sheaf for R
, iff the fork given by w
is an equalizer.
See https://stacks.math.columbia.edu/tag/00VM.
The middle object of the fork diagram of https://stacks.math.columbia.edu/tag/00VM.
The difference between this and Equalizer.FirstObj P (ofArrows X π)
arrises if the family of
arrows π
contains duplicates. The Presieve.ofArrows
doesn't see those.
Equations
- CategoryTheory.Equalizer.Presieve.Arrows.FirstObj P X = ∏ᶜ fun (i : I) => P.obj (Opposite.op (X i))
Instances For
The rightmost object of the fork diagram of https://stacks.math.columbia.edu/tag/00VM.
The difference between this and Equalizer.Presieve.SecondObj P (ofArrows X π)
arrises if the
family of arrows π
contains duplicates. The Presieve.ofArrows
doesn't see those.
Equations
- CategoryTheory.Equalizer.Presieve.Arrows.SecondObj P X π = ∏ᶜ fun (ij : I × I) => P.obj (Opposite.op (CategoryTheory.Limits.pullback (π ij.1) (π ij.2)))
Instances For
The left morphism of the fork diagram.
Equations
- CategoryTheory.Equalizer.Presieve.Arrows.forkMap P X π = CategoryTheory.Limits.Pi.lift fun (i : I) => P.map (π i).op
Instances For
The first of the two parallel morphisms of the fork diagram, induced by the first projection in each pullback.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The second of the two parallel morphisms of the fork diagram, induced by the second projection in each pullback.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The family of elements given by x : FirstObj P S
is compatible iff firstMap
and secondMap
map it to the same point.
P
is a sheaf for Presieve.ofArrows X π
, iff the fork given by w
is an equalizer.
See https://stacks.math.columbia.edu/tag/00VM.