Understanding Sheaves §2

This post is in two parts. The first part consists of notes based on reading Daniel Rosiak’s book Sheaf Theory Through Examples; while the second part of this post (titled “Decompositions as topologies”) consists of new work straight from my notebook. As always the lines are blurred between learning something that is new to me and discovering something that is new to me and as well as others.

Notes on Sieves & Grothendieck Topologies

Last time I started explaining (\(\mathbf{Set}\)-valued) sheaves, coverages, sites and Grothendieck (pre-) topologies. Today I’ll talk about sieves and I’ll go deeper on sheaves, presheaves and Grothendieck topologies.

So here’s a reminder of what happened in the previous post in this series. Even though topology is all about open sets and continuity, Grothendieck realised that, from the point of view of defining sheaves, the only thing that is important is the notion of a covering. This is a notion that has nothing to do with the idea of an “open set” and is hence much easier to generalize.

The very rough idea is the following. You start with a category \(C\). Thinking of a cover of any object \(c \in C\) as a set of morphisms with codomain \(c\), you associate to each such object \(c \in C\) a set \(K(c)\) of “permissible coverings” of \(c\). Then you call \((C, K)\) a site (a “place in which you can define sheaves”) if \(K\) satisfies certain “niceness” conditions.

One concern I was having last time while I was reading Daniel’s book was that the assignment \(K\) of permissible converings was defined as a function rather than as a functor. Thankfully nature is healing: today \(K\) will indeed be a functor. But for this we need our notion of a cover to be a little nicer. We need sieves.

Def: A sieve on an object \(c \in C\) is a family \(S_c\) of morphisms with codomain \(c\) which is closed under pre-composition.

Think: its a sieve because, after picking “entry-points into \(c\)” of the form \(f: d \to c\), anything that can enter \(d\) (i.e. any morphism \(g: e \to d\)) can also enter \(c\) (i.e. as the composite \(fg: e \to d \to c\)).

The idea now is to work only with “nice” covers (i.e. sieves) and define a “permissible covers” functor \(K\) which assigns sets \(K(c)\) of sieves to any object \(c\). Before doing this, though, let’s give two other equivalent definition of a sieve.

Def [sieve – Yoneda definition]: A sieve \(S\) on an object \(c \in C\) is a subfunctor of the Yoneda embedding at \(c\) (i.e. the functor \(y_c = C(-, c)\)).

Here’s how you see that this agrees with the defintion above. Given a family of morphisms \(\mathcal{S} := \{f_i: c_i \to c \mid i \in I\}\), we can define a functor \(S: C^{op} \to \mathbf{Set}\) taking each object \(x\) to the set \(\{f:x \to c \mid f \in \mathcal{S}\}\) and each morphism \(g: x \to y\) to the functor \(S_g: S(y) \to S(x)\) given by \(S_g: (f \in S(y)) \mapsto (fg \in S(x))\). Conversely, given any subfunctor \(S\) of \(y_c\), we get a sieve on \(c\) (in the set theoretic sense of the first definition above) as the set \(\bigcup_{x \in c} S(x)\) (by construction this will be closed under precomposition, as desired).

Def [sieve – Slice definition]: A sieve \(S\) on an object \(c \in C\) is a subcategory of the slice \(C/c\).

Given these definitions, we can redefine a Grothendieck topology as a category \(C\) equipped with an assignment \(K\) of “permissible” coverings to each object satisfying three axioms (which I’ll define in a second): (1) maximality, (2) stability and (3) transitivity.

The second axiom – i.e. stability – is just a funny way of saying that \(K\) is itself in fact a presheaf by postcomposition $$K: C^{op} \to \mathbf{Set}$$ which takes each \(c \in C\) to a set of sieves of \(c\) and which contravariantly maps each morphism \(f : x \to y\) in \(C\) to the function $$K_f : (S \in Ky) \mapsto (\{g: x’ \to x \mid (fg: x’ \to x \to y) \in S\} \in Kx).$$ We can rewrite this \(K\) as a subfunctor of the functor $$\mathbf{Sieve} : C^{op} \to \mathbf{Set}$$ which takes each object \(c \in C\) to the collection of all sieves on \(c\) (and which acts on arrows as we defined above).

