Lemma 18.28.14. Let $(\mathcal{C}, \mathcal{O})$ be a ringed site. Let $\mathcal{F}$ be an $\mathcal{O}$-module. The following are equivalent

1. $\mathcal{F}$ is a flat $\mathcal{O}$-module.

2. Let $U$ be an object of $\mathcal{C}$ and let

$\mathcal{O}_ U \xrightarrow {(f_1, \ldots , f_ n)} \mathcal{O}_ U^{\oplus n} \xrightarrow {(s_1, \ldots , s_ n)} \mathcal{F}|_ U$

be a complex of $\mathcal{O}_ U$-modules. Then there exists a covering $\{ U_ i \to U\}$ and for each $i$ a factorization

$\mathcal{O}_{U_ i}^{\oplus n} \xrightarrow {B_ i} \mathcal{O}_{U_ i}^{\oplus l_ i} \xrightarrow {(t_{i1}, \ldots , t_{il_ i})} \mathcal{F}|_{U_ i}$

of $(s_1, \ldots , s_ n)|_{U_ i}$ such that $B_ i \circ (f_1, \ldots , f_ n)|_{U_ i} = 0$.

3. Let $U$ be an object of $\mathcal{C}$ and let

$\mathcal{O}_ U^{\oplus m} \xrightarrow {A} \mathcal{O}_ U^{\oplus n} \xrightarrow {(s_1, \ldots , s_ n)} \mathcal{F}|_ U$

be a complex of $\mathcal{O}_ U$-modules. Then there exists a covering $\{ U_ i \to U\}$ and for each $i$ a factorization

$\mathcal{O}_{U_ i}^{\oplus n} \xrightarrow {B_ i} \mathcal{O}_{U_ i}^{\oplus l_ i} \xrightarrow {(t_{i1}, \ldots , t_{il_ i})} \mathcal{F}|_{U_ i}$

of $(s_1, \ldots , s_ n)|_{U_ i}$ such that $B_ i \circ A|_{U_ i} = 0$.

Proof. Assume (1). Let $\mathcal{I} \subset \mathcal{O}_ U$ be the sheaf of ideals generated by $f_1, \ldots , f_ n$. Then $\sum f_ j \otimes s_ j$ is a section of $\mathcal{I} \otimes _{\mathcal{O}_ U} \mathcal{F}|_ U$ which maps to zero in $\mathcal{F}|_ U$. As $\mathcal{F}|_ U$ is flat (Lemma 18.28.6) the map $\mathcal{I} \otimes _{\mathcal{O}_ U} \mathcal{F}|_ U \to \mathcal{F}|_ U$ is injective. Since $\mathcal{I} \otimes _{\mathcal{O}_ U} \mathcal{F}|_ U$ is the sheaf associated to the presheaf tensor product, we see there exists a covering $\{ U_ i \to U\}$ such that $\sum f_ j|_{U_ i} \otimes s_ j|_{U_ i}$ is zero in $\mathcal{I}(U_ i) \otimes _{\mathcal{O}(U_ i)} \mathcal{F}(U_ i)$. Unwinding the definitions using Algebra, Lemma 10.107.10 we find $t_{i1}, \ldots , t_{i l_ i} \in \mathcal{F}(U_ i)$ and $a_{ijk} \in \mathcal{O}(U_ i)$ such that $\sum _ j a_{ijk}f_ j|_{U_ i} = 0$ and $s_ j|_{U_ i} = \sum _ k a_{ijk}t_{ik}$. Thus (2) holds.

Assume (2). Let $U$, $n$, $m$, $A$ and $s_1, \ldots , s_ n$ as in (3) be given. Observe that $A$ has $m$ columns. We will prove the assertion of (3) is true by induction on $m$. For the base case $m = 0$ we can use the factorization through the zero sheaf (in other words $l_ i = 0$). Let $(f_1, \ldots , f_ n)$ be the last column of $A$ and apply (2). This gives new diagrams

$\mathcal{O}_{U_ i}^{\oplus m} \xrightarrow {B_ i \circ A|_{U_ i}} \mathcal{O}_{U_ i}^{\oplus l_ i} \xrightarrow {(t_{i1}, \ldots , t_{il_ i})} \mathcal{F}|_{U_ i}$

