In this quick post, which is probably being written far too late at night to be remotely coherent, I want to lay out a few random thoughts I’ve been having about sheaves.

Classically, a sheaf is when you attach to a topological space some kind of compatible system of abelian groups (or sets, modules, whatever… I’ll stick to abelian groups to avoid having to think too hard). More specifically, each open set {U} gets given a group {\mathcal{F}(U)}, whenever there is some kind of relation {U \subset V}, there has to be a restriction map {\mathcal{F}(V) \rightarrow \mathcal{F}(U)}, and there is a gluing condition that is supposed to guarantee good local behaviour. You can form, at each point {x \in X}, the stalk {\mathcal{F}_x = \lim_{\rightarrow x \in U} \mathcal{F}(U)}, and the gluing condition wins us the ability to check all sorts of things about sheaves by just looking at the stalks (whether a map is an isomorphism, injective, a sequence exact, etc.).

There are also (in all categories I’ve seen) an important pair of functors attached to every map {f:X\rightarrow Y}. The most obvious is the direct image {f_*:Sh(X) \rightarrow Sh(Y)} given by the definition (using the defining property of continuous maps)

\displaystyle f_*\mathcal{F}(V) := \mathcal{F}(f^{-1}(V)).

There is also a functor going in the opposite direction, the inverse image{f^*:Sh(Y) \rightarrow Sh(X)} given by taking the sheafification (basically where you modify the below as harmlessly as possible to force the gluing axioms to hold) of the presheaf defined by

\displaystyle f^*\mathcal{G}(U) := \text{lim}_{\rightarrow f(U) \subseteq V} \mathcal{G}(V).

These are adjoint functors in the sense that to give a sheaf map {f^*\mathcal{G} \rightarrow \mathcal{F}} is equivalent to giving a map {\mathcal{G} \rightarrow f_*\mathcal{F}} in a natural way. It turns out that {f^*} is actually an exact functor (this is reasonably obvious looking at the definition and noting that direct limits and sheafification are exact operations). It follows entirely formally that {f_*} is left exact and preserves injectives. There is also usually another functor {f_!: Sh(X) \rightarrow Sh(Y)} which acts as a left adjoint to {f^*}. These functors are basically really nice, but also manifest themselves in lots of different ways.

For example, consider {i: U \hookrightarrow X} the inclusion of an open subset. Then {i^*\mathcal{F}} is just the obvious restriction of {\mathcal{F}} to {U}. Another interesting example is if you just consider the inclusion of a single point {x:\star \rightarrow X}. Looking at the definitions, it is clear that one gets none other than the stalk {x^*\mathcal{F} = \mathcal{F}_x}. In other words, by considering very special cases we can recover all the basic sheaf operations from the inverse image functor. This has two advantages. Firstly, it helps us remember that they are exact, and have right and left adjoints. Secondly, and more significantly, it seems to suggest an easier way to think about stalks in more general situations than the classical case.

It is a reasonably trivial observation that a presheaf (sheaf minus gluing axioms) is a contravariant functor from the category of open subsets of our space (with arrows given by inclusions) to the category of abelian groups. One could therefore contemplate calling any contravariant functor {\mathcal{C}^{op} \rightarrow \text{(Ab)}} a presheaf.

But here is an interesting idea: let’s take {\mathcal{C}} to be the category of all topological spaces, but throw away all the arrows which don’t correspond to inclusions of open sets. We can still define a presheaf on this much larger category. However, with a little thought it’s clear we can also define a sheaf. The gluing condition passes more or less unchanged. For every open set {U} and a cover of it {\{U_i\}}, a bunch of compatible sections on the {U_i} (note that it’s important that {U_i \cap U_j} will be an open subset of {U_i} and {U_j} so the category comes equipped with the relevent arrow) must glue to a unique section on {U}. The only difference is that now the open sets keep on going upwards and upwards forever through the celestial heights of the category of topological spaces. And hey, why not? This is kinda fun!

