Uniqueness of Limits and Boundedness

Suppose a sequence of real numbers is said to "converge to LL." A natural question arises immediately. Could the same sequence also converge to some different number MM? If a sequence could have two distinct limits, the very notation lim⁡n→∞an=L\lim_{n\to\infty} a_n = L would be meaningless. We could never say the limit — only a limit among possibly many. The first order of business in any rigorous treatment of sequences is therefore to prove that this cannot happen. Limits, when they exist, are unique. A second, closely related question concerns the overall size of a convergent sequence. If an→La_n \to L, the terms eventually cluster tightly around LL. But does that control the sequence's behavior everywhere? This includes its first hundred, or first million, terms. It turns out that convergence forces the entire sequence to stay confined within some fixed finite range. This applies not just to its tail, but to the whole sequence. This is the statement that every convergent sequence is bounded. These two facts are foundational rather than flashy. They do not compute anything or solve an equation. Instead they certify that the machinery of limits is well-posed and well-behaved. Uniqueness guarantees the symbol lim⁡an\lim a_n refers to a single well-defined object. This ensures all subsequent algebra with limits (sums, products, quotients) makes sense. Boundedness is the first structural constraint that convergence imposes. It is exactly the property used later to rule out sequences from converging. An unbounded sequence can never converge. It is also used to build tools like the Monotone Convergence Theorem, the Bolzano–Weierstrass Theorem, and the Algebraic Limit Theorems for sums and products of sequences. This article gives complete ε\varepsilon–NN proofs of both facts from the Epsilon-N Definition of a Limit. It develops the intuition behind why each is true. It also shows precisely why every hypothesis in each theorem is necessary, by exhibiting what fails when it is dropped.

Key takeaways
  • A convergent sequence cannot converge to two different limits — the limit, when it exists, is unique.
  • Uniqueness is proved by assuming two limits L≠ML \neq M exist and deriving a contradiction using the triangle inequality.
  • Every convergent sequence is bounded: there exists B>0B > 0 with ∣an∣≤B|a_n| \le B for all nn.
  • Boundedness is proved by isolating a finite "head" of the sequence (finitely many terms, always bounded) from a "tail" trapped near LL.
  • The converse of boundedness is false: a bounded sequence need not converge (e.g. (−1)n(-1)^n).
  • Key idea: convergence is a strong constraint — it pins down one limit exactly, and it traps the whole sequence, head and tail alike, inside a finite window.

Where this lives today

