Let C be a category. A sieve S on an object U is a collection of morphisms with codomain U that is closed under precomposition: if V→U belongs to S, then every composite W→V→U belongs to S.
A Grothendieck topology J on C assigns to every object U a collection J(U) of sieves, called covering sieves, such that:
- the maximal sieve of all morphisms into U belongs to J(U);
- if S∈J(U) and f:V→U, then the pullback sieve f∗S belongs to J(V);
- if S is a sieve on U, R∈J(U), and f∗S∈J(V) for every f:V→U in R, then S∈J(U).
Thus a Grothendieck topology specifies what it means to work locally on the objects of a category; it need not arise from a topology on a set of points.