The Bolzano–Weierstrass theorem
Statement
Let \( (x_n)_{n \in \mathbb{N}} \) be a sequence of real numbers that is bounded: there exists \( M \gt 0 \) such that \( |x_n| \le M \) for every \( n \in \mathbb{N} \). Then \( (x_n) \) possesses a convergent subsequence; that is, there exist a strictly increasing map \( k \mapsto n_k \) of \( \mathbb{N} \) into \( \mathbb{N} \) and a real number \( x \in [-M, M] \) such that \( \lim_{k \to \infty} x_{n_k} = x \). The hypotheses are: (i) the terms lie in \( \mathbb{R} \) (a complete ordered field), and (ii) the sequence is bounded. No monotonicity, no convergence, and no structure beyond boundedness is assumed.
Why it matters
The Bolzano–Weierstrass theorem is the workhorse compactness principle of one-variable analysis. It converts the crude quantitative information “the terms stay inside a bounded set” into the qualitative conclusion “some infinite pattern of terms actually settles down.” Almost every existence theorem of a first analysis course — the Extreme Value Theorem, the completeness of \( \mathbb{R} \) via Cauchy sequences, the sequential Heine–Borel theorem, uniform continuity on closed bounded intervals — is proved by extracting a convergent subsequence with Bolzano–Weierstrass and passing to the limit.
Conceptually, it is the sequential face of compactness: it says exactly that closed bounded intervals \( [a,b] \subseteq \mathbb{R} \) are sequentially compact. Its failure in \( \mathbb{Q} \) and in infinite-dimensional normed spaces marks the precise boundary where finite-dimensional real analysis ends and functional analysis begins.
Hypotheses
Proof
We argue by repeated bisection and the Nested Interval Property. Throughout, “\( I \) contains infinitely many terms of the sequence” means \( \{ n \in \mathbb{N} : x_n \in I \} \) is an infinite set of indices (repeated values count with their indices).
Result
Reading. If infinitely many real numbers are confined to a set of finite length, they cannot all keep their distance from one another: some infinite thread of them must cluster around a single point, and following that thread gives a convergent subsequence. Boundedness alone forces a limit point.
Scope. Valid for real sequences, and (by componentwise extraction) for sequences in \( \mathbb{R}^d \) and \( \mathbb{C}^d \) for any fixed finite \( d \). It fails in \( \mathbb{Q} \) (no completeness) and in every infinite-dimensional normed space (bounded sets need not be totally bounded). It guarantees existence of a subsequential limit, not convergence of the original sequence, and says nothing about which point the subsequence finds when several cluster points exist.
Corollaries & converses
- Bolzano–Weierstrass in \( \mathbb{R}^d \). A bounded sequence in \( \mathbb{R}^d \) has a convergent subsequence: extract a subsequence converging in the first coordinate, then a further subsequence for the second, and so on through the \( d \) coordinates (a finite diagonal argument).
- Sequential compactness of \( [a,b] \). Every sequence in a closed bounded interval has a subsequence converging to a point of that interval (the limit stays in \( [a,b] \) because closed intervals are closed under limits). This is the sequential Heine–Borel theorem.
- Completeness via Cauchy sequences. Every Cauchy sequence in \( \mathbb{R} \) converges: Cauchy sequences are bounded, Bolzano–Weierstrass provides a convergent subsequence, and a Cauchy sequence with a convergent subsequence converges to that same limit.
- Cluster-point criterion for convergence. A bounded sequence converges if and only if all its convergent subsequences share one limit; equivalently, iff \( \liminf x_n = \limsup x_n \).
- Converse: FALSE. Having a convergent subsequence does not imply boundedness: define \( x_n = 0 \) for even \( n \) and \( x_n = n \) for odd \( n \). Then \( x_{2k} \to 0 \), yet the sequence is unbounded. The theorem is a one-way implication.
- Partial converse that is true. If every subsequence of \( (x_n) \) has a further convergent subsequence, then \( (x_n) \) is bounded (an unbounded sequence has a subsequence \( |x_{n_k}| \ge k \), which admits no convergent further subsequence).
Fails without
- Boundedness dropped: \( x_n = n \). Any subsequence satisfies \( x_{n_k} = n_k \ge k \), so it diverges to \( +\infty \); no subsequence converges. Even one-sided boundedness is not enough: \( x_n = (-1)^n n \) is neither bounded above nor below and \( x_n = -n \) is bounded above only — both have no convergent subsequence.
- Completeness dropped (work in \( \mathbb{Q} \)): \( x_1 = 1.4, \ x_2 = 1.41, \ x_3 = 1.414, \dots \), the decimal truncations of \( \sqrt{2} \). Bounded in \( [1,2] \cap \mathbb{Q} \), but every subsequence converges in \( \mathbb{R} \) to the irrational \( \sqrt{2} \), so by uniqueness of limits no subsequence converges to any element of \( \mathbb{Q} \). Inside \( \mathbb{Q} \) the theorem is false.
- Finite dimension dropped: in \( \ell^2 \), the standard orthonormal vectors \( e_n \) satisfy \( \lVert e_n \rVert = 1 \) and \( \lVert e_n - e_m \rVert = \sqrt{2} \) for \( n \neq m \). No subsequence is Cauchy, so none converges: the closed unit ball of \( \ell^2 \) is bounded and closed but not sequentially compact.
Common errors
- Concluding the sequence itself converges. \( x_n = (-1)^n \) is bounded; Bolzano–Weierstrass gives convergent subsequences (\( x_{2k} \to 1 \), \( x_{2k+1} \to -1 \)) but the sequence diverges. The theorem never upgrades to full convergence without extra input.
- “Infinitely many terms” vs “all but finitely many”. In the bisection step, the chosen half contains infinitely many indices, not a tail of the sequence. Students who assume the half contains all sufficiently late terms prove (falsely) that the whole sequence converges.
- Non-increasing index selection. Picking, at stage \( k \), any index with \( x_n \in I_k \) may repeat or decrease indices; one must demand \( n_{k+1} \gt n_k \) explicitly, which is why Step 6 minimises over \( n \gt n_k \). Without strict increase the object built is not a subsequence.
- Counting values instead of indices. For the constant sequence \( x_n = 5 \), the set of values \( \{5\} \) is finite, but the theorem applies perfectly well: the index set is infinite and \( x_{n_k} = 5 \to 5 \). The related “every bounded infinite set has a limit point” is a different (though equivalent-in-spirit) statement.
- Applying the theorem in the wrong space. Extracting a “convergent” subsequence of rationals inside \( \mathbb{Q} \), or of functions in an infinite-dimensional space, silently imports completeness or compactness that is not there.
Discussion
Historically the result descends from Bernard Bolzano’s 1817 pamphlet on the intermediate value theorem, where a bisection argument of exactly this shape first appears in print; Karl Weierstrass rediscovered and popularised it in his Berlin lectures of the 1860s–70s as a cornerstone of the arithmetised analysis programme. The modern name honours both. The theorem was a decisive step in replacing geometric intuition about the continuum with proofs that run on the completeness axiom alone.
There is a second classical proof worth knowing: the peak point lemma. Call \( n \) a peak of \( (x_n) \) if \( x_n \ge x_m \) for all \( m \gt n \). If there are infinitely many peaks, they enumerate a decreasing subsequence; if only finitely many, one can climb past the last peak to build an increasing subsequence. Either way every real sequence — bounded or not — has a monotone subsequence, and the Monotone Convergence Theorem then finishes the bounded case. The bisection proof generalises to \( \mathbb{R}^d \) (bisect boxes into \( 2^d \) sub-boxes); the peak proof does not, because \( \mathbb{R}^d \) has no useful total order.
Bolzano–Weierstrass sits in a tight web of equivalences over the ordered-field axioms: the least upper bound property, the Monotone Convergence Theorem, the Nested Interval Property together with the Archimedean property, Cauchy completeness together with the Archimedean property, and Bolzano–Weierstrass itself are all equivalent formulations of the completeness of \( \mathbb{R} \). In the vocabulary of topology, the theorem says closed bounded subsets of \( \mathbb{R} \) are sequentially compact; for metric spaces sequential compactness coincides with cover compactness, so this is the sequential shadow of the Heine–Borel theorem. Its descendants in function spaces — the Arzelà–Ascoli theorem, Helly’s selection theorem, and weak-\( * \) compactness (Banach–Alaoglu) — all answer the question the naive theorem cannot: what replaces boundedness when the ambient space is infinite-dimensional?
Foundationally, the theorem is not constructively valid: over Bishop-style constructive mathematics, Bolzano–Weierstrass implies the limited principle of omniscience (LPO), since deciding towards which half-interval infinitely many terms fall encodes a decision about an arbitrary binary sequence. In reverse mathematics it is precisely calibrated: over the base theory \( \mathsf{RCA}_0 \), Bolzano–Weierstrass is equivalent to arithmetical comprehension \( \mathsf{ACA}_0 \), strictly stronger than the Heine–Borel covering lemma for \( [0,1] \), which is equivalent to weak König’s lemma \( \mathsf{WKL}_0 \). The sequential and covering forms of compactness, interchangeable in classical practice, thus have measurably different logical strength. Note also that the classical proof above, with leftmost-half and least-index choices, avoids the Axiom of Choice entirely.
Common misconceptions. The theorem does not say bounded sequences converge, does not produce a unique or canonical limit (a bounded sequence can have any closed bounded nonempty set as its set of subsequential limits), and does not hold “in any space”: it is a theorem about \( \mathbb{R}^d \), purchased with completeness and finite dimension. Nor is the subsequence ever asserted to be a tail of the original sequence.
Worked examples
Example 1. Let \( x_n = (-1)^n \left( 1 + \frac{1}{n} \right) \). Show that Bolzano–Weierstrass applies, exhibit a convergent subsequence explicitly, and determine every subsequential limit.
Reading. Bolzano–Weierstrass promised at least one cluster point; explicit extraction found both of them, and a parity argument shows there are no others. The sequence itself diverges, illustrating that the theorem delivers subsequences, not limits of the whole sequence.
Scope. The parity technique determines all subsequential limits whenever the sequence is a finite interleaving of convergent strands.
Example 2. Use Bolzano–Weierstrass to prove: every continuous \( f : [a,b] \to \mathbb{R} \) is bounded (the first half of the Extreme Value Theorem).
Reading. If \( f \) tried to blow up, its blow-up points would cluster (Bolzano–Weierstrass), and continuity at the cluster point would cap the values — a contradiction. Compactness of the domain converts local control (continuity) into global control (boundedness).
Scope. The argument needs the domain closed and bounded: \( f(t) = 1/t \) on \( (0,1] \) and \( f(t) = t \) on \( [0,\infty) \) are continuous but unbounded.
Problems
- Show that \( x_n = \cos\!\left( \frac{n\pi}{3} \right) \) has a convergent subsequence, and find all of its subsequential limits.
Solution
Since \( |\cos \theta| \le 1 \) for all \( \theta \), the sequence is bounded by \( M = 1 \) and Bolzano–Weierstrass guarantees a convergent subsequence. In fact the sequence is periodic with period \( 6 \): its values cycle through \[ \cos\frac{\pi}{3} = \tfrac{1}{2}, \ \cos\frac{2\pi}{3} = -\tfrac{1}{2}, \ \cos\pi = -1, \ \cos\frac{4\pi}{3} = -\tfrac{1}{2}, \ \cos\frac{5\pi}{3} = \tfrac{1}{2}, \ \cos 2\pi = 1, \] and then repeats. For each residue \( r \in \{1, \dots, 6\} \) the subsequence \( (x_{6k + r})_k \) is constant, hence converges to that constant. Therefore \( \tfrac{1}{2}, -\tfrac{1}{2}, -1, 1 \) are subsequential limits. Conversely, any convergent subsequence takes values in the finite set \( \{ \pm\tfrac{1}{2}, \pm 1 \} \); a convergent sequence in a finite set is eventually constant (take \( \varepsilon \) smaller than the minimum gap, here \( \varepsilon = \tfrac{1}{4} \)), so its limit lies in that set. Hence the set of subsequential limits is exactly \( \left\{ -1, -\tfrac{1}{2}, \tfrac{1}{2}, 1 \right\} \).
- Prove: a bounded sequence \( (x_n) \) converges if and only if all of its convergent subsequences have the same limit.
Solution
(\( \Rightarrow \)) If \( x_n \to L \) then every subsequence converges to \( L \): given \( \varepsilon \gt 0 \) choose \( N \) with \( |x_n - L| \lt \varepsilon \) for \( n \ge N \); since \( n_k \ge k \), all \( k \ge N \) give \( |x_{n_k} - L| \lt \varepsilon \).
(\( \Leftarrow \)) Suppose every convergent subsequence has limit \( L \), but \( x_n \not\to L \). Negating convergence: there is \( \varepsilon_0 \gt 0 \) and a strictly increasing sequence of indices \( m_1 \lt m_2 \lt \cdots \) with \( |x_{m_j} - L| \ge \varepsilon_0 \) for all \( j \). The subsequence \( (x_{m_j}) \) is bounded (it inherits the bound \( M \)), so by Bolzano–Weierstrass it has a further subsequence \( x_{m_{j_i}} \to L' \) for some \( L' \). Passing to the limit in \( |x_{m_{j_i}} - L| \ge \varepsilon_0 \) (limits preserve non-strict inequalities) gives \( |L' - L| \ge \varepsilon_0 \gt 0 \), so \( L' \neq L \). But \( (x_{m_{j_i}}) \) is a convergent subsequence of the original sequence, so by hypothesis \( L' = L \) — contradiction. Hence \( x_n \to L \). Note where boundedness earned its keep: without it, \( (x_{m_j}) \) might have no convergent further subsequence at all (e.g. \( x_n = n \) vacuously satisfies “all convergent subsequences agree” yet diverges).
- Using Bolzano–Weierstrass, prove that every Cauchy sequence of real numbers converges.
Solution
Step 1: Cauchy sequences are bounded. Take \( \varepsilon = 1 \) in the Cauchy condition: there is \( N \) with \( |x_n - x_m| \lt 1 \) for all \( n, m \ge N \). Then for \( n \ge N \), \( |x_n| \le |x_N| + 1 \), so \[ |x_n| \le \max\left( |x_1|, \dots, |x_{N-1}|, \, |x_N| + 1 \right) \ \ \forall n. \]
Step 2: extract a convergent subsequence. By Bolzano–Weierstrass there exist \( n_1 \lt n_2 \lt \cdots \) and \( x \in \mathbb{R} \) with \( x_{n_k} \to x \).
Step 3: the whole sequence converges to \( x \). Let \( \varepsilon \gt 0 \). Choose \( N_1 \) with \( |x_n - x_m| \lt \frac{\varepsilon}{2} \) for \( n, m \ge N_1 \) (Cauchy), and choose \( K \) with \( n_K \ge N_1 \) and \( |x_{n_K} - x| \lt \frac{\varepsilon}{2} \) (subsequence convergence plus \( n_k \ge k \to \infty \)). Then for every \( n \ge N_1 \), \[ |x_n - x| \le |x_n - x_{n_K}| + |x_{n_K} - x| \lt \frac{\varepsilon}{2} + \frac{\varepsilon}{2} = \varepsilon \] by the triangle inequality. Hence \( x_n \to x \). This shows \( \mathbb{R} \) is a complete metric space, with Bolzano–Weierstrass carrying the entire load.
- Let \( (x_n) \) be a bounded sequence and let \[ S = \{ L \in \mathbb{R} : \ \text{some subsequence of } (x_n) \text{ converges to } L \} . \] Prove that \( S \) is nonempty, bounded, and closed.
Solution
Nonempty: immediate from Bolzano–Weierstrass, since \( (x_n) \) is bounded.
Bounded: if \( |x_n| \le M \) for all \( n \) and \( x_{n_k} \to L \), then passing to the limit in \( |x_{n_k}| \le M \) gives \( |L| \le M \). So \( S \subseteq [-M, M] \).
Closed: let \( L_j \in S \) with \( L_j \to L \); we must produce a single subsequence of \( (x_n) \) converging to \( L \). Build indices recursively. Given \( n_{k-1} \) (with \( n_0 = 0 \)): choose \( j \) with \( |L_j - L| \lt \frac{1}{2k} \) (possible since \( L_j \to L \)); since some subsequence of \( (x_n) \) converges to \( L_j \), infinitely many indices \( n \) satisfy \( |x_n - L_j| \lt \frac{1}{2k} \), so we may pick the least such \( n \gt n_{k-1} \) and call it \( n_k \). Then \[ |x_{n_k} - L| \le |x_{n_k} - L_j| + |L_j - L| \lt \frac{1}{2k} + \frac{1}{2k} = \frac{1}{k}, \] and \( n_1 \lt n_2 \lt \cdots \) by construction, so \( x_{n_k} \to L \) and \( L \in S \). (The set \( S \) is exactly \( \left[ \liminf x_n, \, \limsup x_n \right] \cap S \) with \( \liminf x_n = \min S \) and \( \limsup x_n = \max S \); nonemptiness of \( S \) is one standard route to proving those extremal subsequential limits exist.)
- (a) Deduce the Bolzano–Weierstrass theorem for \( \mathbb{R}^2 \) from the real case: every bounded sequence \( \left( (x_n, y_n) \right)_n \) in \( \mathbb{R}^2 \) has a convergent subsequence. (b) Show that the analogous statement fails in \( \ell^2 \), and identify exactly which part of your proof of (a) breaks.
Solution
(a) Boundedness in \( \mathbb{R}^2 \) (say \( \sqrt{x_n^2 + y_n^2} \le M \)) gives \( |x_n| \le M \) and \( |y_n| \le M \). Apply Bolzano–Weierstrass to \( (x_n) \): there are indices \( n_1 \lt n_2 \lt \cdots \) and \( x \in \mathbb{R} \) with \( x_{n_k} \to x \). The sequence \( (y_{n_k})_k \) is still bounded by \( M \), so apply Bolzano–Weierstrass again to it: there is a sub-subsequence \( y_{n_{k_i}} \to y \). Crucially, the first coordinate survives the second extraction: \( \left( x_{n_{k_i}} \right)_i \) is a subsequence of the convergent \( \left( x_{n_k} \right)_k \), hence still converges to \( x \). Then \[ \left\lVert (x_{n_{k_i}}, y_{n_{k_i}}) - (x, y) \right\rVert = \sqrt{ (x_{n_{k_i}} - x)^2 + (y_{n_{k_i}} - y)^2 } \to 0 , \] since each term under the root tends to \( 0 \). By induction the same works in \( \mathbb{R}^d \) with \( d \) successive extractions.
(b) In \( \ell^2 \) take the orthonormal sequence \( e_n \) (the \( n \)-th standard basis vector). It is bounded (\( \lVert e_n \rVert = 1 \)), but for \( n \neq m \), \[ \lVert e_n - e_m \rVert^2 = \langle e_n - e_m, \, e_n - e_m \rangle = \lVert e_n \rVert^2 + \lVert e_m \rVert^2 = 2, \] so any two distinct terms are at distance \( \sqrt{2} \). A convergent subsequence would be Cauchy, hence eventually within \( \frac{\sqrt{2}}{2} \) of itself — impossible. What breaks in the proof scheme of (a): it relies on finitely many successive coordinate extractions. In \( \ell^2 \) there are infinitely many coordinates; a diagonal argument does give a subsequence converging coordinatewise (indeed \( e_n \to 0 \) coordinatewise), but coordinatewise convergence no longer implies norm convergence, because the norm sums contributions from all coordinates at once (here \( \lVert e_n - 0 \rVert = 1 \not\to 0 \)). Boundedness plus closedness ceases to imply compactness precisely when the dimension becomes infinite.