Theory of sieves #
- For an object
Xof a categoryC, aSieve Xis a set of morphisms toXwhich is closed under left-composition. - The complete lattice structure on sieves is given, as well as the Galois insertion given by downward-closing.
- A
Sieve X(functorially) induces a presheaf onCtogether with a monomorphism to the yoneda embedding ofX.
Tags #
sieve, pullback
A set of arrows all with codomain X.
Equations
- CategoryTheory.Presieve X = (⦃Y : C⦄ → Set (Y ⟶ X))
Instances For
Equations
- CategoryTheory.Presieve.instInhabited = { default := ⊤ }
The full subcategory of the over category C/X consisting of arrows which belong to a
presieve on X.
Equations
- P.category = CategoryTheory.ObjectProperty.FullSubcategory fun (f : CategoryTheory.Over X) => P f.hom
Instances For
Construct an object of P.category.
Equations
- P.categoryMk f hf = { obj := CategoryTheory.Over.mk f, property := hf }
Instances For
Given a sieve S on X : C, its associated diagram S.diagram is defined to be
the natural functor from the full subcategory of the over category C/X consisting
of arrows in S to C.
Equations
- S.diagram = (CategoryTheory.ObjectProperty.ι fun (f : CategoryTheory.Over X) => S f.hom).comp (CategoryTheory.Over.forget X)
Instances For
Given a sieve S on X : C, its associated cocone S.cocone is defined to be
the natural cocone over the diagram defined above with cocone point X.
Equations
- S.cocone = CategoryTheory.Limits.Cocone.whisker (CategoryTheory.ObjectProperty.ι fun (f : CategoryTheory.Over X) => S f.hom) (CategoryTheory.Over.forgetCocone X)
Instances For
Given a set of arrows S all with codomain X, and a set of arrows with codomain Y for each
f : Y ⟶ X in S, produce a set of arrows with codomain X:
{ g ≫ f | (f : Y ⟶ X) ∈ S, (g : Z ⟶ Y) ∈ R f }.
Equations
Instances For
Structure which contains the data and properties for a morphism h satisfying
Presieve.bind S R h.
- Y : C
the intermediate object
a morphism in the family of presieves
Ra morphism in the presieve
S- hf : S self.f
- hg : R ⋯ self.g
Instances For
If a morphism h satisfies Presieve.bind S R h, this is a choice of a structure
in BindStruct S R h.
Equations
- H.bindStruct = ⋯.some
Instances For
The singleton presieve.
- mk {C : Type u₁} [Category.{v₁, u₁} C] {X Y : C} {f : Y ⟶ X} : singleton' f f
Instances For
The singleton presieve.
Instances For
Pullback a set of arrows with given codomain along a fixed map, by taking the pullback in the
category.
This is not the same as the arrow set of Sieve.pullback, but there is a relation between them
in pullbackArrows_comm.
- mk {C : Type u₁} [Category.{v₁, u₁} C] {X Y : C} {f : Y ⟶ X} [Limits.HasPullbacks C] {R : Presieve X} (Z : C) (h : Z ⟶ X) : R h → pullbackArrows f R (Limits.pullback.snd h f)
Instances For
Construct the presieve given by the family of arrows indexed by ι.
- mk {C : Type u₁} [Category.{v₁, u₁} C] {X : C} {ι : Type u_1} {Y : ι → C} {f : (i : ι) → Y i ⟶ X} (i : ι) : ofArrows Y f (f i)
Instances For
Given a presieve on F(X), we can define a presieve on X by taking the preimage via F.
Equations
- CategoryTheory.Presieve.functorPullback F R f = R (F.map f)
Instances For
Given a presieve R on X, the predicate R.hasPullbacks means that for all arrows f and
g in R, the pullback of f and g exists.
Instances
Given a presieve on X, we can define a presieve on F(X) (which is actually a sieve)
by taking the sieve generated by the image via F.
Equations
- CategoryTheory.Presieve.functorPushforward F S f = ∃ (Z : C) (g : Z ⟶ X) (h : Y ⟶ F.obj Z), S g ∧ f = CategoryTheory.CategoryStruct.comp h (F.map g)
Instances For
An auxiliary definition in order to fix the choice of the preimages between various definitions.
- preobj : C
an object in the source category
a map in the source category which has to be in the presieve
the morphism which appear in the factorisation
- cover : S self.premap
the condition that
premapis in the presieve the factorisation of the morphism
Instances For
The fixed choice of a preimage.
Equations
- One or more equations did not get rendered due to their size.
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 set of arrows.
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, set_over).
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 an arrow set 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 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 to X which factor through at least one of the Y i.
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.
Equations
Instances For
If R is a sieve, then the CategoryTheory.Presieve.functorPullback of R is actually a sieve.
Equations
- CategoryTheory.Sieve.functorPullback F R = { arrows := CategoryTheory.Presieve.functorPullback F R.arrows, downward_closed := ⋯ }
Instances For
The sieve generated by the image of R under F.
Equations
- CategoryTheory.Sieve.functorPushforward F R = { arrows := CategoryTheory.Presieve.functorPushforward F R.arrows, downward_closed := ⋯ }
Instances For
When F is essentially surjective and full, the galois connection is a galois insertion.
Equations
Instances For
When F is fully faithful, the galois connection is a galois coinsertion.
Instances For
A sieve induces a presheaf.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If a sieve S is contained in a sieve T, then we have a morphism of presheaves on their induced presheaves.
Equations
Instances For
The natural inclusion from the functor induced by a sieve to the yoneda embedding.
Instances For
The presheaf induced by a sieve is a subobject of the yoneda embedding.
A natural transformation to a representable functor induces a sieve. This is the left inverse of
functorInclusion, shown in sieveOfSubfunctor_functorInclusion.
Equations
- CategoryTheory.Sieve.sieveOfSubfunctor f = { arrows := fun (Y : C) (g : Y ⟶ X) => ∃ (t : R.obj (Opposite.op Y)), f.app (Opposite.op Y) t = g, downward_closed := ⋯ }