I find this functorial perspective much easier to remember that the statement of the stability axiom, so I’ll adopt it when formulating the definition of a Grothendieck topology below.

Def: Let \(C\) be a category. We call a subfunctor \(K\) of \(\mathbf{Sieve} : C^{op} \to \mathbf{Set}\) a Grothendieck topology on \(C\) if it satifies the following two conditions:

  • [Identity/maximality] the maximal sieve is always permissible; i.e. \(C/c \in K(c)\) for all \(c \in C\)
  • [Transitivity] for any sieve \(R\) on some object \(c \in C\), if there is a permissible sieve \(S \in Kc\) on \(c\) such that for all \((\sigma: b \to c) \in S\) the sieve $$\sigma^*(R) := \{g: a \to b \mid (\sigma g: a \to b \to c) \in R\}$$ is permissible on \(b\) (i.e. \(\sigma^*(R) \in Kb\)), then \(R\) is itself permissible on \(c\) (i.e. \(R \in Kc\)).
Note: there is an equivalent “arrow” version of this definition which I won’t tell you about here (you can find in Daniel’s book or in Mac Lane & Moerdijk).

Thinking of a cover as a means of obtaining information about an object, the first axiom makes sense: perfect information should always be allowed. The second axiom has to do with the idea that “a cover of a cover better be itself a cover”. To see this, notice that it says that any sieve \(R\) on some object \(c\) must be a “permissible” (i.e. a “cover” for \(c\) – i.e. \(R \in Kc\)) if it “refines” some permissible cover \(S \in Kc\). Anyway, now we can define a site in the usual way.

Def: a site is pair \((C, K)\) consisting of a category \(C\) and a Grothendieck topology \(K\) on \(C\).


For my own sake, I’ll review four Grothendieck topologies which are covered in Daniel’s book.

The minimal topology on a category \(C\) is the the Grothendieck topology \(K\) which assigns to each \(c \in C\) precisely one covering sieve; namely the maximal sieve \(\{f \in \mathbf{Mor}(C) \mid \mathsf{codom}(f) = c\}\).

If \(C\) is a poset, the minimal topology simply amounts to assigning to each \(c \in C\) its downset \(\downarrow c\).

The maximal topology on a category \(C\) is the functor \(\mathbf{Sieve} : C^{op} \to \mathbf{Set}\) which we defined earlier.

The maximal topology looks wild to me. Taking \(C\) to be the category of graphs, the maximal topology would allow, for instance, the singleton set consisting of the uniqe morphism \(! : K_0 \to G\) to be a permissible cover of any graph \(G\).

The dense topology on a category \(C\) is the functor \(\mathsf{dense}: C^{op} \to \mathbf{Set}\) which takes each \(c \in C\) to the set of all dense sieves on \(c\) where a sieve \(S\) is dense if it satifies the following requirement: $$\forall f: b \to c \; \exists g: a \to b \text{ s.t. the composite } fg: a \to b \to c \in S.$$

For a finite poset \(P\) the notion of a dense set on some \(p \in P\) is easy to understand: it is any subset of \(\downarrow p\) which is a superset of the set of all those minimal elements of \(P\) which are in \(\downarrow p\). To see this, take some dense set \(S\) and notice that, if \(m\) is a minimal element which is at most \(p\), then there exists a \(q\) in \(S\) which is at most \(m\); but then \(q = m\) by the minimiality of \(m\). Conversely, writing \(M_p\) to denote the set of minimal elements which are at most \(p\), consider any set \(S\) with \(M_p \subseteq S \subseteq \downarrow p\). This set is dense since, for all \(p’ \leq p\) at least one of the elements of \(M_p\) will be at most \(p’\) and in \(S\). When a dense set is also a sieve, then it can be specified by any choice of elements in \(\downarrow p\) whose union contains all of \(M_p\). (Clearly the notion of a dense set is more interesting in infinite posets.)

For fun, let’s instantiate this example on the subobject poset \(\mathbf{Sub}G\) of some finite graph \(G\). Then, by the finiteness of \(G\) and the fact that \(\mathbf{Sub}G\) has a least element (namely the empty graph) we find that, for (G’ \subseteq G), any downset (or unions thereof) in \(\mathbf{Sub}G’\) is a permissible cover in \(\mathsf{dense}(G’)\).

