Sieve (category theory)

In category theory, a branch of mathematics, a sieve is a way of choosing arrows with a common codomain. It is a categorical analogue of a collection of open subsets of a fixed open set in topology. In a Grothendieck topology, certain sieves become categorical analogues of open covers in topology. Sieves were introduced by in order to reformulate the notion of a Grothendieck topology.
Definition.
Let C be a category, and let "c" be an object of C. A sieve formula_1 on "c" is a subfunctor of Hom(−, "c"), i.e., for all objects "c"′ of C, "S"("c"′) ⊆ Hom("c"′, "c"), and for all arrows "f":"c"″→"c"′, "S"("f") is the restriction of Hom("f", "c"), the pullback by "f" (in the sense of precomposition, not of fiber products), to "S"("c"′); see the next section, below.
Put another way, a sieve is a collection "S" of arrows with a common codomain that satisfies the condition, "If "g":"c"′→"c" is an arrow in "S", and if "f":"c"″→"c"′ is any other arrow in C, then "gf" is in "S"." Consequently, sieves are similar to right ideals in ring theory or filters in order theory.
Pullback of sieves.
The most common operation on a sieve is "pullback". Pulling back a sieve "S" on "c" by an arrow "f":"c"′→"c" gives a new sieve "f"*"S" on "c"′. This new sieve consists of all the arrows in "S" that factor through "c"′.
There are several equivalent ways of defining "f"*"S". The simplest is:
A more abstract formulation is:
Here the map Hom(−, "c"′)→Hom(−, "c") is Hom("f", "c"′), the pullback by "f".
The latter formulation suggests that we can also take the image of "S"×Hom(−, "c")Hom(−, "c"′) under the natural map to Hom(−, "c"). This will be the image of "f"*"S" under composition with "f". For each object "d" of C, this sieve will consist of all arrows "fg", where "g":"d"→"c"′ is an arrow of "f"*"S"("d"). In other words, it consists of all arrows in "S" that can be factored through "f".
If we denote by ∅"c" the empty sieve on "c", that is, the sieve for which ∅("d") is always the empty set, then for any "f":"c"′→"c", "f"*∅"c" is ∅"c"′. Furthermore, "f"*Hom(−, "c") = Hom(−, "c"′).
Properties of sieves.
Let "S" and "S"′ be two sieves on "c". We say that "S" ⊆ "S"′ if for all objects "c"′ of C, "S"("c"′) ⊆ "S"′("c"′). For all objects "d" of C, we define ("S" ∪ "S"′)("d") to be "S"("d") ∪ "S"′("d") and ("S" ∩ "S"′)("d") to be "S"("d") ∩ "S"′("d"). We can clearly extend this definition to infinite unions and intersections as well.
If we define SieveC("c") (or Sieve("c") for short) to be the set of all sieves on "c", then Sieve("c") becomes partially ordered under ⊆. It is easy to see from the definition that the union or intersection of any family of sieves on "c" is a sieve on "c", so Sieve("c") is a complete lattice.
A Grothendieck topology is a collection of sieves subject to certain properties. These sieves are called "covering sieves". The set of all covering sieves on an object "c" is a subset "J"("c") of Sieve("c"). "J"("c") satisfies several properties in addition to those required by the definition:
Consequently, "J"("c") is also a distributive lattice, and it is cofinal in Sieve("c").