[proofplan]
We prove right exactness of $M \otimes_R -$ by reducing to the already-established left exactness of $\operatorname{Hom}_R(-, P)$ and the [Exactness Detection via Hom](/theorems/2919) criterion. For an arbitrary test module $P$, we apply the contravariant left-exact Hom functor $\operatorname{Hom}_R(-, P)$ to the original right-exact sequence, then use the tensor-hom adjunction to identify the resulting Hom sequence with a Hom sequence out of the tensored modules. Since the Hom sequence is exact for every $P$, the exactness detection criterion forces the tensored sequence to be exact.
[/proofplan]
[step:Apply left exactness of $\operatorname{Hom}_R(-, P)$ to the original sequence]
Let $P$ be an arbitrary $R$-module. The original sequence
\begin{align*}
A \xrightarrow{f} B \xrightarrow{g} C \to 0
\end{align*}
is exact. By the [Left Exactness of Hom Functors](/theorems/2836), part (2), applied to the exact sequence $A \xrightarrow{f} B \xrightarrow{g} C \to 0$, the induced sequence
\begin{align*}
0 \to \operatorname{Hom}_R(C, P) \xrightarrow{g^*} \operatorname{Hom}_R(B, P) \xrightarrow{f^*} \operatorname{Hom}_R(A, P)
\end{align*}
is exact. In particular, $g^*$ is injective and $\operatorname{im}(g^*) = \ker(f^*)$.
[/step]
[step:Apply the covariant left-exact functor $\operatorname{Hom}_R(M, -)$ to obtain a doubly-applied Hom sequence]
The sequence
\begin{align*}
0 \to \operatorname{Hom}_R(C, P) \xrightarrow{g^*} \operatorname{Hom}_R(B, P) \xrightarrow{f^*} \operatorname{Hom}_R(A, P)
\end{align*}
is a left-exact sequence of $R$-modules (exactness at $\operatorname{Hom}_R(C, P)$ and at $\operatorname{Hom}_R(B, P)$ was established in the previous step). Applying the [Left Exactness of Hom Functors](/theorems/2836), part (1), with the module $Q = M$ to this sequence gives the exact sequence
\begin{align*}
0 \to \operatorname{Hom}_R(M, \operatorname{Hom}_R(C, P)) \xrightarrow{(g^*)_*} \operatorname{Hom}_R(M, \operatorname{Hom}_R(B, P)) \xrightarrow{(f^*)_*} \operatorname{Hom}_R(M, \operatorname{Hom}_R(A, P)).
\end{align*}
[guided]
We are building up to the tensor-hom adjunction by first creating a doubly-applied Hom sequence. The logic is:
1. Start with the original exact sequence $A \to B \to C \to 0$.
2. Apply $\operatorname{Hom}_R(-, P)$ (contravariant, left exact) to get $0 \to \operatorname{Hom}_R(C, P) \to \operatorname{Hom}_R(B, P) \to \operatorname{Hom}_R(A, P)$ exact.
3. Apply $\operatorname{Hom}_R(M, -)$ (covariant, left exact) to get $0 \to \operatorname{Hom}_R(M, \operatorname{Hom}_R(C, P)) \to \operatorname{Hom}_R(M, \operatorname{Hom}_R(B, P)) \to \operatorname{Hom}_R(M, \operatorname{Hom}_R(A, P))$ exact.
The key point is that left exactness is preserved under composition: applying a left-exact functor to a left-exact sequence produces a left-exact sequence. We apply Part (1) of the [Left Exactness of Hom Functors](/theorems/2836) with $Q = M$ and the sequence from step one as input.
[/guided]
[/step]
[step:Use the tensor-hom adjunction to rewrite the doubly-applied Hom sequence]
The tensor-hom adjunction provides, for any $R$-modules $N$ and $P$, a natural $R$-module isomorphism
\begin{align*}
\Phi_N: \operatorname{Hom}_R(M \otimes_R N, P) \xrightarrow{\sim} \operatorname{Hom}_R(M, \operatorname{Hom}_R(N, P)).
\end{align*}
Naturality in $N$ means that for any $R$-module homomorphism $h: N \to N'$, the diagram
\begin{align*}
\operatorname{Hom}_R(M \otimes_R N', P) &\xrightarrow{\Phi_{N'}} \operatorname{Hom}_R(M, \operatorname{Hom}_R(N', P)) \\
\downarrow{(\mathrm{id}_M \otimes h)^*} &\qquad\qquad\quad \downarrow{(h^*)_*} \\
\operatorname{Hom}_R(M \otimes_R N, P) &\xrightarrow{\Phi_N} \operatorname{Hom}_R(M, \operatorname{Hom}_R(N, P))
\end{align*}
commutes. Applying this with $N = A, B, C$ and $h = f, g$ respectively, the exact sequence from the previous step is isomorphic (via the $\Phi_N$) to the sequence
\begin{align*}
0 \to \operatorname{Hom}_R(M \otimes_R C, P) \xrightarrow{(\mathrm{id}_M \otimes g)^*} \operatorname{Hom}_R(M \otimes_R B, P) \xrightarrow{(\mathrm{id}_M \otimes f)^*} \operatorname{Hom}_R(M \otimes_R A, P).
\end{align*}
Since the $\Phi_N$ are isomorphisms and the naturality squares commute, an exact sequence is transported to an exact sequence. Hence the sequence above is exact.
[guided]
The tensor-hom adjunction is the bridge between the iterated Hom functors and the tensor product. The natural isomorphism $\operatorname{Hom}_R(M \otimes_R N, P) \cong \operatorname{Hom}_R(M, \operatorname{Hom}_R(N, P))$ is defined concretely by:
\begin{align*}
\Phi_N(\psi)(m)(n) = \psi(m \otimes n)
\end{align*}
for $\psi \in \operatorname{Hom}_R(M \otimes_R N, P)$, $m \in M$, $n \in N$. The naturality in $N$ says that precomposing with $\mathrm{id}_M \otimes h$ on the left side corresponds to precomposing with $h$ inside the inner Hom on the right side.
Because naturality provides commuting squares, the two vertical sides of the ladder diagram are conjugate under isomorphisms. Exactness is preserved under isomorphism of sequences: if the right-hand column is exact, the left-hand column is exact too, because kernels and images are preserved by isomorphisms of abelian groups.
[/guided]
[/step]
[step:Invoke the exactness detection criterion to conclude]
We have shown that for every $R$-module $P$, the sequence
\begin{align*}
0 \to \operatorname{Hom}_R(M \otimes_R C, P) \xrightarrow{(\mathrm{id}_M \otimes g)^*} \operatorname{Hom}_R(M \otimes_R B, P) \xrightarrow{(\mathrm{id}_M \otimes f)^*} \operatorname{Hom}_R(M \otimes_R A, P)
\end{align*}
is exact. This is a left-exact Hom sequence out of $M \otimes_R A \xrightarrow{\mathrm{id}_M \otimes f} M \otimes_R B \xrightarrow{\mathrm{id}_M \otimes g} M \otimes_R C$.
Exactness at $\operatorname{Hom}_R(M \otimes_R C, P)$ (i.e., injectivity of $(\mathrm{id}_M \otimes g)^*$) holds for every $P$. Taking $P = M \otimes_R C$ and $\gamma = \operatorname{id}_{M \otimes_R C}$: if $(\mathrm{id}_M \otimes g)^*(\gamma) = 0$, then $\gamma = 0$. The contrapositive shows that $\mathrm{id}_M \otimes g$ is surjective. Indeed, if $\mathrm{id}_M \otimes g$ were not surjective, the quotient map $\pi: M \otimes_R C \to (M \otimes_R C) / \operatorname{im}(\mathrm{id}_M \otimes g)$ would be nonzero and satisfy $\pi \circ (\mathrm{id}_M \otimes g) = 0$, giving $0 \neq \pi \in \ker((\mathrm{id}_M \otimes g)^*)$ with $P = (M \otimes_R C) / \operatorname{im}(\mathrm{id}_M \otimes g)$, contradicting injectivity.
Exactness at $\operatorname{Hom}_R(M \otimes_R B, P)$ holds for every $P$. By the [Exactness Detection via Hom](/theorems/2919) criterion, the sequence
\begin{align*}
M \otimes_R A \xrightarrow{\mathrm{id}_M \otimes f} M \otimes_R B \xrightarrow{\mathrm{id}_M \otimes g} M \otimes_R C
\end{align*}
is exact at $M \otimes_R B$.
Combining surjectivity of $\mathrm{id}_M \otimes g$ with exactness at $M \otimes_R B$, the sequence
\begin{align*}
M \otimes_R A \xrightarrow{\mathrm{id}_M \otimes f} M \otimes_R B \xrightarrow{\mathrm{id}_M \otimes g} M \otimes_R C \to 0
\end{align*}
is exact. This is the right exactness of the functor $T_M = M \otimes_R -$.
[guided]
The final step assembles the two conclusions: surjectivity of $\mathrm{id}_M \otimes g$ (exactness at $M \otimes_R C \to 0$) and exactness at $M \otimes_R B$ (the image-equals-kernel condition).
The surjectivity argument is worth spelling out. The injectivity of $(\mathrm{id}_M \otimes g)^*: \operatorname{Hom}_R(M \otimes_R C, P) \to \operatorname{Hom}_R(M \otimes_R B, P)$ for all $P$ says: any map out of $M \otimes_R C$ that vanishes after pre-composing with $\mathrm{id}_M \otimes g$ must be zero. If $\mathrm{id}_M \otimes g$ were not surjective, there would be a nonzero cokernel, and the projection onto the cokernel would be a nonzero map that vanishes on the image — contradicting injectivity of $(\mathrm{id}_M \otimes g)^*$.
The exactness at the middle term $M \otimes_R B$ follows from the [Exactness Detection via Hom](/theorems/2919) criterion, which is the converse to left exactness: if $\operatorname{Hom}_R(-, P)$ produces an exact sequence for every $P$, the original sequence is exact. This is exactly the condition we verified in the previous step.
[/guided]
[/step]