The atomic topology on a category \(C\) specifies that a sieve on any \(c \in C\) is permissible whenever it is non-empty. As Daniel points out in his book, the maximality and transitivity axioms are trivially met; however, it is the functoriality of the Grothendieck topology that might fail: if \(C\) fails to have pullbacks, then, given a morphism \(b \to c\) it might not be obvious how to pull sieves on \(c\) back to sieves on \(b\). This can be resolved by requiring every cospan in \(C\) to have at least one cone (in particular posets which are not down-semi-lattices do not satisfy this property).

Some examples on graphs

An interesting example is to consiter the free category \(FG\) on a directed graph \(D\). What’s a sieve on \(FD\)? Well, pick a vertex \(x\) in \(D\) and recall that morphisms in \(FD\) are directed walks in \(D\). If we have a sieve \(S\) on \(x\), this corresponds to a union of maximal directed walks towards \(x\).

If \(D\) is strongly connected, then every sieve will necessarily be all of \(D\). To see this proceed by induction: it’s obvious on the 1-vertex graph. Now pick a vertex \(x\) in \(D\) and let \(S\) be a sieve on \(x\). By the inductive hypothesis we have that \(S\) contains all of \(D – y\) for some vertex \(y\) distinct from \(x\). Now consider any morphism \(f: y \to w\) for some \(w\) in \(D\). By the inductive hypothesis and since \(D\) is strongly connected, we have that there is a morphism from \(g: w \to x\) which is in the sieve and hence \(gf: y \to w \to x\) is in the sieve as well. Similarly, take any morphism \(f’: w’ \to y\) and notice that, since \(gf: y \to x\) (defined as above) is in the sieve, then \(f’gf\) is also in the sieve, as desired.

What’s nice about this is that it suggests that sieves on \(FG\) are related to the condensation of directed graphs. However, since the relationship doesn’t seem as clean as I’d like, I won’t sketch this further.

Finally let’s have a look at the subobject poset \(\mathbf{Sub}(G)\) of some fixed graph \(G\). We can assign a Grothendieck topology \(K\) to the category \(\mathbf{Sub}(G)\) as follows. For every subgraph \(G’\) of \(G\), define \(K(G’)\) to be the set of all sieves on \(G’\) in \(\mathbf{Sub}(G)\) (i.e. downward-closed collections of subgraphs of \(G’\)) whose colimit is \(G’\). This forms a Grothendieck topology because the colimit of the maximal sieve \(\downarrow G’\) is \(G’\) for each subgraph \(G’\) of \(G\) and because, if \(R\) is a downards-closed collection of subobjects of \(G’\) such that there is a cover \(S\) for \(G’\) satisfying the requirement that, for any morphism \(G” \subseteq G’\) in \(S\), the set \(R \cap \downarrow G”\) yields \(G”\) as a colimit, then clearly \(R\) yields \(G’\) as a colimit as well.

Decompositions as Topologies

Note: this section includes new work and departs from the note-taking theme of the rest of this post.

The topology on \(\mathbf{Sub}G\) I mentioned above, together with a similar topology on the poset \(\mathcal{O}X\) of opens of a topological space \(X\), are – from what I gather (and please correct me if I’m wrong) – the prototypical examples of Grothendieck topologies. But I find these constructions somewhat in conflict with my perspective on what the point of category theory is: I don’t want to define a topology for each graph, instead I’d like to equip the category of all graphs with a topology which I can then induce on a graph itself. I’m sure there are many ways of doing this, but I’ll focus on using structured decompositions (I have alterior motives, you see).