This example feels slightly strange. Why? It’s no longer functions on a fixed space. Somehow, things have become sort of unbounded. But is that really what’s strange? I think what is actually strange about this example is the artificiality of the category of topological spaces where the only maps are open embeddings. This was what Grothendieck thought too, and pretty soon he was able to define sheaves on arbitrary categories provided they came equiped with a gadget called a Grothendieck topology, whose job is to track what the `covers’ are for which the gluing conditions need to be checked.

Let me be (sort of) precise again. Let {\mathcal{C}} be the category on which we want to construct sheaves, and assume it has binary pullbacks (just as we needed pairwise intersections of open sets above). A Grothendieck topology on it is just, for each object {U}, a collection of covers {\{U_i\}}. A sheaf is then just a contravariant functor {\mathcal{C}^{op}\rightarrow \text{(Ab)}} satisfying a gluing condition exactly analogous with the classical one. In these more general situations, certainly whenever I’ve come across them, there are also good generalisations of the functors I mentioned earlier and they retain their properties.

The idea of sheaves is one of the most powerful in 20th century topology and geometry, and what we have outlined is a vast generalisation of this concept, so perhaps it is unsurprising it has been hugely successful. However, a reasonably humble question has been bothering me for a while. Since there is no underlying space anymore, there are no longer really such a thing as points, so we cannot obviously define stalks (and check properties locally at them). This seems to be a shortcoming that we should try to overcome.

We have already seen part of the way to an answer. Does our category contain any sort of object {pt} that deserves to be called a point? If so, let us call the points of an object {X} the set of maps {x: pt \rightarrow X}. Then given a sheaf on our category (or at least on an appropriate subcategory of things mapping into {X}), we can finally define the stalk {\mathcal{F}_x := x^* \mathcal{F}}.

But wait? We want our stalk to be an actual abelian group, whereas we’ve got ourselves a whole sheaf here. Therefore, having boldly gone forth and defined sheaves to be on entire large categories, I now need to retrace my steps to avoid losing grip on reality. Given a sheaf {\mathcal{F}} on {\mathcal{C}}, and an object {X}, we may restrict our attention to the subcategory of {\mathcal{C}} given by taking covers of {X}, and covers of all the objects involved therein, and so on… Ignoring any logical/set-theoretical problems this might entail, we write {Sh(X)} for the category of sheaves on this subcategory. Our functors will then give to any map {f:X \rightarrow Y} appropriate maps between categories of sheaves.

So what should {pt} look like? Well, we just want {Sh(pt)} to be as trivial a category as possible. Indeed, if it were a one point category, it would just be an abelian group, so the stalk {\mathcal{F}_x} is an abelian group as required.

Generally I have no idea how possible this is, but let’s have a look at the category of schemes with any sensible topology. What are the most likely candidates to be points? Well, probably schemes which have a single point (as topological spaces), that is, fields {Spec k}. Indeed, maps {Spec k \rightarrow X} do correspond reasonably nicely to actual points of {X}. However, in many topologies, for example the etale topology, a sheaf on {Spec k} is not simply an abelian group but rather a {Gal(k^s/k)}-module. It therefore seems that the most sensible candidates for points are the schemes {Spec k} for {k} a separably closed field: and these are indeed what we take as the `geometric points’ and to form `geometric fibres’ in scheme theory.

This also gives a quick generalisation of the concept of skyscraper sheaf. Indeed, given a geometric point {x:Spec k \rightarrow X}, while {x^*\mathcal{F}} gives the correct definition of stalk, one can also form the direct image of any abelian group {x_*A} and it gives a sheaf {A_x}, called the skyscraper sheaf, whose classical analogue is characterised by

\displaystyle A_x(U) = \begin{cases} 0 & \text{ if } x \not\in U \\ A & \text{ if } x \in U\\ \end{cases}.

I find it amusing just how nice so many of these sheaf-theoretic constructions seem to be, and how often trying trivial things can shed new light on things and provide the correct generalisations of classical ideas. Anyway, it’s far too late, and I hope I didn’t ramble too much.