mathlib documentation

category_theory.sites.sieves

Theory of sieves

Tags

sieve, pullback

structure category_theory.sieve {C : Type u} [category_theory.category C] (X : C) :
Type (max u v)
  • arrows : Π {Y : C}, set (Y X)
  • downward_closed : ∀ {Y Z : C} {f : Y X}, c.arrows f∀ (g : Z Y), c.arrows (g f)

For an object X of a category C, a sieve X is a set of morphisms to X which is closed under left-composition.

A sieve gives a subset of the over category of X.

Equations
theorem category_theory.sieve.arrows_ext {C : Type u} [category_theory.category C] {X : C} {R S : category_theory.sieve X} (a : R.arrows = S.arrows) :
R = S

@[ext]
theorem category_theory.sieve.ext {C : Type u} [category_theory.category C] {X : C} {R S : category_theory.sieve X} (h : ∀ ⦃Y : C⦄ (f : Y X), R.arrows f S.arrows f) :
R = S

theorem category_theory.sieve.ext_iff {C : Type u} [category_theory.category C] {X : C} {R S : category_theory.sieve X} :
R = S ∀ ⦃Y : C⦄ (f : Y X), R.arrows f S.arrows f

The supremum of a collection of sieves: the union of them all.

Equations

The infimum of a collection of sieves: the intersection of them all.

Equations

The union of two sieves is a sieve.

Equations

The intersection of two sieves is a sieve.

Equations
@[instance]

Sieves on an object X form a complete lattice. We generate this directly rather than using the galois insertion for nicer definitional properties.

Equations
@[instance]

The maximal sieve always exists.

Equations
@[simp]
theorem category_theory.sieve.mem_Inf {C : Type u} [category_theory.category C] {X : C} {Ss : set (category_theory.sieve X)} {Y : C} (f : Y X) :
(Inf Ss).arrows f ∀ (S : category_theory.sieve X), S SsS.arrows f

@[simp]
theorem category_theory.sieve.mem_Sup {C : Type u} [category_theory.category C] {X : C} {Ss : set (category_theory.sieve X)} {Y : C} (f : Y X) :
(Sup Ss).arrows f ∃ (S : category_theory.sieve X) (H : S Ss), S.arrows f

@[simp]
theorem category_theory.sieve.mem_inter {C : Type u} [category_theory.category C] {X : C} {R S : category_theory.sieve X} {Y : C} (f : Y X) :
(R S).arrows f R.arrows f S.arrows f

@[simp]
theorem category_theory.sieve.mem_union {C : Type u} [category_theory.category C] {X : C} {R S : category_theory.sieve X} {Y : C} (f : Y X) :
(R S).arrows f R.arrows f S.arrows f

@[simp]
theorem category_theory.sieve.mem_top {C : Type u} [category_theory.category C] {X Y : C} (f : Y X) :

inductive category_theory.sieve.generate_sets {C : Type u} [category_theory.category C] {X : C} (𝒢 : set (category_theory.over X)) (Y : C) :
set (Y X)

Take the downward-closure of a set of morphisms to X.

Generate the smallest sieve containing the given set of arrows.

Equations

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
@[simp]
theorem category_theory.sieve.mem_pullback {C : Type u} [category_theory.category C] {X Y Z : C} {S : category_theory.sieve X} (h : Y X) {f : Z Y} :

If the identity arrow is in a sieve, the sieve is maximal.

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
@[simp]
theorem category_theory.sieve.mem_pushforward_of_comp {C : Type u} [category_theory.category C] {X Y : C} {R : category_theory.sieve Y} {Z : C} {g : Z Y} (hg : R.arrows g) (f : Y X) :

If f is a monomorphism, the pushforward-pullback adjunction on sieves is coreflective.

Equations

A sieve induces a presheaf.

Equations
@[simp]
theorem category_theory.sieve.functor_obj {C : Type u} [category_theory.category C] {X : C} (S : category_theory.sieve X) (Y : Cᵒᵖ) :
S.functor.obj Y = {g // S.arrows g}

@[simp]
theorem category_theory.sieve.functor_map_val {C : Type u} [category_theory.category C] {X : C} (S : category_theory.sieve X) (Y Z : Cᵒᵖ) (f : Y Z) (g : {g // S.arrows g}) :
(S.functor.map f g).val = f.unop g.val

If a sieve S is contained in a sieve T, then we have a morphism of presheaves on their induced presheaves.

Equations

The natural inclusion from the functor induced by a sieve to the yoneda embedding.

Equations
@[instance]

The presheaf induced by a sieve is a subobject of the yoneda embedding.