Flat modules

by ayushkhaitan3437

This post is going to be about flat modules and flat families. A brief excursion into Commutative Algebra often brings up the following fact: a module M over the ring R is flat if for every inclusion N'\subset N of R-modules the induced map M\otimes_R N'\to M\otimes_R N is again an inclusion. Beyond this intuition often goes for a toss. Why the name “flat”? What even is happening? This post is intended to remedy that for both the reader and the scribe.

First, we write about the fact that the tensor product is right exact, and not left exact. What does this mean? This means that if we have a short exact sequence 0\to A\xrightarrow{f} B\xrightarrow{g} C\to 0, then for any module M, the sequence A\otimes M\xrightarrow{f\otimes id} B\otimes M\xrightarrow{g\otimes id} C\otimes M\to 0 is exact. Why is this true? I am going to try and reproduce the explanation given in Atiyah-Macdonald’s “Commutative Algebra”, albeit in a more reader-friendly way. First of all, we notice that \text{Hom}(A\times B, C)\cong \text{Hom} (A, \text{Hom} (B,C)). Now as each bilinear map from A\times B\to C factors through A\otimes B, we have \text{Hom} (A\times B, C)\cong \text{Hom} (A\otimes B, C). Hence, \text{Hom} (A\otimes B, C)\cong \text{Hom} (A, \text{Hom} (B,C)). So where do we go from here?

The \text{Hom}(-, \text{Hom}(P,Q)) functor maps the sequence

0\to A\xrightarrow{f} B\xrightarrow{g} C\to 0 to

0\to \text{Hom}(C,\text{Hom}(P,Q))\to \text{Hom}(B,\text{Hom}(P,Q))\to \text{Hom}(A,\text{Hom}(P,Q)).

Clearly \text{Hom}(-, \text{Hom}(P,Q)) is a contravariant functor. The surjective function g becomes injective under this mapping (please try to parse what this means). This is because any change in an element of \text{Hom}(C,\text{Hom}(P,Q)) will imply a change in the corresponding element of \text{Hom}(B,\text{Hom}(P,Q)). This is precisely because of the surjection of g. The same element in C, if now being mapped differently, will imply a change of elements in \text{Hom}(C,\text{Hom}(P,Q)). Does f become a surjection? No. It does so only under special circumstances. The structure (restrictions) of B might prevent all elements of \text{Hom}(A,\text{Hom}(P,Q)) from being mapped to. Anyway. We realize that \text{Hom}(C,\text{Hom}(P,Q))\cong \text{Hom}(A\otimes P, Q), and then we take away the \text{Hom} functor. Does the injection now become a surjection? Atiyah-Macdonald asks to refer to (2.9). Turns out, yes it does. Basically, if a map is not surjective, you can can have two different maps: you map the image in the same way in both maps. However, outside of the image, you can make changes, such that the composition still remains the same. This is because the image is a submodule, and you have elements not completely dependant on this submodule outside of it. Hence, you don’t have an injective map. The only way to have an injective map is to have a surjective map to start with. Please make sense of this explanation. So we’ve now concluded that the Tensor functor is right exact. It preserves surjection, but does not preserve injection.

Consider the exact sequence E\to F\to G. A module M is flat if E\otimes M\to F\otimes M\to G\otimes M is also exact. To emphasize that this is an important property, we have to give an example of a module that is not flat. Consider the exact sequence 0\to\Bbb{Z}\xrightarrow{2x}\Bbb{Z}. This map is clearly injective, as the exactness of the sequence implies. However, the sequence 0\to \Bbb{Z}\otimes \Bbb{Z}_2\xrightarrow{2x\otimes id} \Bbb{Z}\otimes \Bbb{Z}_2 is not exact, in that the map 2x is no longer injective. Why is that? This is because every element a\otimes b\in\Bbb{Z}\otimes \Bbb{Z}_2 is mapped to 0. This is precisely because of the multiplication with 2. Hence, as there exists a short exact sequence which on tensoring with \Bbb{Z}_2 no longer remains exact, \Bbb{Z}_2 is not a flat module.

Hence, flatness is a special property. We’re now going to investigate some implications of a module M being flat.

a) If M is a flat module, and the functor T_M is a functor on the category \mathbf{Mod} which maps a module A to A\otimes M, then T_M is an exact functor. This is just a re-phrasing of the definition of a flat module.

b) If f:A\to A' is injective, then f\otimes id: A\otimes M\to A'\otimes M is injective too. How? It’s just a re-wording of the fact that the functor T_M is exact! Think about it.

c) Now we come to the real heavyweight implication. M is flat \iff “if f:A\to A' is injective and A,A' are finitely generated, then f\otimes id:A\otimes M\to A'\otimes M is injective too”. The forward direction is obvious. It follows from the definition of M being flat. In fact we do not even need A,A' to be finitely generated. But what about the converse? Essentially we want to be able to take injective maps between modules B,B' that are not finitely generated, and then be able to conclude that the corresponding map between B\otimes M\to B'\otimes M is also injective. How does the proof go? If the map between B\otimes M\to B'\otimes M is not injective, then there exists a non-zero element \sum (x_i\otimes n_i) such that \sum f(x_i)\otimes n_i=0. Clearly the x_i‘s are finite in number. Now consider the submodule \langle x_i\rangle\subset B. This is finitely generated, and clearly the elements x_i are non-zero. Now consider \langle f(x_i)\rangle\subset B'. This too is finitely generated. Also, clearly \langle x_i\rangle\to \langle f(x_i)\rangle is an injective map. By assumption, \langle x_i\rangle\otimes M\to \langle f(x_i)\rangle\otimes M too is an injective map. Now \sum (x_i\otimes n_i) is an element of \langle x_i\rangle\otimes M. Also, as \langle x_i\rangle\otimes M is nonzero in B\otimes M, it is nonzero in \langle x_i\rangle\otimes M too. Hence, we map a non-zero element to 0, which is a contradiction as the map \langle x_i\rangle\to \langle f(x_i)\rangle is injective by assumption. Hence, we have proved that the map B\otimes M\to B'\otimes M is also injective.
Now remember that the tensor functor is right-exact, but not left-exact. There is a functor called the Tor functor which measures how “far” the tensor functor is from being left-exact. We shall talk about this functor in a future blog post.