In this post I shall try to look more closely at the relationship between categories of modules and the category of rings. In fact, we shall see that they form a relatively simple example of a stack, a categorical structure which seems to pop up in a lot of areas of mathematics. This example is a simplification of an example certainly appearing in Grothendieck’s FGA, but my hope is that by looking at a purely algebraic structure (where we look at fixed modules over fixed rings rather than sheaves of modules over schemes) we might gain some intuition about the kind of `gluing’ that goes on in algebraic geometry, as distinguished from gluing data over actual different bits of a space together.

Recall that for any ring {A}, there is a category {Mod_A} of modules with coefficients in {A}. We therefore might want to argue that there is a functor from {Rng} to {Cat} which takes {A \mapsto Mod_A}. However, this doesn’t quite work. What might happen to a morphism {f:A \rightarrow B}? It must be sent to a functor {f_*: Mod_A \rightarrow Mod_B}, and the obvious choice is to consider the functor {f_*: M \mapsto B \otimes_A M}, the extension of scalars along {f}. However, although they are canonically isomorphic, it is not true that we have actual equalities {A \otimes_A M = M} or that {C \otimes_B (B \otimes_A M) = C \otimes_A M}. We are therefore in the presence of a more subtle structure, not quite a category-valued functor, but almost one.

Let us look at it another way. Let {Mod} be the category of all modules. We define the objects of {Mod} to be all pairs {(A,M)} where {A} is a ring and {M} is an {A}-module, and the arrows to be pairs of maps {(f,\phi): (A,M) \rightarrow (A',M')} where {f:A' \rightarrow A} is a ring morphism (note reversed direction) and {\phi:M \rightarrow A \otimes_{A'} M'} a morphism of {A}-modules. We define the composite {(g,\psi) \circ (f,\phi)} by taking the ring homomorphism {f \circ g: A'' \rightarrow A} and the module homomorphism {M \rightarrow A \otimes_{A'} M' \rightarrow A \otimes_{A'} (A' \otimes_{A''} M'') \cong A \otimes_{A''} M''}, where the second map is {1 \otimes \psi}.

There is an obvious `projection’ functor {p: Mod \rightarrow Rng} which retains only the ring-related data (`projection onto the first co-ordinate’). This functor has the property that whenever there is an arrow {f:A' \rightarrow A} `downstairs’, we can associate with each {A'}-module {M'} the {A}-module {A \otimes_{A'} M'} together with the identity morphism {i} on {A \otimes_{A'} M'}, and this together with {f} itself gives an arrow {\phi: A \otimes_{A'} M \rightarrow M'} of {Mod} with {p\phi = f}.

This arrow {\phi} has a nice (but in this case rather obvious) universal property. It is probably worth the reader drawing a quick picture. Whenever there is a map {(g,\psi): (B,N) \rightarrow (A',M')} upstairs, and {h:A \rightarrow B} downstairs, we can find a unique map {\theta: N \rightarrow B \otimes_A A \otimes_{A'} M'} such that {i \circ \theta = \psi}. Indeed, we can just define {\theta: n \mapsto 1 \otimes 1 \otimes \psi(n)}, and conversely check that any map which factors so must be this one. This appears to be all slightly technical and silly, but what we have checked is that {\psi} is what is called a Cartesian arrow, and that therefore {p:Mod \rightarrow Rng} is an example of a fibred category.

The reason a fibred category is called what it is can be found by thinking about {p:Mod \rightarrow Rng} as a covering projection, so we imagine the `space of modules’ covering the `space of rings’. Each object {A} of {Rng} has an associated fibre, whose objects are {p^{-1}(A)} and whose arrows {p^{-1}(id_A)} (though this inverse image notation is rather dodgy: we aren’t talking about sets here!). In our case, the fibre over {A} is equivalent to the category {Mod_A} of {A}-modules, with {A}-module morphisms (we will probably need to identify {M} with {A \otimes_A M} and technical stuff like that, so it might be clumsy to say that the categories are actually the same or isomorphic). The definition of a fibred category insists that each `path’ (arrow) downstairs has at least one `lifting’ to a Cartesian arrow, a necessary constraint, if only to rule out bad behaviour on the fibres (isomorphic objects now have to behave reasonably similarly, etc.).

At the start of the post I mentioned it seemed like we almost have a functor. Indeed, it turns out that giving a fibred category {\mathcal{F} \rightarrow \mathcal{C}} is almost the same as giving what is called a pseudo-functor {\mathcal{C}^op \rightarrow Cat}, where we associate with each element {X} of {\mathcal{C}} its fibre {p^{-1}(X)} and for each arrow {f} we pick a `pullback’ for each object (analogous to our choice of {A \otimes_A M}) and use the pullbacks to define a functor {f^*} in the opposite direction. It is often useful to think of fibred categories as analogous to category-valued presheaves, but there is something quite elegant about the `covering space’ viewpoint which this can lack.

Now, let us return to our modules. The fibred category structure was essentially trivial – just verifying a few definitions. Here comes a much more interesting property: they are also a stack, in a suitable sense. Let’s see what this means.

Firstly, we put what is called a Grothendieck topology onto {Rng}, the underlying space. This should be thought of as a collection of atlases for objects in {Rng} (though our charts need not be isomorphisms but may be any map of our choosing). In our case, all the atlases will consist of a single chart, but in more serious algebraic-geometric situations (and in almost all topological situations) they may consist of many charts. We take the faithfully flat topology consisting of atlases containing a single faithfully flat map {A \rightarrow B}. One has to think of {B} covering {A} (again, there is a reversal of direction happening from standard covering space theory: instead of working with the category of rings one would normally work with a category of schemes – geometric spaces associated with rings whose arrows are reversed, but we don’t want to bother about that here). A faithfully flat map {A \rightarrow B} is one where the operation of tensoring, {M \mapsto B \otimes_A M}, can be performed and reversed without affecting the exactness of any sequence of {B}-modules or {A}-modules. For example, all morphisms of fields are faithfully flat (if you like, by dimension counting/picking bases).

Now we will define the notion of descent. In a general setting the idea of descent is to glue together various objects which are defined on all the different `charts’ of an atlas in the topology and suitably nicely isomorphic on overlapping regions, to get one big object on the whole space. However, in our case given our atlases consist of a single chart, this kind of intuition becomes a bit ridiculous. Indeed, I wonder to what extent the idea of `gluing’ really does descent theory justice. For we shall see that even with a single covering space, constructing these gluings is far from trivial.

Suppose {A \rightarrow B} is a ring homomorphism, and consider a {B}-module {N}. It would be nice to work out whether we can write {N} in the form {B \otimes_A M} for some {A}-module {M}, and indeed all the different ways in which this is possible. Since these correspond to the pullbacks in our fibred category above, this would be very nice. Descent theory gives us a very clever answer to this simple question in the case where {A \rightarrow B} is faithfully flat.

We define descent data to be an isomorphism {\psi: N \otimes_A B \rightarrow B \otimes_A N} of {B \otimes_A B}-modules satisfying a cocycle condition, which basically says that the three different ways to lift this isomorphism to one of {B \otimes B \otimes B}-modules (by putting {B} in various places) are suitably compatible. In terms of the gluing picture, this isomorphism is an algebraic analogue of demanding that when we take the objects we wish to glue and restrict them to the intersection of two of our charts, those objects must be isomorphic. On a normal topology, {U \cap U = U}, so the case of a cover by a single set isn’t very interesting, but in a Grothendieck topology the intersection corresponds to taking a pullback, which (after we have unwound some basic facts about schemes) corresponds to the pushout of {A \rightarrow B} along itself, which is {B \otimes_A B}. The thing about the third level corresponds to a technical compatibility condition on triple intersections from the general definition. We let {Mod_{A \rightarrow B}} be the category of {B}-modules with descent data.

So what is our picture? We have {B} covering {A}, and an object (module) over {B} equipped with some descent data. We hope that we can glue it all together (whatever that means) to get an object over our base space {A}. If we look a bit closer, things look encouraging.

Firstly, if reversing our operation of tensoring by {B} is really going to correspond to descent, then for {M} an {A}-module, we should have a natural descent datum on {B \otimes_A M}. In other words, we need {\psi: B \otimes M \otimes B \rightarrow B \otimes B \otimes M} a reasonably natural looking and `nice’ (satisfying the cocycle condition) isomorphism. That generated by {b \otimes m \otimes b' \mapsto b \otimes b' \otimes m} turns out to do the trick nicely. Thus we have a nice functor {\Phi: Mod_A \rightarrow Mod_{A \rightarrow B}}, our old friend `tensor by {B}‘, which also has the obvious action on morphisms.

We now need to look for a candidate inverse functor. Notice that {(1 \otimes m) \otimes 1 \mapsto 1 \otimes (1 \otimes m)} in the example above. This gives us (admittedely tenuous) motivation to try the following. Consider the set {N^\psi := \{n \in N: \psi(n\times 1) = 1\times n\}}, which I suggestively but perhaps wrongly think of as the `module fixed by {\psi}‘. It is easy to check that {N^\psi} gives us an {A}-module associated to our {B}-module with descent data, and can be extended to a functor {\Psi: Mod_{A \rightarrow B} \rightarrow Mod_A}.

Do these functors realise all our dreams of what descent could achieve? In our case, yes!

Theorem 1 (Faithfully flat descent) Let {A \rightarrow B} be faithfully flat. Then the functors {\Phi} and {\Psi} give an equivalence of categories

\displaystyle Mod_A \simeq Mod_{A \rightarrow B}.

I shall not prove it fully in this post, but refer an interested reader to Vistoli’s marvellous article on the topic. The proof of this proposition is essentially a dance around an exact sequence

\displaystyle 0 \rightarrow N \rightarrow F \otimes N \rightarrow F \otimes F \otimes N

In the proof, the `faithfully’ is essential for getting {\Psi \Phi \cong Id} and the `flat’ is essential for {\Phi \Psi \cong Id}, in both cases by hopping between exactness in {Mod_A} and {Mod_B}.

With faithfully flat descent established, we have that the fibred category {Mod \rightarrow Rng} is indeed a stack in the faithfully flat topology (a stack is simply a fibred category in which descent works). More significantly for algebraic geometry, one is also then well on the way to the fact that the category of quasi-coherent sheaves (a geometrisation of `modules’) over the category of schemes (a geometrisation of `rings’) is a stack with respect to the fpqc topology (made up of faithfully flat and quasi-compact atlases). This result taken alone could look dangerously like an `obvious’ geometric result, but in fact because of the deeply algebraic nature of Grothendieck topologies as fine as the fpqc topology, a large proportion of its content is nothing to do with gluing in a concrete sense, and much more to do with the subtle interactions within the underlying commutative algebra. I would guess it is also thence it gains much of its power for transferring algebraic data easily between different levels.