Uniqueness of limits is invoked silently every time a limit is computed: without it, expressions like lim⁡x→af(x)=L\lim_{x\to a} f(x) = L would not even be well-defined objects to manipulate algebraically, which underlies the entire Algebraic Limit Theorems used to compute limits of sums, products, and quotients. Boundedness of convergent sequences is the standard first line of defense in divergence proofs: to show a sequence like an=na_n = n or an=(−1)nna_n = (-1)^n n diverges, one simply shows it is unbounded, invoking the contrapositive of this theorem instead of chasing an ε\varepsilon–NN argument directly. In numerical analysis and scientific computing, boundedness of convergent iterative schemes (Newton's method, gradient descent, fixed-point iteration) is checked as a prerequisite sanity condition before convergence is even claimed — an unbounded iterate sequence signals failure immediately. In probability and statistics, convergence of estimator sequences (e.g. sample means) to a true parameter relies on the same uniqueness guarantee, ensuring "the limiting value" of an estimator is unambiguous; boundedness in probability (tightness) is the direct probabilistic analogue used in proving weak laws of large numbers. In functional analysis and Hilbert space theory, both facts generalize verbatim (replacing ∣⋅∣|\cdot| with a norm ∥⋅∥\|\cdot\|), underpinning the definition of Banach and Hilbert spaces and, further out, the uniform boundedness principle. In computer science, convergence proofs for iterative algorithms and machine-learning training loops (e.g. loss sequences in gradient descent) rely on these same two guarantees to certify that "the algorithm converges to a unique value" is a meaningful claim rather than an assumption.

Ask the tutor: Can you show step-by-step why an=n+1−na_n = \sqrt{n+1} - \sqrt{n} is bounded but check whether it converges, using both theorems together?

DefinitionConvergence of a sequence

Let (an)n=1∞(a_n)_{n=1}^{\infty} be a sequence of real numbers. We say (an)(a_n) converges to a real number LL, written

lim⁡n→∞an=Loran→L,\lim_{n \to \infty} a_n = L \quad \text{or} \quad a_n \to L,

if for every ε>0\varepsilon > 0 there exists N∈NN \in \mathbb{N} such that

n≥N  ⟹  ∣an−L∣<ε.n \ge N \implies |a_n - L| < \varepsilon.

A sequence that converges to some real number is called convergent; otherwise it is divergent. A sequence (an)(a_n) is called bounded if there exists B>0B > 0 such that ∣an∣≤B|a_n| \le B for all n∈Nn \in \mathbb{N}.

Intuition

Picture the real line with the point LL marked on it. The ε\varepsilon–NN definition says: no matter how thin a window (L−ε,L+ε)(L - \varepsilon, L + \varepsilon) you draw around LL, all but finitely many terms of the sequence must eventually fall inside that window and stay there. Now suppose someone claims the sequence also converges to a different point M≠LM \ne L. Since L≠ML \ne M, the distance d=∣L−M∣d = |L - M| is a fixed positive number. Draw windows of radius ε=d/2\varepsilon = d/2 around each of LL and MM: these two windows do not overlap, because their centers are dd apart and each has radius only d/2d/2. But convergence to LL says the tail of the sequence eventually lives entirely inside the LL-window, and convergence to MM says the tail eventually lives entirely inside the MM-window. A single tail of the sequence cannot simultaneously live in two disjoint windows — contradiction. This is the entire proof, in pictures. For boundedness, the idea is a "finitely many vs. cofinitely many" split. Once n≥Nn \ge N, every term ana_n is trapped in the fixed window (L−1,L+1)(L-1, L+1) (taking ε=1\varepsilon = 1, say), so those terms are automatically bounded. That leaves only the finitely many terms a1,…,aN−1a_1, \dots, a_{N-1} unaccounted for — and any finite list of real numbers has a largest absolute value. Taking the larger of these two bounds controls the whole sequence at once.

Figure
Two disjoint ε\varepsilon-windows around distinct candidate limits LL and MM: no tail of a sequence can lie in both simultaneously.
L M (L−ε, L+ε) (M−ε, M+ε) d = |L − M|, ε = d/2 ⇒ windows disjoint
TheoremUniqueness of Limits

Let (an)(a_n) be a sequence of real numbers. If an→La_n \to L and an→Ma_n \to M for real numbers LL and MM, then L=ML = M.

Proof

We argue by contradiction. Suppose (an)(a_n) converges to both LL and MM, with L≠ML \ne M. Set d=∣L−M∣>0d = |L - M| > 0 (this is positive precisely because L≠ML \ne M), and let

ε=d2>0.\varepsilon = \frac{d}{2} > 0.

Since an→La_n \to L, applying the Epsilon-N Definition of a Limit to this ε\varepsilon gives N1∈NN_1 \in \mathbb{N} such that

n≥N1  ⟹  ∣an−L∣<ε.n \ge N_1 \implies |a_n - L| < \varepsilon.

Since an→Ma_n \to M, applying the same definition to the same ε\varepsilon gives N2∈NN_2 \in \mathbb{N} such that

n≥N2  ⟹  ∣an−M∣<ε.n \ge N_2 \implies |a_n - M| < \varepsilon.

Let N=max⁡(N1,N2)N = \max(N_1, N_2). Since N≥N1N \ge N_1 and N≥N2N \ge N_2, both inequalities hold simultaneously for the single index n=Nn = N:

∣aN−L∣<εand∣aN−M∣<ε.|a_N - L| < \varepsilon \qquad \text{and} \qquad |a_N - M| < \varepsilon.

Now apply the triangle inequality to L−M=(L−aN)+(aN−M)L - M = (L - a_N) + (a_N - M):

d=∣L−M∣=∣(L−aN)+(aN−M)∣≤∣L−aN∣+∣aN−M∣=∣aN−L∣+∣aN−M∣.d = |L - M| = |(L - a_N) + (a_N - M)| \le |L - a_N| + |a_N - M| = |a_N - L| + |a_N - M|.

Combining this with the two bounds above,

d≤∣aN−L∣+∣aN−M∣<ε+ε=2ε=2⋅d2=d.d \le |a_N - L| + |a_N - M| < \varepsilon + \varepsilon = 2\varepsilon = 2 \cdot \frac{d}{2} = d.

We have derived d<dd < d, which is false for any real number dd (a number cannot be strictly less than itself). This is a contradiction. Hence our assumption L≠ML \ne M is untenable, and we conclude L=ML = M. ■\blacksquare

∎
TheoremConvergent Sequences are Bounded

Let (an)(a_n) be a sequence of real numbers. If (an)(a_n) converges (to some limit LL), then (an)(a_n) is bounded: there exists B>0B > 0 such that ∣an∣≤B|a_n| \le B for all n∈Nn \in \mathbb{N}.

Proof

Suppose an→La_n \to L for some L∈RL \in \mathbb{R}. We apply the Epsilon-N Definition of a Limit with the specific choice ε=1\varepsilon = 1 (any fixed positive number works; 11 is a convenient concrete choice). By definition of convergence, there exists N∈NN \in \mathbb{N} such that

n≥N  ⟹  ∣an−L∣<1.n \ge N \implies |a_n - L| < 1.

For all such n≥Nn \ge N, the reverse triangle inequality gives

∣an∣=∣an−L+L∣≤∣an−L∣+∣L∣<1+∣L∣.|a_n| = |a_n - L + L| \le |a_n - L| + |L| < 1 + |L|.

So every term with index n≥Nn \ge N satisfies ∣an∣<1+∣L∣|a_n| < 1 + |L|. This bounds the tail of the sequence. It remains to bound the finitely many head terms a1,a2,…,aN−1a_1, a_2, \dots, a_{N-1} (if N=1N = 1 this list is empty and this step is vacuous). Since this is a finite set of real numbers, it has a maximum absolute value; define

M=max⁡{∣a1∣,∣a2∣,…,∣aN−1∣}M = \max\{|a_1|, |a_2|, \dots, |a_{N-1}|\}

when N>1N > 1, and M=0M = 0 if N=1N = 1. (A finite nonempty set of real numbers always has a maximum, by induction on the size of the set: this is elementary and does not require anything about limits.) Now define

B=max⁡{M, 1+∣L∣}.B = \max\{M, \, 1 + |L|\}.

We claim ∣an∣≤B|a_n| \le B for every n∈Nn \in \mathbb{N}. There are two cases:

  • If n<Nn < N (i.e. n∈{1,…,N−1}n \in \{1, \dots, N-1\}), then ∣an∣≤M≤B|a_n| \le M \le B by definition of MM.
  • If n≥Nn \ge N, then ∣an∣<1+∣L∣≤B|a_n| < 1 + |L| \le B by the tail estimate above.

In either case ∣an∣≤B|a_n| \le B. Since BB is a single fixed positive number (as ∣L∣≥0|L| \ge 0 forces 1+∣L∣≥1>01 + |L| \ge 1 > 0) not depending on nn, the sequence (an)(a_n) is bounded. ■\blacksquare

∎

Worked examples

Example 1 (Uniqueness in action, with an asymmetric target). Let

an=7n2+32n2−n,n≥1.a_n = \frac{7n^2 + 3}{2n^2 - n}, \qquad n \ge 1.

One can show directly from the ε\varepsilon–NN definition that an→72a_n \to \tfrac{7}{2}. Indeed, for n≥1n \ge 1,

∣an−72∣=∣2(7n2+3)−7(2n2−n)2(2n2−n)∣=∣6+7n2(2n2−n)∣=7n+62n(2n−1),\left| a_n - \frac{7}{2} \right| = \left| \frac{2(7n^2+3) - 7(2n^2 - n)}{2(2n^2-n)} \right| = \left| \frac{6 + 7n}{2(2n^2 - n)} \right| = \frac{7n+6}{2n(2n-1)},

using n≥1n \ge 1 so that 2n2−n=n(2n−1)>02n^2 - n = n(2n-1) > 0. For n≥4n \ge 4 we have 7n+6≤7n+2n=9n7n + 6 \le 7n + 2n = 9n (since 6≤2n6 \le 2n when n≥3n \ge 3) and 2n−1≥n2n - 1 \ge n (when n≥1n \ge 1), so

7n+62n(2n−1)≤9n2n⋅n=92n.\frac{7n+6}{2n(2n-1)} \le \frac{9n}{2n \cdot n} = \frac{9}{2n}.

Given ε>0\varepsilon > 0, choose N=max⁡(4,⌈92ε⌉)N = \max\left(4, \left\lceil \frac{9}{2\varepsilon} \right\rceil \right); then for n≥Nn \ge N, 92n≤92N≤ε\frac{9}{2n} \le \frac{9}{2N} \le \varepsilon, giving ∣an−7/2∣<ε|a_n - 7/2| < \varepsilon (strict, since 9/(2n)<9/(2(n−1))≤ε9/(2n) < 9/(2(n-1))\le\varepsilon can be arranged by a slightly larger NN, or simply note the chain of inequalities is strict once nn is strictly larger than the threshold; taking NN one larger fixes this). Hence an→7/2a_n \to 7/2. Now suppose, hypothetically, someone also claimed an→4a_n \to 4. By the Uniqueness of Limits theorem, since an→7/2a_n \to 7/2 is already established, no other value — in particular not 44 — can also be a limit. Concretely, with L=7/2L = 7/2, M=4M = 4, we have d=∣7/2−4∣=1/2d = |7/2 - 4| = 1/2, so ε=1/4\varepsilon = 1/4. The theorem's proof shows that for nn large enough to be within 1/41/4 of 7/27/2, that same ana_n cannot simultaneously be within 1/41/4 of 44, since ∣7/2−4∣=1/2=2ε|7/2 - 4| = 1/2 = 2\varepsilon exactly — any point within ε\varepsilon of both would force 1/2≤ε+ε=1/21/2 \le \varepsilon + \varepsilon = 1/2, consistent only in the boundary case, and a strict inequality ∣an−L∣<ε|a_n - L| < \varepsilon makes the total strict, giving 1/2<1/21/2 < 1/2, false. This confirms 44 cannot be a limit of (an)(a_n).

Example 2 (Boundedness with an explicit, non-round bound). Let

bn=(−1)nnn+1+5n,n≥1.b_n = \frac{(-1)^n n}{n+1} + \frac{5}{n}, \qquad n \ge 1.

First, bn→Lb_n \to L where L=L = well — let's check: the term (−1)nnn+1\frac{(-1)^n n}{n+1} does not converge (it oscillates near +1+1 and −1-1), so in fact (bn)(b_n) itself is divergent. This is intentional: we use this example to illustrate boundedness of the individual pieces and contrast with the theorem's scope. Let us instead use

cn=3n+1n=3+1n.c_n = \frac{3n+1}{n} = 3 + \frac{1}{n}.

We show cn→3c_n \to 3 and then explicitly exhibit the bound BB constructed in the proof. Convergence: Given ε>0\varepsilon > 0, ∣cn−3∣=1/n<ε|c_n - 3| = 1/n < \varepsilon whenever n>1/εn > 1/\varepsilon, so taking N=⌈1/ε⌉+1N = \lceil 1/\varepsilon \rceil + 1 works, hence cn→3c_n \to 3. Applying the boundedness proof with ε=1\varepsilon = 1: We need NN such that n≥N  ⟹  ∣cn−3∣=1/n<1n \ge N \implies |c_n - 3| = 1/n < 1. Since 1/n<11/n < 1 for all n≥2n \ge 2, we may take N=2N = 2.

  • Tail bound: for n≥2n \ge 2, ∣cn∣<1+∣3∣=4|c_n| < 1 + |3| = 4.
  • Head terms: only c1=3+1=4c_1 = 3 + 1 = 4, so M=∣c1∣=4M = |c_1| = 4.
  • B=max⁡(M,1+∣L∣)=max⁡(4,4)=4B = \max(M, 1+|L|) = \max(4, 4) = 4.

Check directly: c1=4c_1 = 4, c2=3.5c_2 = 3.5, c3=3.3‾c_3 = 3.\overline{3}, and in general cn=3+1/n≤4c_n = 3 + 1/n \le 4 for all n≥1n \ge 1, decreasing toward 33. Indeed ∣cn∣≤4|c_n| \le 4 for every nn, confirming B=4B = 4 is a valid bound produced exactly by the proof's construction — and in this case it is even sharp (attained at n=1n=1).

CounterexampleBoundedness does not imply convergence — the hypothesis "convergent" cannot be weakened to "bounded"

The theorem Convergent Sequences are Bounded has a natural-looking converse: "every bounded sequence converges." This converse is false, and exhibiting why is instructive, since it shows boundedness is a genuinely weaker property. Let

an=(−1)n,n=1,2,3,…a_n = (-1)^n, \qquad n = 1, 2, 3, \dots

so the sequence is −1,1,−1,1,−1,…-1, 1, -1, 1, -1, \dots.

This sequence is bounded: ∣an∣=1≤1|a_n| = 1 \le 1 for all nn, so B=1B = 1 works.

This sequence does not converge. Suppose for contradiction that an→La_n \to L for some L∈RL \in \mathbb{R}. Apply the definition with ε=1\varepsilon = 1: there would exist NN such that n≥N  ⟹  ∣an−L∣<1n \ge N \implies |a_n - L| < 1. In particular this would hold for two consecutive indices n=Nn = N and n=N+1n = N+1, one of which gives an=1a_n = 1 and the other an=−1a_n = -1 (since consecutive terms alternate). So we would need both

∣1−L∣<1and∣−1−L∣<1.|1 - L| < 1 \quad \text{and} \quad |-1 - L| < 1.

The first gives L∈(0,2)L \in (0, 2); the second gives L∈(−2,0)L \in (-2, 0). These two open intervals are disjoint (they share only the single boundary point 00, which belongs to neither), so no single LL can satisfy both. Contradiction. Hence (an)(a_n) has no limit — it diverges (by oscillation). This shows precisely what the "convergent" hypothesis in the theorem is doing: it is not merely a technical decoration but an essential ingredient. Boundedness is a genuinely weaker, necessary-but-not-sufficient condition for convergence — a fact used constantly, in reverse form, later: it is exactly the gap that the Monotone Convergence Theorem and the Bolzano–Weierstrass Theorem are built to close, by adding one further hypothesis (monotonicity, or passing to a subsequence) to recover convergence from boundedness.

Scope, edge cases & common traps

SituationWhat holdsWhat can fail
(an)(a_n) convergentLimit is unique; sequence is bounded—
(an)(a_n) boundedNothing about convergence guaranteedMay diverge, e.g. (−1)n(-1)^n
(an)(a_n) unboundedCannot converge (contrapositive of theorem)—
Complex or vector-valued sequencesBoth theorems still hold, same proofs with ∥⋅∥\|\cdot\| in place of ∣⋅∣|\cdot|—
Sequence in Q\mathbb{Q} converging to irrational limitUniqueness still holds in R\mathbb{R}Limit need not lie in Q\mathbb{Q} itself

The mathematician behind it

Origins · 1 minAugustin-Louis Cauchy and how this was discovered
AC
Augustin-Louis Cauchy
1789–1857 · Founding the rigorous ε\varepsilon-based theory of limits in early 19th-century France

Cauchy, working at the École Polytechnique in Paris, was among the first to insist that calculus be built on precise, quantifiable definitions of limit and convergence rather than intuitive appeals to infinitesimals. His 1821 Cours d'Analyse introduced convergence criteria for sequences and series in a form close to the modern ε\varepsilon–NN language later sharpened by Weierstrass, making statements like uniqueness of limits and boundedness of convergent sequences provable rather than merely plausible.

History
- 1821 — Cauchy's Cours d'Analyse gives an early rigorous treatment of convergence of sequences and series.
- 1817 — Bolzano anticipates rigorous limit arguments and the intermediate value theorem, largely unpublished at the time.
- 1861 — Weierstrass, lecturing in Berlin, formalizes the ε\varepsilon–δ\delta and ε\varepsilon–NN definitions in the form used today.
- 1872 — Weierstrass's construction of a nowhere-differentiable continuous function underscores the necessity of rigor that these foundational limit theorems supply.
- 1976 — Modern undergraduate analysis textbooks (e.g. Rudin's Principles of Mathematical Analysis) standardize this exact sequence of foundational results as the opening of real analysis.
Why do we need to prove limits are unique — isn't it obvious?

It feels obvious once you already trust that "the limit" is a single, well-defined quantity, but the entire point of the ε\varepsilon–NN definition is that convergence is a logical condition (a sentence with quantifiers), not a computation that outputs one number by construction. In principle, nothing in the raw definition immediately rules out the same sequence satisfying that condition for two different values LL and MM. The proof closes this logical gap explicitly using the triangle inequality. Without proving uniqueness first, writing lim⁡n→∞an=L\lim_{n\to\infty} a_n = L as if it names a single object would be an unjustified notational shortcut, and later theorems that manipulate "the limit" algebraically would be resting on an unproven assumption.

Does the boundedness theorem tell us anything about how large the bound BB is?

Yes — the proof is constructive, not just an existence argument. It explicitly builds B=max⁡{M,1+∣L∣}B = \max\{M, 1+|L|\}, where MM is the largest absolute value among the finitely many head terms a1,…,aN−1a_1,\dots,a_{N-1}, and 1+∣L∣1+|L| bounds the tail. This means that given an explicit sequence and its explicit ε\varepsilon–NN relationship, you can always compute a concrete numerical bound BB, as done in the worked example with cn=3+1/nc_n = 3 + 1/n, where B=4B = 4 turned out to be sharp. In general BB need not be the smallest possible bound, but the construction always yields some valid, computable one.

Is the converse of "convergent implies bounded" true in reverse — does bounded imply convergent?

No, and this is one of the most important cautionary points in this topic. The sequence an=(−1)na_n = (-1)^n is bounded (every term has absolute value 11) but does not converge, since it oscillates forever between −1-1 and 11 without settling near any single value. This is proven rigorously in the counterexample above using the same ε\varepsilon–NN machinery: assuming a limit LL exists and taking ε=1\varepsilon=1 forces LL into two disjoint intervals simultaneously, which is impossible. Boundedness is therefore a necessary condition for convergence but never a sufficient one; extra structure (monotonicity, or restricting to a convergent subsequence) is needed to upgrade boundedness into convergence.

Does uniqueness of limits still hold for sequences in higher-dimensional spaces or complex numbers?

Yes. The proof goes through essentially unchanged if ∣⋅∣|\cdot| (absolute value) is replaced by ∥⋅∥\|\cdot\| (a norm) on Rk\mathbb{R}^k, C\mathbb{C}, or more general normed vector spaces, because the only tools used are the triangle inequality and positivity of distances between distinct points, both of which any norm satisfies by definition. The same is true for boundedness. This is why these two theorems reappear, word-for-word in spirit, at the start of every course on multivariable analysis or functional analysis: they are properties of the metric/normed structure, not special features of the real line.

Why does the boundedness proof specifically use ε=1\varepsilon = 1? Could you use a different value?

Any fixed positive ε\varepsilon works equally well — ε=1\varepsilon = 1 is chosen purely for algebraic convenience, since it makes the tail bound read simply as 1+∣L∣1 + |L|. If you instead used, say, ε=0.01\varepsilon = 0.01, the proof would produce a different (typically larger) index NN from the definition of convergence, and the tail bound would become 0.01+∣L∣0.01 + |L|, but the overall logical structure — split into head and tail, take the max of two finite bounds — is identical. The choice of ε\varepsilon only affects the numerical value of the bound BB that comes out, not whether the theorem is true.

How does uniqueness of limits get used later, for example in proving limit laws for sums of sequences?

When proving something like "if an→La_n \to L and bn→Mb_n \to M then an+bn→L+Ma_n + b_n \to L + M" (part of the Algebraic Limit Theorems), the proof needs to refer unambiguously to the limits LL and MM of the individual sequences in its ε\varepsilon–NN estimates. If a sequence could converge to multiple values, expressions like "ana_n is within ε/2\varepsilon/2 of LL" would be ambiguous — within ε/2\varepsilon/2 of which candidate limit? Uniqueness guarantees that once you're told an→La_n \to L, the number LL is completely determined by the sequence, so all subsequent algebraic manipulations of limits are manipulations of well-defined quantities rather than arbitrary choices among several possibilities.

Is there a slicker proof of uniqueness that avoids picking ε=d/2\varepsilon = d/2 specifically?

You can phrase it slightly differently: show that for every ε>0\varepsilon > 0, ∣L−M∣<ε|L - M| < \varepsilon (using the same N=max⁡(N1,N2)N = \max(N_1,N_2) argument but without pre-committing to ε=d/2\varepsilon = d/2), and then invoke the fact that a nonnegative real number smaller than every positive ε\varepsilon must be 00. This is logically equivalent to the proof given here, just deferring the "contradiction" to a separate small lemma (sometimes called the "ε\varepsilon-principle"). The version with ε=d/2\varepsilon = d/2 chosen up front is more direct for a first encounter, since it produces the contradiction d<dd < d in one visible line rather than requiring the auxiliary lemma.

Before this

Where this leads