# 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 Giraud (1964) 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 $S\colon C^{\rm {op}}\to {\rm {Set}}$ 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:
    For any object d of C, f$^*$S(d) = { g:d→c′ | fg ∈ S(d)}
A more abstract formulation is:
    f$^*$S is the image of the fibered product S×$_{Hom(−,c)}$Hom(−, c′) under the natural projection S×$_{Hom(−,c)}$Hom(−, c′)→Hom(−, c′).
Here the map Hom(−, c′)→Hom(−, c) is Hom(−, f), the push forward 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 Sieve$_C$(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:
* If S and S′ are sieves on c, S ⊆ S′, and S ∈ J(c), then S′ ∈ J(c).
* Finite intersections of elements of J(c) are in J(c).
Consequently, J(c) is also a distributive lattice, and it is cofinal in Sieve(c).