Throughout the rest of this section, fix some small category \(C\) which is adhesive (we need both assumptions). On any such category I’ll define a functor $$\mathsf{decomp}: C^{op} \to \mathbf{Set}$$ which takes each object \(c \in C\) to the set of all \(C\)-valued structured decompositions yielding \(c\); spelling this out we have $$\mathsf{decomp}: (c \in C) \mapsto \{d \in \mathcal{D}C \mid \mathrm{colim }\:d = c\}$$ where \(\mathcal{D}C\) denotes the category of \(C\)-valued structured decompoisitions. The arrow-component of \(\mathsf{decomp}\) is defined by “pointwise pullback”. Although this construction is a direct consequence of Lemma 5.10 and Theorem 5.8 in my paper with Jade Master and Zoltan Kocsis, I’ll still spend some time giving you the gist of it here. For each morphism \(f: b \to c\) in \(C\) we define a map $$\mathsf{decomp}\:f : \mathsf{decomp}\:c \to \mathsf{decomp}\:b$$ which takes each decomposition \(d_c\) which yields \(c\) to a decomposition \(d_b\) which yields \(b\). The way you go about producing such a \(d_b\) from \(d_c\) is by pointwise pullback with \(f: b \to c\); rather than explain this further I’ll refer you to the following screenshot of my paper (which you should check out if you want futher details).

To make the variables in the figure make sense with what I said above, replace \(\delta\) by \(f: b \to c\) and \(D\) by \(d\).

The point of all this is that we’ve defined a functor $$\mathsf{decomp}: C^{op} \to \mathbf{Set}$$ which we’ll now show is a Grothendieck topology on \(C\).

First of all notice that each structured decomposition gives us a sieve by just taking the colimit arrows and then completing these downwards (by precomposition). In turn, any sieve \(S\), gives rise to structured decompositions by sticking spans betwen the bases of the resulting multicospan defined by \(S\); the choice of spans can be done by taking products in the slice \(C / c\) (i.e. pullbacks in \(C\) … tangentially Matteo cappucci just tweeted about this yesterday, so say “ciao Matteo” and check that out). With this in mind, let’s check the two remianing axioms in turn.

Maximality. The maximal sieve \(M\) on any object \(c \in C\) clearly defines a decomposition \(m: F_{dag}K_{|C|} \to \mathbf{Sp}C\) which yields \(c\) as a colimit (note that we need \(C\) to be small to be able to define the – possibly infinite – compelte graph \(K_{|C|}\) as the shape of the decomposition).

(Parenthetical remark: to be able to apply this whole construction to sets or graphs, say, we need to work with their skeletons since otherwise \(\mathbf{FinSet}\) and \(\mathbf{FinGr}\) are too big… you might even say that they are large.)

Transitivity. Take any sieve \(R\) on some object \(c \in C\), and consider the situation where there is a structured decomposition \(d_c \in \mathsf{decomp}\:c\) yielding \(c\) whose sieve \(S\) defined by the colmit cocone arrows from \(d_c\) into \(c\) satisfies hte following requirement:

\(\mathbf{(\star)}\) for all \((\sigma: b \to c) \in S\) the sieve $$\sigma^*(R) := \{g: a \to b \mid (\sigma g: a \to b \to c) \in R\}$$ is permissible on \(b\) (i.e. there is a structured decomposition \(d_\sigma \in \mathsf{decomp}\:b\) whose colimit arrows form a basis for \(\sigma^*(R)\)).

Now our task is to show that \(R\) is itself permissible on \(c\); in other words we need to show that there is a structured decomposition \(\rho\) whose colimit is \(c\) and whose colimit arrows define \(R\). This, however, follows since diagrams of diagrams are themselves diagrams. To see this note that for each \((\sigma: b \to c) \in S\) we get a structured decompositon \(d_\sigma\) for \(b\) via \(\sigma^*(R)\) (as we noted above). This corresponds to replacing each bag \(dx\) of the structured decompostion \(d\) corresponding to the sieve \(S\) by a structured decomposition \(d_{\sigma_x}\) defined as I mentioned earlier from some \((\sigma_x : dx \to c) \in S\). But since

  • \(\mathsf{colim}\:d_{\sigma_x} = dx\) and
  • \(\mathsf{colim}\:d = c\) and
  • \(\mathbf{id}_c\) is terminal in \(C /c\),

we have that \(\mathsf{colim}\:\rho = c\), as desired. Thus we have shown the following theorem.

Theorem: For any small, adhesive category \(C\), the functor \(\mathsf{decomp}: C^{op} \to \mathbf{Set}\) is a Grothendieck topology on \(C\).

One response to “Understanding Sheaves §2”

Leave a Reply

%d bloggers like this: