Topos Theory (Part 2)

Azimuth 2020-01-07

Last time I defined sheaves on a topological space X; this time I’ll say how to get these sheaves from ‘bundles’ over X. You may or may not have heard of bundles of various kinds, like vector bundles or fiber bundles. If you have, be glad: the bundles I’m talking about now include these as special cases. If not, don’t worry: the bundles I’m talking about now are much simpler!

A bundle over X is simply a topological space Y equipped with a continuous map to X, say

p \colon Y \to X

You should visualize Y as hovering above X, and p as projecting points y \in Y down to their shadows p(y) in X. This explains the word ‘over’, the term ‘projection’ for the map p, and many other things. It’s a powerful metaphor.

Bundles are not only a great source of examples of sheaves; in fact every sheaf comes from a bundle! Conversely, every sheaf—and even every presheaf—gives rise to a bundle.

But these constructions, which I’ll explain, do not give an equivalence of categories. That is, sheaves are not just another way of thinking about bundles, and neither are presheaves. Instead, we’ll get adjoint functors between the category of presheaves on X and the category of bundles X, and these will restrict to give an equivalence between the category of ‘nice’ presheaves on X—namely, the sheaves—and a certain category of ‘nice’ bundles over X, which are called ‘etale spaces’.

Thus, in the end we’ll get two complementary viewpoints on sheaves: the one I discussed last time, and another, where we think of them as specially nice bundles over X. In Sections 2.8 and 2.9 Mac Lane and Moerdijk use these complementary viewpoints to efficiently prove some of the big theorems about sheaves that I stated last time.

Before we get going, a word about a word: ‘etale’. This is really a French word, ‘étalé’, meaning ‘spread out’. We’ll see why Grothendieck chose this word. But now I mainly just want to apologize for leaving out the accents. I’m going to be typing a lot, it’s a pain to stick in those accents each time, and in English words with accents feel ‘fancy’.

From bundles to presheaves

Any bundle over X, meaning any continuous map

p \colon Y \to X,

gives a sheaf over X. Here’s how. Given an open set U \subseteq X, define a section of p over U to be a continuous function

s \colon U \to Y

such that

p \circ s = 1_U

In terms of pictures (which I’m too lazy to draw here) s maps each point of U to a point in Y ‘sitting directly over it’. There’s a presheaf \Gamma_p on X that assigns to each open set U \subset X the set of all sections of p over U:

\Gamma_p(U) = \{s: \; s \textrm{ is a section of } p \textrm{ over } U \}

Of course, to make \Gamma_p into a presheaf we need to say how to restrict sections over U to sections over a smaller open set, but we do this in the usual way: by restricting a function to a subset of its domain.

Puzzle. Check that with this choice of restriction maps \Gamma_p is a presheaf, and in fact a sheaf.

There’s actually a category of bundles over X. Given bundles

p \colon Y \to X

and

p' \colon Y' \to X

a morphism from the first to the second is a continuous map

f \colon Y \to Y'

making the obvious triangle commute:

p' \circ f = p

I’m too lazy to draw this as a triangle, so if you don’t see it in your mind’s eye you’d better draw it. Draw Y and Y' as two spaces hovering over X, and f as mapping each point in Y over x \in X to a point in Y' over the same point x.

We can compose morphisms between bundles over X in an evident way: a morphism is a continuous map with some property, so we just compose those maps. We thus get a category of bundles over X, which is called \mathsf{Top}/X.

I’ve told you how a bundle over X gives a presheaf on X. Similarly, a morphism of bundles over X gives a morphism of presheaves on X. Because this works in a very easy way, it should be no surprise that this gives a functor, which we call

\Gamma \colon \mathsf{Top}/X \to \widehat{O}(X)

Puzzle. Suppose we have two bundles over X, say p \colon Y \to X and p' \colon Y' \to X, and a morphism from the first to the second, say f \colon Y \to Y'. Suppose s \colon U \to Y is a section of the first bundle over the open set U \subset X. Show that f \circ s is a section of the second bundle over U. Use this to describe what the functor \Gamma does on morphisms, and check functoriality.

From presheaves to bundles

How do we go back from presheaves to bundles? Start with a presheaf

F \colon \mathcal{O}(X)^{\mathrm{op}} \to \mathsf{Set}

on X. To build a bundle over X, we’ll start by building a bunch of sets called \Lambda(F)_x, one for each point x \in X. Then we’ll take the union of these and put a topology on it, getting a space called \Lambda(F). There will be a map

p \colon \Lambda(F) \to X

sending all the points in \Lambda(F)_x to x, and this will be our bundle over x.

How do we build these sets \Lambda(F)_x? Our presheaf

F \colon \mathcal{O}(X)^{\mathrm{op}} \to \mathsf{Set}

doesn’t give us sets for points of X, just for open sets. So, we should take some sort of ‘limit’ of the sets F(U) over smaller and smaller open neighborhoods U of x. Remember, if U' \subseteq U our presheaf gives a restriction map

F(U) \to F(U')

So, what we’ll actually do is take the colimit of all these sets F(U), as U ranges over all neighborhoods of x. That gives us our set \Lambda(F)_x.

It’s good to ponder what elements of \Lambda(F)_x are actually like. They’re called germs at x, which is a nice name, because you can only see them under a microscope! For example, suppose F is the sheaf of continuous real-valued functions, so that F(U) consists of all continuous functions from U to \mathbb{R}. By the definition of colimit, for any open neighborhood U of x we have a map

F(U) \to \Lambda(F)_x

So any continuous real-valued function defined on any open neighborhood of x gives a ‘germ’ of a function on x. But also by the definition of colimit, any two such functions give the same germ iff they become equal when restricted to some open neighborhood of x. So the germ of a function is what’s left of that function as you zoom in closer and closer to the point x.

(If we were studying analytic functions on the real line, the germ at x would remember exactly their Taylor series at that point. But smooth functions have more information in their germs, and continuous functions are weirder still. For more on germs, watch this video.)

Now that we have the space of germs \Lambda(F)_x for each point x \in X, we define

\Lambda(X) = \bigcup_{x \in X} \Lambda(F)_x

There is then a unique function

p \colon \Lambda(X) \to X

sending everybody in \Lambda(F)_x to x. So we’ve almost gotten our bundle over X. We just need to put a topology on \Lambda(X).

We do this as follows. We’ll give a basis for the topology, by describing a bunch of open neighborhoods of each point in \Lambda(F). Remember, any point in \Lambda(F) is a germ. More specifically, any point in \Lambda(F) is in some set \Lambda(F)_x, so it’s the germ of some s \in U where U is an open neighborhood of x. But this s has lots of other germs, too, namely its germs at all points y \in U. And we take this collection of all these germs to be an open neighborhood of x. A general open set in \Lambda(F) will then be an arbitrary union of sets like this.

Puzzle. Show that with this topology on \Lambda(F), the map p \colon \Lambda(F) \to X is continuous.

Thus any presheaf on X gives a bundle over X.

Puzzle. Describe how a morphism of presheaves on X gives a morphism of bundles over X, and show that your construction defines a functor

\Lambda \colon \widehat{\mathcal{O}(X)} \to \mathsf{Top}/X

Etale spaces

So now we have functors that turn bundles into presheaves:

\Gamma \colon \mathsf{Top}/X \to \widehat{O}(X)

and presheaves into bundles:

\Lambda \colon \widehat{\mathcal{O}(X)} \to \mathsf{Top}/X

But we have already seen that the presheaves coming from bundles are ‘better than average’: they are sheaves! Similarly, the bundles coming from presheaves are better than average. They are ‘etale spaces’.

What does this mean? Well, if you think back on how we took a presheaf F and gave \Lambda(F) a topology a minute ago, you’ll see something very funny about that topology. Each point in \Lambda(F) has a neighborhood such that

p \colon \Lambda(F) \to X

restricted to that neighborhood is a homeomorphism. Indeed, remember that each point in \Lambda(F) is a germ of some

s \in F U

for some open U \subseteq X. We made the set of all germs of s into an open set in \Lambda(F). Call that open set V.

Puzzle. Show that p is a homeomorphism from V to U.

In class I’ll draw a picture of what’s going on. \Lambda(F) is a space sitting over X has lots of open sets V that look exactly like open sets U down in X. In terms of our visual metaphor, these open sets V are ‘horizontal’, which is why we invoke the term ‘etale’:

Definition. A bundle p \colon Y \to X is etale if each point y \in Y has an open neighborhood V such that p restricted to V is a homeomorphism. We often call such a bundle an etale space over X.

So, if you did the last puzzle, you’ve shown that any presheaf on X gives an etale space over X.

(By the way, if you know about covering spaces, you should note that every covering space of X is an etale space over X but not conversely. In a covering space p \colon Y \to X we demand that each point down below, in X, has a neighborhood U such that p^{-1}(U) is a disjoint union of open sets homeomorphic to U, with p restricting to homeomorphism on each of these open sets. In an etale space we merely demand that each point up above, in Y, has a neighborhood V such that p restricted to V is a homeomorphism. This is a weaker condition. In general, etale spaces are rather weird if you’re used to spaces like manifolds: for example, Y will often not be Hausdorff.)

Sheaves versus etale spaces

Now things are nicely symmetrical! We have a functor that turns bundles into presheaves

\Gamma \colon \mathsf{Top}/X \to \widehat{O}(X)

but in fact it turns bundles into sheaves. We have a functor that turns presheaves into bundles

\Lambda \colon \widehat{\mathcal{O}(X)} \to \mathsf{Top}/X

but in fact it turns presheaves into etale spaces.

Last time we defined \mathsf{Sh}(X) to be the full subcategory of \widehat{O}(X) having sheaves as objects. Now let’s define \mathsf{Etale}(X) to be the full subcategory of \mathsf{Top}/X having etale spaces as objects. And here’s the punchline:

Theorem. The functor

\Lambda \colon \widehat{\mathcal{O}(X)} \to \mathsf{Top}/X

is left adjoint to the functor

\Gamma \colon \mathsf{Top}/X \to \widehat{O}(X)

Moreover, if we restrict these functors to the subcategories \mathsf{Sh}(X) and \mathsf{Etale}(X), we get an equivalence of categories

\mathsf{Sh}(X) \simeq  \mathsf{Etale}(X)

The proof involves some work but also some very beautiful abstract nonsense: see Theorem 2, Corollary 3 and Lemma 4 of Section II.6. There’s a lot more to say, but this seems like a good place to stop.

7