Sieves #
For an object X of a category C, a sieve on X is a presieve on X, i.e. a predicate on
morphisms with codomain X, with the additional property of being closed under precomposition.
Thus a sieve records a collection of arrows into X that is stable under passing to further
refinements.
This file develops the basic theory of sieves. It gives Sieve X its complete lattice structure
and defines Sieve.generate, the smallest sieve containing a presieve. Generation and the
underlying-arrow presieve form a Galois insertion. The file also constructs sieves from indexed
families of arrows or objects, and defines pullback and pushforward along a fixed morphism together
with their Galois connection.
Operations induced by functors between categories are developed in
Mathlib.CategoryTheory.Sites.Sieves.Functoriality, while the presheaf associated to a sieve is
developed in Mathlib.CategoryTheory.Sites.Sieves.Presheaf.
Tags #
sieve, pullback
For an object X of a category C, a Sieve X is a predicate on morphisms to X which is closed
under left-composition.
- arrows : Presieve X
the underlying presieve
- downward_closed {Y Z : C} {f : Y ⟶ X} : self.arrows f → ∀ (g : Z ⟶ Y), self.arrows (CategoryStruct.comp g f)
stability by precomposition
Instances For
Equations
The supremum of a collection of sieves: the union of them all.
Equations
Instances For
The infimum of a collection of sieves: the intersection of them all.
Equations
Instances For
Sieves on an object X form a complete lattice.
We generate this directly rather than using the Galois insertion for nicer definitional properties.
Equations
- One or more equations did not get rendered due to their size.
The maximal sieve always exists.
Equations
- CategoryTheory.Sieve.sieveInhabited = { default := ⊤ }
Generate the smallest sieve containing the given presieve.
Equations
- CategoryTheory.Sieve.generate R = { arrows := fun (Z : C) (f : Z ⟶ X) => ∃ (Y : C) (h : Z ⟶ Y) (g : Y ⟶ X), R g ∧ CategoryTheory.CategoryStruct.comp h g = f, downward_closed := ⋯ }
Instances For
Given a presieve on X, and a sieve on each domain of an arrow in the presieve, we can bind to
produce a sieve on X.
Equations
Instances For
Structure which contains the data and properties for a morphism h satisfying
Sieve.bind S R h.
Equations
- CategoryTheory.Sieve.BindStruct S R h = S.BindStruct (fun (x : C) (x_1 : x ⟶ X) (hf : S x_1) => (R hf).arrows) h
Instances For
Show that there is a Galois insertion (generate, underlying presieve).
Equations
- One or more equations did not get rendered due to their size.
Instances For
If the identity arrow is in a sieve, the sieve is maximal.
If a presieve contains a split epi, it generates the maximal sieve.
The sieve of X generated by family of morphisms Y i ⟶ X.
Equations
Instances For
When hg : Sieve.ofArrows Y f g, this is a choice of i such that g
factors through f i.
Equations
Instances For
When hg : Sieve.ofArrows Y f g, this is a morphism h : W ⟶ Y (i hg) such
that h ≫ f (i hg) = g.
Equations
Instances For
The sieve generated by the morphisms in R.category
for a presieve R is the sieve generated by R.
The sieve generated by two morphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sieve of X : C that is generated by a family of objects Y : I → C:
it consists of morphisms p : Z ⟶ X such that there exists a morphism Z ⟶ Y i
for some i (note that this does not depend on p, only on the object Z).
Equations
Instances For
Given a morphism h : Y ⟶ X, send a sieve S on X to a sieve on Y
as the inverse image of S with _ ≫ h. That is, Sieve.pullback S h := (≫ h) '⁻¹ S.
Equations
- CategoryTheory.Sieve.pullback h S = { arrows := fun (x : C) (sl : x ⟶ Y) => S.arrows (CategoryTheory.CategoryStruct.comp sl h), downward_closed := ⋯ }
Instances For
Push a sieve R on Y forward along an arrow f : Y ⟶ X: gf : Z ⟶ X is in the sieve if gf
factors through some g : Z ⟶ Y which is in R.
Equations
- CategoryTheory.Sieve.pushforward f R = { arrows := fun (x : C) (gf : x ⟶ X) => ∃ (g : x ⟶ Y), CategoryTheory.CategoryStruct.comp g f = gf ∧ R.arrows g, downward_closed := ⋯ }
Instances For
If f is a monomorphism, the pushforward-pullback adjunction on sieves is coreflective.
Equations
Instances For
If f is a split epi, the pushforward-pullback adjunction on sieves is reflective.