but the first column of $A_ i = B_ i \circ A|_{U_ i}$ is zero. Hence we can apply the induction hypothesis to $U_ i$, $l_ i$, $m - 1$, the matrix consisting of the first $m - 1$ columns of $A_ i$, and $t_{i1}, \ldots , t_{il_ i}$ to get coverings $\{ U_{ij} \to U_ j\}$ and factorizations

$\mathcal{O}_{U_{ij}}^{\oplus l_ i} \xrightarrow {C_{ij}} \mathcal{O}_{U_{ij}}^{\oplus k_{ij}} \xrightarrow {(v_{ij1}, \ldots , v_{ij k_{ij}})} \mathcal{F}|_{U_{ij}}$

of $(t_{i1}, \ldots , t_{il_ i})|_{U_{ij}}$ such that $C_ i \circ B_ i|_{U_{ij}} \circ A|_{U_{ij}} = 0$. Then $\{ U_{ij} \to U\}$ is a covering and we get the desired factorizations using $B_{ij} = C_ i \circ B_ i|_{U_{ij}}$ and $v_{ija}$. In this way we see that (2) implies (3).

Assume (3). Let $\mathcal{G} \to \mathcal{H}$ be an injective homomorphism of $\mathcal{O}$-modules. We have to show that $\mathcal{G} \otimes _\mathcal {O} \mathcal{F} \to \mathcal{H} \otimes _\mathcal {O} \mathcal{F}$ is injective. Let $U$ be an object of $\mathcal{C}$ and let $s \in (\mathcal{G} \otimes _\mathcal {O} \mathcal{F})(U)$ be a section which maps to zero in $\mathcal{H} \otimes _\mathcal {O} \mathcal{F}$. We have to show that $s$ is zero. Since $\mathcal{G} \otimes _\mathcal {O} \mathcal{F}$ is a sheaf, it suffices to find a covering $\{ U_ i \to U\} _{i \in I}$ of $\mathcal{C}$ such that $s|_{U_ i}$ is zero for all $i \in I$. Hence we may always replace $U$ by the members of a covering. In particular, since $\mathcal{G} \otimes _\mathcal {O} \mathcal{F}$ is the sheafification of $\mathcal{G} \otimes _{p, \mathcal{O}} \mathcal{F}$ we may assume that $s$ is the image of $s' \in \mathcal{G}(U) \otimes _{\mathcal{O}(U)} \mathcal{F}(U)$. Arguing similarly for $\mathcal{H} \otimes _\mathcal {O} \mathcal{F}$ we may assume that $s'$ maps to zero in $\mathcal{H}(U) \otimes _{\mathcal{O}(U)} \mathcal{F}(U)$. Write $\mathcal{F}(U) = \mathop{\mathrm{colim}}\nolimits M_\alpha$ as a filtered colimit of finitely presented $\mathcal{O}(U)$-modules $M_\alpha$ (Algebra, Lemma 10.11.3). Since tensor product commutes with filtered colimits (Algebra, Lemma 10.12.9) we can choose an $\alpha$ such that $s'$ comes from some $s'' \in \mathcal{G}(U) \otimes _{\mathcal{O}(U)} M_\alpha$ and such that $s''$ maps to zero in $\mathcal{H}(U) \otimes _{\mathcal{O}(U)} M_\alpha$. Fix $\alpha$ and $s''$. Choose a presentation

$\mathcal{O}(U)^{\oplus m} \xrightarrow {A} \mathcal{O}(U)^{\oplus n} \to M_\alpha \to 0$

We apply (3) to the corresponding complex of $\mathcal{O}_ U$-modules

$\mathcal{O}_ U^{\oplus m} \xrightarrow {A} \mathcal{O}_ U^{\oplus n} \xrightarrow {(s_1, \ldots , s_ n)} \mathcal{F}|_ U$

After replacing $U$ by the members of the covering $U_ i$ we find that the map

$M_\alpha \to \mathcal{F}(U)$

factors through a free module $\mathcal{O}(U)^{\oplus l}$ for some $l$. Since $\mathcal{G}(U) \to \mathcal{H}(U)$ is injective we conclude that

$\mathcal{G}(U) \otimes _{\mathcal{O}(U)} \mathcal{O}(U)^{\oplus l} \to \mathcal{H}(U) \otimes _{\mathcal{O}(U)} \mathcal{O}(U)^{\oplus l}$

is injective too. Hence as $s''$ maps to zero in the module on the right, it also maps to zero in the module on the left, i.e., $s$ is zero 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).