Uniform limits of continuous functions
Statement
Let \( (X,d_X) \) be a metric space, let \( (f_n)_{n \in \mathbb{N}} \) be a sequence of functions \( f_n \colon X \to \mathbb{R} \), and let \( f \colon X \to \mathbb{R} \). Suppose (i) each \( f_n \) is continuous on \( X \), and (ii) \( f_n \to f \) uniformly on \( X \); that is, \[ \forall \varepsilon \gt 0 \;\exists N \in \mathbb{N} \;\forall n \geq N \;\forall x \in X : \; |f_n(x) - f(x)| \lt \varepsilon, \] equivalently \( \sup_{x \in X} |f_n(x) - f(x)| \to 0 \) as \( n \to \infty \). Then \( f \) is continuous on \( X \). The same statement, with the same proof, holds for maps \( f_n \colon X \to Y \) into any metric space \( (Y, d_Y) \), and continuity of each \( f_n \) at a single point \( x_0 \) already yields continuity of \( f \) at \( x_0 \).
Why it matters
Almost every interesting function in analysis is built as a limit: power series, Fourier series, solutions of differential and integral equations obtained by iteration, the Weierstrass nowhere-differentiable function, space-filling curves. This theorem is the licence to conclude that such constructions produce continuous objects, provided the convergence is uniform. It is the first and most important instance of the guiding question of Year 2 analysis: which properties survive a limit, and under what mode of convergence?
Structurally, the theorem says that the continuous bounded functions \( C_b(X) \) form a closed subspace of the space of bounded functions under the sup metric. Combined with completeness of \( \ell^\infty(X) \), this makes \( (C_b(X), \|\cdot\|_\infty) \) a complete space — the ambient home of the Arzelà–Ascoli theorem, the Stone–Weierstrass theorem, and the contraction-mapping proofs of Picard–Lindelöf.
Hypotheses
Proof
Fix \( x_0 \in X \) and \( \varepsilon \gt 0 \). We show \( f \) is continuous at \( x_0 \); since \( x_0 \) is arbitrary this proves the theorem. The argument is the \( \varepsilon/3 \) argument.
Result
Reading. If a sequence of continuous functions converges and the worst-case error over the whole domain tends to zero, the limit function cannot jump: continuity survives uniform limits. One good approximant \( f_N \), valid everywhere at once, is enough to control the limit near any point.
Scope. Valid on any metric space \( X \) (and, with the same proof, any topological domain), with values in any metric space \( Y \); in particular \( X \subseteq \mathbb{R} \) or \( \mathbb{R}^k \), \( Y = \mathbb{R} \) or \( \mathbb{C} \). Continuity at a single point is preserved likewise. Locally uniform convergence suffices. It does not extend to pointwise convergence, and it preserves continuity only — not differentiability (uniform limits of smooth functions can be nowhere differentiable).
Corollaries & converses
- Continuous sums of series. If \( u_k \colon X \to \mathbb{R} \) are continuous and \( \sum_k u_k \) converges uniformly (e.g. by the Weierstrass M-test: \( \sup_X |u_k| \leq M_k \) with \( \sum_k M_k \lt \infty \)), the sum is continuous — apply the theorem to the partial sums.
- Power series. A power series is continuous on the interior of its interval of convergence: convergence is uniform on every closed subinterval \( [-r, r] \) with \( r \lt R \) (M-test), and continuity is local.
- \( C_b(X) \) is complete. \( C_b(X) \) is closed in \( (\ell^\infty(X), \|\cdot\|_\infty) \), hence complete: a uniformly Cauchy sequence of continuous bounded functions converges uniformly to a continuous bounded limit. In particular \( C[a,b] \) with the sup norm is a complete space.
- Double-limit interchange. If \( f_n \to f \) uniformly and each \( \lim_{x \to x_0} f_n(x) = L_n \) exists, then \( (L_n) \) converges and \( \lim_{x \to x_0} f(x) = \lim_n L_n \): limits commute under uniform convergence.
- Converse is FALSE. Continuity of the limit does not force uniform convergence: \( f_n(x) = x^n(1-x^n) \) on \( [0,1] \) has continuous pointwise limit \( 0 \), but \( f_n\left( 2^{-1/n} \right) = \frac{1}{4} \) for all \( n \), so \( \sup |f_n| \geq \frac{1}{4} \not\to 0 \).
- Partial converse (Dini). If \( X \) is compact, \( f_n \to f \) pointwise and monotonically in \( n \), and all \( f_n \) and \( f \) are continuous, then the convergence is automatically uniform.
- Exact converse (Arzelà). For continuous \( f_n \to f \) pointwise on \( [a,b] \), continuity of \( f \) is equivalent to quasi-uniform convergence — a strictly weaker condition than uniform convergence.
Fails without
- Drop uniformity (compact domain): \( f_n(x) = x^n \) on \( [0,1] \): continuous polynomials converging pointwise to \( f = \chi_{\{1\}} \), which is discontinuous at \( 1 \). The failure is visible in the proof: at points \( x \) close to \( 1 \), the \( N \) needed for \( |f_N(x) - f(x)| \lt \varepsilon/3 \) blows up as \( x \to 1^- \).
- Drop uniformity (jump built smoothly): \( f_n(x) = \frac{1}{1 + e^{-nx}} \) on \( \mathbb{R} \): each \( f_n \) is real-analytic, yet the pointwise limit is \( 0 \) for \( x \lt 0 \), \( \frac{1}{2} \) at \( x = 0 \), \( 1 \) for \( x \gt 0 \) — discontinuous at the origin. Smoothness of every term gives no protection whatsoever.
- Drop continuity of the \( f_n \): \( f_n = \chi_{[0,\infty)} + \frac{1}{n} \) on \( \mathbb{R} \) converges uniformly (error exactly \( \frac{1}{n} \)) to the discontinuous \( \chi_{[0,\infty)} \). Uniform convergence preserves continuity; it does not create it.
- Keep uniformity but expect more than continuity: \( f_n(x) = \sqrt{x^2 + \frac{1}{n}} \to |x| \) uniformly on \( \mathbb{R} \) (error at most \( \frac{1}{\sqrt{n}} \)); every \( f_n \) is \( C^\infty \) but the limit is not differentiable at \( 0 \). The theorem transports continuity and nothing stronger.
Common errors
- Pointwise suffices. Quoting the theorem after checking only pointwise convergence. \( x^n \) on \( [0,1] \) is the canonical refutation; always compute or bound \( \sup_x |f_n(x) - f(x)| \).
- Quantifier slip. Writing "for each \( x \) choose \( N(x) \)" in Step 1. If \( N \) depends on \( x \), the three-term estimate in Step 4 is illegal, because \( x \) ranges over a whole ball after \( N \) is fixed. This single quantifier is the entire theorem.
- Illegitimate converse. Arguing "the limit is continuous, so the convergence must have been uniform." False: \( x^n(1-x^n) \) on \( [0,1] \) (see Corollaries). Dini's theorem is the correct partial converse and needs compactness plus monotonicity.
- Conflating uniform convergence with uniform continuity. They are unrelated properties: one is about a sequence, the other about a single function. (Separately: a uniform limit of uniformly continuous functions is uniformly continuous — same \( \varepsilon/3 \) proof — but that is a different statement.)
- Demanding global uniformity. Rejecting a continuity claim for \( \sum n^{-x} \) on \( (1,\infty) \) because convergence is not uniform there. Continuity is local; uniform convergence on a neighbourhood of each point suffices.
- Overclaiming the conclusion. Deducing differentiability or integrability-of-derivative statements from uniform convergence alone; \( \sqrt{x^2 + 1/n} \to |x| \) shows differentiability is not preserved.
Discussion
Historically this theorem marks the moment analysis was forced to distinguish modes of convergence. Cauchy asserted in his Cours d'analyse (1821) that a convergent series of continuous functions has a continuous sum — with only pointwise convergence in hand. Abel pointed out in 1826 that Fourier series of discontinuous functions, such as \( \sum_{n \geq 1} \frac{\sin nx}{n} \), contradict this. The repair — isolating the concept of uniform convergence — emerged with Seidel and Stokes around 1847–48 and was made systematic by Weierstrass, whose Berlin lectures turned the \( \varepsilon/3 \) argument into the template it remains today. The theorem is thus not merely a result but the birth certificate of the concept it uses.
The right way to hold the theorem is as a closure statement: inside the space \( \ell^\infty(X) \) of bounded functions with the sup metric \( d_\infty(f,g) = \sup_x |f(x) - g(x)| \), the set \( C_b(X) \) of bounded continuous functions is closed. Since \( \ell^\infty(X) \) is complete, \( C_b(X) \) is a complete metric space. This is the load-bearing fact beneath large parts of the degree: Picard iteration for ODEs runs the contraction mapping theorem inside \( C([a,b]) \); the Weierstrass function \( \sum 2^{-n} \cos(3^n \pi x) \) is continuous precisely by this theorem plus the M-test; Peano's space-filling curve is a uniform limit of continuous piecewise-linear maps.
It also calibrates expectations about what limits can and cannot preserve. Uniform convergence preserves continuity, boundedness, uniform continuity, and (on \( [a,b] \)) Riemann integrability with \( \int f_n \to \int f \); it does not preserve differentiability, and even when all derivatives exist, \( f_n' \) need not converge to \( f' \) (that requires uniform convergence of the derivatives plus convergence at one point). Meanwhile pointwise limits of continuous functions — the Baire class 1 functions — can be discontinuous, but not arbitrarily so: by the Baire category theorem their discontinuity set is meagre, so a pointwise limit of continuous functions on \( \mathbb{R} \) is continuous on a dense set. The theorem sits at the tame end of a precise hierarchy.
In topological language, the theorem says the uniform limit operation respects the subspace \( C(X,Y) \subseteq Y^X \): \( C(X,Y) \) is closed in the topology of uniform convergence (and already in the topology of locally uniform convergence, which for locally compact \( X \) coincides with the compact-open topology). The proof generalises verbatim when \( Y \) is a uniform space, and with the right notion of uniform convergence, when \( X \) is an arbitrary topological space — the domain contributes nothing but the meaning of "continuous at \( x_0 \)". The sharp boundary was located by Arzelà (1883/1899): for pointwise-convergent sequences of continuous functions on \( [a,b] \), continuity of the limit holds exactly when the convergence is quasi-uniform (for every \( \varepsilon \gt 0 \) and \( N \), finitely many indices \( n_1, \dots, n_k \geq N \) suffice so that each \( x \) has \( |f_{n_i}(x) - f(x)| \lt \varepsilon \) for some \( i \)). Uniform convergence is thus sufficient but demonstrably not necessary, and the theorem should be quoted as a one-way implication.
Common misconceptions. "Uniform" here modifies the convergence, not the functions: no uniform continuity is assumed or (in general) concluded. The theorem does not say uniform convergence is needed for a continuous limit — only that it guarantees one. And it is silent about derivatives: term-by-term differentiation is a different theorem with different hypotheses.
Worked examples
Example 1 (using the theorem forwards). Show that \( \displaystyle f(x) = \sum_{n=1}^{\infty} \frac{\cos(3^n x)}{2^n} \) defines a continuous function on \( \mathbb{R} \).
Reading. This is (up to constants) Weierstrass's celebrated example of a continuous, nowhere-differentiable function: T-044 supplies the continuity half of that story with three lines of estimates.
Scope. The same M-test-plus-T-044 pattern proves continuity for any series \( \sum u_n \) of continuous functions dominated by a summable numerical series.
Example 2 (using the theorem backwards — contrapositive). Show that \( f_n(x) = x^n \) does not converge uniformly on \( [0,1] \), without computing any suprema.
Reading. T-044 run backwards is a non-uniformity detector: a discontinuous pointwise limit of continuous functions certifies, with no computation, that the convergence cannot be uniform.
Scope. The contrapositive only fires when the limit is discontinuous. When the limit happens to be continuous (e.g. \( x^n(1-x^n) \) on \( [0,1] \)), T-044 is silent and the supremum must be estimated directly.
Problems
- Let \( f_n(x) = \dfrac{x}{1 + n x^2} \) on \( \mathbb{R} \). Show that \( f_n \to 0 \) uniformly on \( \mathbb{R} \), and confirm that the conclusion of T-044 holds.
Solution
Fix \( n \). For \( x \neq 0 \), the AM–GM inequality gives \( 1 + n x^2 \geq 2 \sqrt{n}\, |x| \), so \[ |f_n(x)| = \frac{|x|}{1 + n x^2} \leq \frac{|x|}{2 \sqrt{n}\, |x|} = \frac{1}{2\sqrt{n}}, \] and \( f_n(0) = 0 \), so \( \sup_{x \in \mathbb{R}} |f_n(x) - 0| \leq \frac{1}{2\sqrt{n}} \). (The bound is attained: \( f_n\left( \frac{1}{\sqrt{n}} \right) = \frac{1}{2\sqrt{n}} \), so the supremum equals \( \frac{1}{2\sqrt{n}} \).) Since \( \frac{1}{2\sqrt{n}} \to 0 \), the convergence is uniform on \( \mathbb{R} \). Each \( f_n \) is continuous (quotient of continuous functions with denominator \( 1 + nx^2 \geq 1 \gt 0 \)), so T-044 predicts a continuous limit — and indeed the limit \( f \equiv 0 \) is continuous, as it must be. - Let \( g_n(x) = x^n (1 - x) \) on \( [0,1] \). Show that \( g_n \to 0 \) uniformly on \( [0,1] \). Explain why this does not contradict the non-uniformity of \( x^n \) on \( [0,1] \), and why T-044 could not have been used to predict either answer here.
Solution
\( g_n \geq 0 \) on \( [0,1] \) and \( g_n(0) = g_n(1) = 0 \). Maximise: \( g_n'(x) = x^{n-1} \left( n - (n+1)x \right) \), which vanishes on \( (0,1) \) only at \( x_n = \frac{n}{n+1} \). Hence \[ \sup_{[0,1]} g_n = g_n(x_n) = \left( \frac{n}{n+1} \right)^n \frac{1}{n+1} \leq \frac{1}{n+1} \to 0, \] so \( g_n \to 0 \) uniformly. No contradiction with \( x^n \): multiplying by the factor \( (1-x) \) crushes the sequence exactly where \( x^n \) was stubborn (near \( x = 1 \)); uniform convergence is a property of a specific sequence, not of resembling one. T-044 predicts nothing in either case from continuity of the limit: both pointwise limits here would need to be found first, and for \( g_n \) the limit \( 0 \) is continuous, which is consistent with uniform and with non-uniform convergence alike (the converse of T-044 is false). The theorem only decides the case where the pointwise limit is discontinuous — which is why \( x^n \) fails uniformity by T-044, while \( g_n \) requires the direct supremum computation above. - Prove that \( \displaystyle F(x) = \sum_{n=1}^{\infty} \frac{\sin(n x)}{n^3} \) is continuous on \( \mathbb{R} \), and that \( F \) is moreover differentiable with \( F'(x) = \sum_{n=1}^{\infty} \frac{\cos(nx)}{n^2} \). (You may use the term-by-term differentiation theorem: if \( \sum u_n \) converges at one point and \( \sum u_n' \) converges uniformly on an interval, then \( \sum u_n \) converges there to a differentiable sum with derivative \( \sum u_n' \).)
Solution
Continuity. \( \left| \frac{\sin(nx)}{n^3} \right| \leq \frac{1}{n^3} \) for all \( x \), and \( \sum \frac{1}{n^3} \lt \infty \) (p-series, \( p = 3 \gt 1 \)). By the Weierstrass M-test the series converges uniformly on \( \mathbb{R} \); the partial sums are finite sums of continuous functions, hence continuous; by T-044 the sum \( F \) is continuous on \( \mathbb{R} \). Differentiability. Let \( u_n(x) = \frac{\sin(nx)}{n^3} \), so \( u_n'(x) = \frac{\cos(nx)}{n^2} \) and \( |u_n'(x)| \leq \frac{1}{n^2} \) with \( \sum \frac{1}{n^2} \lt \infty \). By the M-test, \( \sum u_n' \) converges uniformly on \( \mathbb{R} \); \( \sum u_n \) converges at \( x = 0 \) (all terms vanish). The term-by-term differentiation theorem (applied on each bounded interval \( [-R, R] \), which suffices since differentiability is local) gives that \( F \) is differentiable with \( F'(x) = \sum_{n \geq 1} \frac{\cos(nx)}{n^2} \). Finally, T-044 applies again to this last series (M-test with \( M_n = \frac{1}{n^2} \)): \( F' \) is itself continuous, so \( F \) is in fact \( C^1(\mathbb{R}) \). - Show that \( \displaystyle \zeta(x) = \sum_{n=1}^{\infty} n^{-x} \) is continuous on \( (1, \infty) \), given that the series does not converge uniformly on \( (1,\infty) \). (Hint: continuity is local.)
Solution
Local uniform convergence. Fix \( \delta \gt 0 \). For \( x \in [1+\delta, \infty) \) and \( n \geq 1 \): \( n^{-x} \leq n^{-(1+\delta)} \) (since \( t \mapsto n^{-t} = e^{-t \ln n} \) is non-increasing in \( t \) for \( n \geq 1 \)). As \( \sum_n n^{-(1+\delta)} \lt \infty \) (p-series with \( p = 1 + \delta \gt 1 \)), the M-test with \( M_n = n^{-(1+\delta)} \) gives uniform convergence of the series on \( [1+\delta, \infty) \). Each partial sum \( s_N(x) = \sum_{n=1}^{N} n^{-x} \) is continuous (finite sum of the continuous functions \( x \mapsto e^{-x \ln n} \)), so by T-044, \( \zeta \) is continuous on \( [1+\delta, \infty) \). Globalisation. Let \( x_0 \in (1, \infty) \) be arbitrary and choose \( \delta = \frac{x_0 - 1}{2} \gt 0 \); then \( x_0 \) lies in the open set \( (1 + \delta, \infty) \subseteq [1+\delta, \infty) \), on which \( \zeta \) is continuous, so \( \zeta \) is continuous at \( x_0 \). Since \( x_0 \) was arbitrary, \( \zeta \in C\left( (1,\infty) \right) \). Remark. Uniform convergence genuinely fails on all of \( (1, \infty) \): the tail \( \sum_{n \gt N} n^{-x} \to \infty \) as \( x \to 1^+ \) for each fixed \( N \), so \( \sup_{x \gt 1} \left| \zeta(x) - s_N(x) \right| = \infty \). This is the standard illustration that locally uniform convergence is the right hypothesis for continuity claims. - (Continuous convergence.) Let \( (X, d) \) be a metric space, let \( f_n \colon X \to \mathbb{R} \) be continuous with \( f_n \to f \) uniformly on \( X \), and let \( x_n \to x \) in \( X \). Prove that \( f_n(x_n) \to f(x) \). Then give an example showing the conclusion can fail if the convergence \( f_n \to f \) is only pointwise, even with all \( f_n \) continuous and \( f \) continuous.
Solution
Proof. Let \( \varepsilon \gt 0 \). By T-044, \( f \) is continuous on \( X \); in particular continuous at \( x \), so there is \( \delta \gt 0 \) with \( |f(y) - f(x)| \lt \frac{\varepsilon}{2} \) whenever \( d(y, x) \lt \delta \). By uniform convergence choose \( N_1 \) with \( \sup_{y \in X} |f_n(y) - f(y)| \lt \frac{\varepsilon}{2} \) for all \( n \geq N_1 \); since \( x_n \to x \), choose \( N_2 \) with \( d(x_n, x) \lt \delta \) for all \( n \geq N_2 \). For \( n \geq \max(N_1, N_2) \): \[ |f_n(x_n) - f(x)| \leq |f_n(x_n) - f(x_n)| + |f(x_n) - f(x)| \lt \frac{\varepsilon}{2} + \frac{\varepsilon}{2} = \varepsilon, \] where the first term used the uniform bound at the point \( x_n \) (this is exactly where uniformity is spent: \( x_n \) moves with \( n \), so a pointwise bound at a fixed point would not apply) and the second used continuity of \( f \). Hence \( f_n(x_n) \to f(x) \). Counterexample under pointwise convergence. On \( X = [0,1] \), take the tent functions \( f_n(x) = \max\left( 0,\; 1 - \left| n x - 1 \right| \right) \): each \( f_n \) is continuous, \( f_n(0) = 0 \), and for fixed \( x \gt 0 \) we have \( f_n(x) = 0 \) once \( n \geq \frac{2}{x} \); hence \( f_n \to 0 \) pointwise, and the limit \( f \equiv 0 \) is even continuous. But taking \( x_n = \frac{1}{n} \to 0 \) gives \( f_n(x_n) = f_n\left( \frac{1}{n} \right) = 1 \not\to 0 = f(0) \). The moving peak escapes every fixed point yet tracks the moving sequence \( (x_n) \) — pointwise convergence cannot control values along a moving argument, uniform convergence can.