If a functor between categories of modules preserves injectivity and surjectivity, must it be exact?

To amplify, let me point out that it is not even true that an additive functor that preserves epimorphisms/surjections also preserves cokernels. For example, let $\mathcal{C}$ be the full subcategory of $\textbf{Ab}$ spanned by the torsion-free abelian groups. This category, perhaps unexpectedly, is an additive category with kernels and cokernels – but is not an abelian category. Indeed, in $\mathcal{C}$, the cokernel of $2 \cdot {-} : \mathbb{Z} \to \mathbb{Z}$ is $0$, so the inclusion $\mathcal{C} \hookrightarrow \textbf{Ab}$ is an additive functor that preserves surjections but not cokernels (or even epimorphisms in general!). In fact, $\mathcal{C} \hookrightarrow \textbf{Ab}$ is even a right adjoint, and so is left exact in particular. (When I say left/right exact, I always mean a functor that preserves finite limits/colimits.)

However, what is true is that a left exact functor $F : \mathcal{A} \to \mathcal{B}$ that preserves (normal) epimorphisms will be exact, provided $\mathcal{A}$ and $\mathcal{B}$ are both abelian. Indeed, since $\mathcal{A}$ and $\mathcal{B}$ are additive, to show that $F$ is right exact it is enough to show that it is additive and preserves cokernels. Now, it is known that a functor $\mathcal{A} \to \mathcal{B}$ that preserves finite products is automatically additive; but a left exact functor preserves finite products, so is an additive functor in particular. Consider a sequence of morphisms $$0 \longrightarrow A' \longrightarrow A \longrightarrow A'' \longrightarrow 0$$ in $\mathcal{A}$, and suppose $A' \to A$ is kernel of $A \to A''$ and $A \to A''$ is the cokernel of $A' \to A$. Since $F$ preserves kernels, we get an exact sequence $$0 \longrightarrow F A' \longrightarrow F A \longrightarrow F A''$$ in $\mathcal{B}$, and since $A \to A''$ is a (normal) epimorphism, we can extend the above to a short exact sequence in $\mathcal{B}$: $$0 \longrightarrow F A' \longrightarrow F A \longrightarrow F A'' \longrightarrow 0$$ Thus, $F$ preserves cokernels of normal monomorphisms. In general, if we have a morphism $X \to A$ in $\mathcal{A}$, we can factor it as $X \to A' \to A$ where $X \to A'$ is the cokernel of the kernel of $X \to A$, and it is not hard to show that the cokernel of $A' \to A$ is also the cokernel of $X \to A$. Since $F$ preserves all kernels and also cokernels of (normal) monomorphisms, $F$ preserves this factorisation, and therefore the cokernel of $F A' \to F A$ is also the cokernel of $F X \to F A$. However, because $\mathcal{A}$ is an abelian category, $A' \to A$ itself is a (normal) monomorphism, so $F$ preserves its cokernel. Thus $F$ actually preserves all cokernels and is therefore right exact.

Dually, of course, a right exact functor between abelian categories is exact if and only if it preserves (normal) monomorphisms. This explains the classical fact that $M$ is flat if and only if $- \otimes_R M$ preserves injective homomorphisms: $- \otimes_R M$ is a left adjoint and so right exact in particular.


No. For example, the symmetric square functor $S^2(-) : \text{Vect} \to \text{Vect}$ preserves both injective and surjective maps, but it is not exact.

Your assertion that $F$ is left exact if $F$ preserves injective maps is false without the additional assumption that $F$ is additive (edit: and now that I think about it may be false even with this assumption...?). It is true that if $F$ is an additive functor which is both left and right exact, then $F$ is exact. But there are several equivalent definitions of left exactness for an additive functor (between abelian categories) which are no longer equivalent if $F$ is not additive.