[proofplan]
The proof has two parts. First, we show the [limit](/page/Limit) $f$ is Riemann [integrable](/page/Integral) by controlling the oscillation of $f$ on each subinterval via the uniform approximation by $f_N$, transferring the Darboux-sum estimate from $f_N$ to $f$. Second, we show the integrals converge by bounding $|\int_a^b (f_n - f)| \leq (b - a)\|f_n - f\|_\infty$ and using [uniform convergence](/page/Uniform%20Convergence).
[/proofplan]
[step:Show the uniform limit $f$ is Riemann integrable via the Darboux criterion]
Fix $\varepsilon > 0$. By [uniform convergence](/page/Uniform%20Convergence), there exists $N \in \mathbb{N}$ such that $\|f_N - f\|_\infty < \varepsilon$. Since $f_N$ is Riemann [integrable](/page/Integral), by the Darboux criterion there exists a partition $\mathcal{P} = \{a = x_0 < x_1 < \cdots < x_p = b\}$ of $[a,b]$ with $U(f_N, \mathcal{P}) - L(f_N, \mathcal{P}) < \varepsilon$.
On each subinterval $[x_{k-1}, x_k]$, the uniform bound $|f(t) - f_N(t)| < \varepsilon$ for all $t \in [x_{k-1}, x_k]$ gives
\begin{align*}
\sup_{[x_{k-1}, x_k]} f &\leq \sup_{[x_{k-1}, x_k]} f_N + \varepsilon, \\
\inf_{[x_{k-1}, x_k]} f &\geq \inf_{[x_{k-1}, x_k]} f_N - \varepsilon.
\end{align*}
Subtracting the second from the first and summing over all subintervals:
\begin{align*}
U(f, \mathcal{P}) - L(f, \mathcal{P}) &\leq \bigl(U(f_N, \mathcal{P}) - L(f_N, \mathcal{P})\bigr) + 2\varepsilon(b - a) < \varepsilon + 2\varepsilon(b - a) = \varepsilon\bigl(1 + 2(b - a)\bigr).
\end{align*}
Since $\varepsilon > 0$ was arbitrary, $U(f, \mathcal{P}) - L(f, \mathcal{P})$ can be made arbitrarily small, so $f$ is Riemann integrable by the Darboux criterion.
[guided]
We want to show $f$ is Riemann integrable. The idea is to transfer the integrability of $f_N$ to $f$ using the uniform approximation $\|f - f_N\|_\infty < \varepsilon$.
Fix $\varepsilon > 0$ and choose $N$ so that $\|f_N - f\|_\infty < \varepsilon$. Since $f_N$ is Riemann integrable, the Darboux criterion provides a partition $\mathcal{P}$ with $U(f_N, \mathcal{P}) - L(f_N, \mathcal{P}) < \varepsilon$.
How does the uniform bound $|f - f_N| < \varepsilon$ affect the oscillation of $f$? On each subinterval $[x_{k-1}, x_k]$, the supremum of $f$ is at most $\varepsilon$ above the supremum of $f_N$, and the infimum of $f$ is at most $\varepsilon$ below the infimum of $f_N$. So the oscillation of $f$ exceeds that of $f_N$ by at most $2\varepsilon$ on each subinterval:
\begin{align*}
\sup_{[x_{k-1}, x_k]} f - \inf_{[x_{k-1}, x_k]} f &\leq \left(\sup_{[x_{k-1}, x_k]} f_N - \inf_{[x_{k-1}, x_k]} f_N\right) + 2\varepsilon.
\end{align*}
Multiplying by the subinterval length $(x_k - x_{k-1})$ and summing:
\begin{align*}
U(f, \mathcal{P}) - L(f, \mathcal{P}) &\leq \bigl(U(f_N, \mathcal{P}) - L(f_N, \mathcal{P})\bigr) + 2\varepsilon(b - a) < \varepsilon(1 + 2(b - a)).
\end{align*}
Since $\varepsilon > 0$ was arbitrary, the Darboux criterion is satisfied and $f$ is Riemann integrable.
[/guided]
[/step]
[step:Show the integrals converge by bounding $|\int(f_n - f)|$ with $\|f_n - f\|_\infty$]
For each $n \in \mathbb{N}$, both $f_n$ and $f$ are Riemann integrable on $[a,b]$, so $f_n - f$ is Riemann integrable. Applying the triangle inequality for the [Riemann integral](/page/Riemann%20Integral) and the bound $|f_n(x) - f(x)| \leq \|f_n - f\|_\infty$ for all $x \in [a,b]$:
\begin{align*}
\left| \int_a^b f_n(x) \, dx - \int_a^b f(x) \, dx \right| &= \left| \int_a^b \bigl(f_n(x) - f(x)\bigr) \, dx \right| \leq \int_a^b |f_n(x) - f(x)| \, dx \leq (b - a) \|f_n - f\|_\infty.
\end{align*}
By [uniform convergence](/page/Uniform%20Convergence), $\|f_n - f\|_\infty \to 0$ as $n \to \infty$. Therefore $(b - a)\|f_n - f\|_\infty \to 0$, giving
\begin{align*}
\lim_{n \to \infty} \int_a^b f_n(x) \, dx &= \int_a^b f(x) \, dx.
\end{align*}
[/step]