[Corollary 1, Warfield-Purity]

Lemma 15.121.1. Let $P$ be a module over a ring $R$. The following are equivalent

1. $P$ is a direct summand of a direct sum of modules of the form $R/fR$, for $f \in R$ varying.

2. for every short exact sequence $0 \to A \to B \to C \to 0$ of $R$-modules such that $fA = A \cap fB$ for all $f \in R$ the map $\mathop{\mathrm{Hom}}\nolimits _ R(P, B) \to \mathop{\mathrm{Hom}}\nolimits _ R(P, C)$ is surjective.

Proof. Let $0 \to A \to B \to C \to 0$ be an exact sequence as in (2). To prove that (1) implies (2) it suffices to prove that $\mathop{\mathrm{Hom}}\nolimits _ R(R/fR, B) \to \mathop{\mathrm{Hom}}\nolimits _ R(R/fR, C)$ is surjective for every $f \in R$. Let $\psi : R/fR \to C$ be a map. Say $\psi (1)$ is the image of $b \in B$. Then $fb \in A$. Hence there exists an $a \in A$ such that $fa = fb$. Then $f(b - a) = 0$ hence we get a morphism $\varphi : R/fR \to B$ mapping $1$ to $b - a$ which lifts $\psi$.

Conversely, assume that (2) holds. Let $I$ be the set of pairs $(f, \varphi )$ where $f \in R$ and $\varphi : R/fR \to P$. For $i \in I$ denote $(f_ i, \varphi _ i)$ the corresponding pair. Consider the map

$B = \bigoplus \nolimits _{i \in I} R/f_ iR \longrightarrow P$

which sends the element $r$ in the summand $R/f_ iR$ to $\varphi _ i(r)$ in $P$. Let $A = \mathop{\mathrm{Ker}}(F \to P)$. Then we see that (1) is true if the sequence

$0 \to A \to B \to P \to 0$

is an exact sequence as in (2). To see this suppose $f \in R$ and $a \in A$ maps to $f b$ in $B$. Write $b = (r_ i)_{i \in I}$ with almost all $r_ i = 0$. Then we see that

$f\sum \varphi _ i(r_ i) = 0$

in $P$. Hence there is an $i_0 \in I$ such that $f_{i_0} = f$ and $\varphi _{i_0}(1) = \sum \varphi _ i(r_ i)$. Let $x_{i_0} \in R/f_{i_0}R$ be the class of $1$. Then we see that

$a = (r_ i)_{i \in I} - (0, \ldots , 0, x_{i_0}, 0, \ldots )$

is an element of $A$ and $fa = b$ as desired. $\square$

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).