The Stacks project

Lemma 15.22.11. Let $A$ be a Dedekind domain (for example a discrete valuation ring or more generally a PID).

  1. An $A$-module is flat if and only if it is torsion free.

  2. A finite torsion free $A$-module is finite locally free.

  3. A finite torsion free $A$-module is finite free if $A$ is a PID.

Proof. Proof of (1). Since a PID is a Dedekind domain (Algebra, Lemma 10.120.15), it suffices to prove this for Dedekind domains. By Lemma 15.22.6 and Algebra, Lemma 10.39.18 it suffices to check the statement over $A_\mathfrak m$ for $\mathfrak m \subset A$ maximal. Since $A_\mathfrak m$ is a discrete valuation ring (Algebra, Lemma 10.120.17) we win by Lemma 15.22.10.

Proof of (2). Follows from Algebra, Lemma 10.78.2 and (1).

Proof of (3). Let $A$ be a PID and let $M$ be a finite torsion free module. By Lemma 15.22.7 we see that $M \subset A^{\oplus n}$ for some $n$. We argue that $M$ is free by induction on $n$. The case $n = 1$ expresses exactly the fact that $A$ is a PID. If $n > 1$ let $M' \subset R^{\oplus n - 1}$ be the image of the projection onto the last $n - 1$ summands of $R^{\oplus n}$. Then we obtain a short exact sequence $0 \to I \to M \to M' \to 0$ where $I$ is the intersection of $M$ with the first summand $R$ of $R^{\oplus n}$. By induction we see that $M$ is an extension of finite free $R$-modules, whence finite free. $\square$

Comments (2)

Comment #3540 by Laurent Moret-Bailly on

Typo in proof of (3): "induction on ". Also, why write "PID or discrete valuation ring" since one class contains the other?

Post a comment

Your email address will not be published. Required fields are marked.

In your comment you can use Markdown and LaTeX style mathematics (enclose it like $\pi$). A preview option is available if you wish to see how it works out (just click on the eye in the toolbar).

Unfortunately JavaScript is disabled in your browser, so the comment preview function will not work.

All contributions are licensed under the GNU Free Documentation License.

In order to prevent bots from posting comments, we would like you to prove that you are human. You can do this by filling in the name of the current tag in the following input field. As a reminder, this is tag 0AUW. Beware of the difference between the letter 'O' and the digit '0'.