Real number: proving in the Cauchy completion that 'repeating nines' and the rational 1 are the same real

On this page
  1. Goal and scope
  2. Givens and symbols
  3. Rules and sources
  4. Main derivation
  5. Substeps and lemmas
  6. Reverse audits
  7. Error controls and negative controls
  8. Result and limitations
  9. Verification and source binding

← Guide index · Original MKO

derivation-mko-real-number-01 · production-20261019-adopted-96

Goal and scope

In the reals constructed as equivalence classes of Cauchy sequences of rationals (a rational q embedded as the class ι(q) of its constant sequence), let a_n=1−10^{−n} (n≥1), the finite decimals 0.9, 0.99, 0.999 and so on. Prove that (a_n) is a Cauchy sequence equivalent to the constant sequence 1, so [(a_n)]=ι(1); prove that ι is injective, so the real denoted by the finite decimal 0.999=999/1000 is not 1; and show that the finite decimal 0.375=3/8 is rational and is ι(3/8) in ℝ.

Works in the Cauchy-completion setting of MKO assumption a1, using only arithmetic, order and absolute value of rationals (no property of the reals being constructed, to avoid circularity). That ∼ is an equivalence relation is cited from outside (citation_verified). It does not define addition, multiplication or order on ℝ, does not prove completeness, and does not prove equivalence with other constructions such as Dedekind cuts (which the MKO says needs a separate proof); it does not change the canonical MKO or its English edition.

Givens and symbols

  • nat_induction
  • frac_rules
  • power_laws
  • numeric_evaluation
  • G1 — ℚ is an ordered field: addition, multiplication, order and absolute value of rationals obey the ordered-field rules (including the triangle inequality |x+y|≤|x|+|y|). Every ε and δ in this guide is a positive rational.
  • G2 — Cauchy sequence: a sequence of rationals (a_n)_{n≥1} is Cauchy if for every rational ε>0 there is N such that |a_m−a_n|<ε for all m,n≥N.
  • G3 — Equivalence and reals (MKO assumption a1): Cauchy sequences (a_n), (b_n) are equivalent, written (a_n)∼(b_n), if for every rational ε>0 there is N such that |a_n−b_n|<ε for all n≥N. ℝ is the set of equivalence classes [(a_n)] of Cauchy sequences; the embedding of a rational q is the class of its constant sequence, ι(q)=[(q)_{n≥1}].
  • G4 — Data: a_n=1−10^{−n} (n≥1); the finite decimals 0.999 and 0.375.
  • (a_n)_{n\ge1} — a sequence of rationals
  • (a_n)\sim(b_n) — two Cauchy sequences are equivalent
  • [(a_n)] — the equivalence class of (a_n), that is, a real number
  • \iota(q) — the embedding of a rational q: the class of the constant sequence q
  • \varepsilon,\ \delta — positive rationals

Rules and sources

  • nat_induction · prerequisite — Principle of induction: for a family P(n) starting at n₀, if P(n₀) holds and P(n)⇒P(n+1) for every n≥n₀, then P(n) holds for every n≥n₀.
  • frac_rules · prerequisite — Fraction rules (all denominators nonzero): a/c+b/c=(a+b)/c; (a/b)(c/d)=(ac)/(bd); (a/b)/(c/d)=(ad)/(bc) (also needing c≠0); a/b=(ak)/(bk) for k≠0.
  • power_laws · prerequisite — Integer exponent laws (base nonzero, or exponents positive integers): a^m·a^n=a^{m+n}, (a^m)^n=a^{mn}, (ab)^n=a^n b^n, a^0=1.
  • numeric_evaluation · prerequisite — Exact evaluation of an explicit integer or rational expression; independently recomputable.
  • def_unfold · prerequisite — Unfolding a definition: replacing a defined term by its definition (or folding it back) does not change whether a statement is true.
  • def_intro · prerequisite — Introducing a definition: a statement, expression or object may be given a name, after which the name and what it stands for are interchangeable.
  • add_inverse · prerequisite — Additive inverse: every u has −u with u+(−u)=0; u−v means u+(−v).
  • exists_elim · prerequisite — ∃-elimination: from ∃x∈D, P(x) we may name some element a with P(a) by a fresh name; reasoning with a is allowed as long as the final conclusion does not mention a.
  • exists_intro · prerequisite — ∃-introduction: if some a∈D satisfies P(a), then ∃x∈D, P(x).
  • forall_intro · prerequisite — ∀-introduction (generalization): if a statement is proved for an arbitrary element x, with no extra assumption on x, it holds for every x in the domain.
  • contradiction · prerequisite — Proof by contradiction: if assuming ¬P leads to a contradiction (a statement and its negation both hold), then P holds.
  • forall_elim · prerequisite — ∀-elimination (instantiation): if ∀x∈D, P(x) holds and a∈D, then P(a) holds.
  • and_intro_elim · prerequisite — Conjunction: from P and Q infer P∧Q; from P∧Q infer P and infer Q.
  • mko_real_def · cited — The real-number system R can be constructed as a Cauchy completion of the rationals. Every rational number embeds into R, while different constructions still require proofs of equivalence. · mko-real-number
  • q_ordered_field · prerequisite — ℚ is an ordered field: the field rules, the order rules (trichotomy, transitivity, adding preserves order, multiplying by a positive preserves order, reciprocals of positives reverse order) and the absolute-value rules (|x|≥0, |−x|=|x|, the triangle inequality) all hold in ℚ.
  • pos_int_ge_one · prerequisite — Every positive integer is ≥1.
  • cauchy_def · prerequisite — Cauchy sequence: for every rational ε>0 there is N with |a_m−a_n|<ε for all m,n≥N.
  • equiv_def · prerequisite — (a_n)∼(b_n) means that for every rational ε>0 there is N with |a_n−b_n|<ε for all n≥N; ℝ is the set of equivalence classes, and ι(q)=[(q)_{n≥1}].
  • thm_equiv_relation · cited — Equivalence ∼ of Cauchy sequences of rationals is an equivalence relation (reflexive, symmetric, transitive); hence equivalence classes are well defined, and [(a_n)]=[(b_n)] ⇔ (a_n)∼(b_n). · Keith Conrad, Metric Spaces, Section 8 (completions), p. 39
  • L_pow_ten · lemma — For every integer n≥1: 10^n>n.
  • L_small · lemma — For every rational ε>0 there is a positive integer N such that 10^{−n}<ε for every integer n≥N.

Main derivation

S01 · definition

Before

\mathbb{R}

After

\{[(a_n)]\mid (a_n)\ \text{Cauchy in}\ \mathbb{Q}\},\ \iota(q)=[(q)_{n\ge1}]

Conditions: none

Rule: equiv_def · Uses: G2, G3, mko_real_def

Leaf basis: equiv_def + cauchy_def + mko_real_def

By MKO assumption a1, work in the Cauchy-completion setting: a real number is an equivalence class of Cauchy sequences of rationals, and a rational q is embedded by ι as the class of its constant sequence (every term equal to q). A constant sequence is Cauchy, since |q−q|=0<ε for all m, n.

S02 · equivalent

Before

[(a_n)]=[(b_n)]

After

(a_n)\sim(b_n)

Conditions: (a_n),(b_n)\ \text{Cauchy}

Rule: thm_equiv_relation · Uses: S01, thm_equiv_relation

Leaf basis: thm_equiv_relation + def_unfold

∼ is an equivalence relation (cited as thm_equiv_relation), so the classes are well defined, and two classes are equal exactly when their representative sequences are equivalent. From now on, to prove two reals equal it suffices to prove the sequences equivalent, and to prove them different, that the sequences are not equivalent.

S03 · definition

Before

a_n=1-10^{-n}\ \ (n\ge1)

After

a_1=\tfrac{9}{10},\ a_2=\tfrac{99}{100},\ a_3=\tfrac{999}{1000}

Conditions: none

Rule: def_intro · Uses: G4

Leaf basis: def_intro + q_ordered_field + numeric_evaluation

Define a_n=1−10^{−n}. Every term is rational (10^{−n}=1/10^n with 10^n≠0). The first three terms are 9/10, 99/100, 999/1000 (N1 to N3), the finite decimals 0.9, 0.99, 0.999; in general a_n is the finite decimal with n nines after the point.

S04 · equivalent

Before

a_n-1

After

-10^{-n},\quad |a_n-1|=10^{-n}

Conditions: none

Rule: q_ordered_field · Uses: S03, q_ordered_field

Leaf basis: q_ordered_field + add_inverse + numeric_evaluation

a_n−1=(1−10^{−n})−1=−10^{−n}. 10^n>0, so 10^{−n}=1/10^n>0 and |−10^{−n}|=10^{−n}. Example: a_3−1=999/1000−1=−1/1000 (N4).

S05 · implies

Before

n\ge 1\ \text{an integer}

After

10^n>n

Conditions: n\ge 1

Rule: L_pow_ten · Uses: L_pow_ten

Leaf basis: L_pow_ten

Lemma L_pow_ten: for every integer n≥1, 10^n>n. It is proved by induction in S05.1 and S05.2. N8 checks n=1 to 40; that is a finite check only, not a proof; the proof is the induction.

S06 · implies

Before

\varepsilon\in\mathbb{Q},\ \varepsilon>0

After

\exists N\ \forall n\ge N:\ 10^{-n}<\varepsilon

Conditions: \varepsilon>0

Rule: L_small · Uses: L_small

Leaf basis: L_small

Lemma L_small: every positive rational ε has an N with 10^{−n}<ε for n≥N. It is proved in S06.1 and S06.2. Only rational arithmetic and order are used, not the reals being constructed, which avoids circularity.

S07 · implies

Before

(a_n)_{n\ge1}

After

(a_n)\ \text{is Cauchy}

Conditions: none

Rule: cauchy_def · Uses: S04, S06, G2

Leaf basis: cauchy_def + q_ordered_field + forall_intro + exists_intro

Take any rational ε>0. Apply L_small to ε/2 (still a positive rational) to get N with 10^{−n}<ε/2 for n≥N. For m,n≥N: |a_m−a_n|=|(a_m−1)+(1−a_n)|≤|a_m−1|+|a_n−1|=10^{−m}+10^{−n}<ε/2+ε/2=ε (triangle inequality and S04). ε was arbitrary, so (a_n) is a Cauchy sequence.

S08 · implies

Before

(a_n),\ (1)_{n\ge1}

After

(a_n)\sim(1)_{n\ge1}

Conditions: none

Rule: equiv_def · Uses: S01, S04, S06, S07, G3

Leaf basis: equiv_def + forall_intro + exists_intro

Both sequences are Cauchy (S07 and S01). Take any rational ε>0; L_small gives N with |a_n−1|=10^{−n}<ε for n≥N (S04). ε was arbitrary, so by G3, (a_n) is equivalent to the constant sequence 1.

S09 · equivalent

Before

(a_n)\sim(1)_{n\ge1}

After

[(a_n)]=\iota(1)

Conditions: none

Rule: thm_equiv_relation · Uses: S02, S08

Leaf basis: thm_equiv_relation + def_unfold

By S02, equivalence of sequences is exactly equality of classes, so [(a_n)]=[(1)_{n≥1}]=ι(1). That is, the real number determined by the whole sequence of truncations 0.9, 0.99, 0.999 and so on is exactly the embedding of the rational 1; the usual statement '0.9 with the digit 9 repeating indefinitely equals 1' is, in this construction, this equality.

S10 · implies

Before

p\neq q\ \text{in}\ \mathbb{Q}

After

\iota(p)\neq\iota(q)

Conditions: none

Rule: contradiction · Uses: S02, G3, q_ordered_field

Leaf basis: contradiction + q_ordered_field + equiv_def

Let p≠q and δ=|p−q|>0 (a rational). If the constant sequences (p) and (q) were equivalent, taking ε=δ would give N with |p−q|<δ for n≥N, that is δ<δ, a contradiction. So the constant sequences are not equivalent, and by S02, ι(p)≠ι(q): ι is injective, and different rationals embed as different reals.

S11 · implies

Before

\tfrac{999}{1000}\neq 1

After

\iota(\tfrac{999}{1000})\neq\iota(1)

Conditions: none

Rule: forall_elim · Uses: S10, G4

Leaf basis: forall_elim + numeric_evaluation

999/1000≠1 (they differ by 1/1000, N12, N13), so by S10 the real ι(999/1000) denoted by the finite decimal 0.999 is not 1. What equals 1 is the class of the whole sequence of truncations (S09), not any single finite truncation; a finite truncation is only an approximation.

S12 · implies

Before

0.375

After

\tfrac{375}{1000}=\tfrac{3}{8},\quad \iota(\tfrac{3}{8})\in\mathbb{R}

Conditions: none

Rule: mko_real_def · Uses: S01, G4

Leaf basis: mko_real_def + equiv_def + numeric_evaluation

The finite decimal 0.375=3/10+7/100+5/1000=375/1000=3/8 (N14, N15) is rational; in ℝ it is ι(3/8), the class of the constant sequence 3/8. A finite decimal is not a separate number system, and certainly not irrational.

S13 · implies

Before

\text{S07, S09, S10, S11, S12}

After

[(a_n)]=\iota(1);\ \iota\ \text{injective};\ \iota(\tfrac{999}{1000})\neq\iota(1);\ 0.375=\tfrac{3}{8}

Conditions: none

Rule: and_intro_elim · Uses: S07, S09, S10, S11, S12

Leaf basis: and_intro_elim

The truncation sequence (a_n) is Cauchy and equivalent to the constant sequence 1, so the real it determines is ι(1); ι is injective, so the single finite truncation 0.999 is not 1; and the finite decimal 0.375 is the embedding of the rational 3/8.

Substeps and lemmas

S05.1 · induction_base

Before

n=1

After

10^1=10>1

Conditions: none

Rule: nat_induction · Uses: q_ordered_field

Leaf basis: nat_induction + numeric_evaluation

Base case n=1: 10¹=10>1 (N5).

S05.2 · induction_step

Before

10^n>n\ \ (n\ge1)

After

10^{n+1}>n+1

Conditions: n\ge 1

Rule: nat_induction · Uses: S05.1, q_ordered_field

Leaf basis: nat_induction + power_laws + q_ordered_field

Assume 10^n>n (n≥1). Then 10^{n+1}=10·10^n>10n (multiplying by the positive 10 preserves the inequality). Also 10n−(n+1)=9n−1 (N6 is an identity), and for n≥1, 9n−1≥9·1−1=8>0 (N7), so 10n>n+1. Together 10^{n+1}>n+1. By the induction principle (S05.1 and this step), 10^n>n for all n≥1, which proves Lemma L_pow_ten.

S06.1 · implies

Before

\varepsilon=\frac{p}{q}>0,\ p,q\in\mathbb{Z},\ q\neq0

After

\varepsilon=\frac{r}{s},\ r,s\in\mathbb{Z},\ r\ge1,\ s\ge1

Conditions: \varepsilon>0

Rule: frac_rules · Uses: q_ordered_field, pos_int_ge_one

Leaf basis: frac_rules + q_ordered_field + pos_int_ge_one + exists_elim

ε is rational, so ε=p/q with q≠0. If q<0, the fraction rule gives p/q=(−p)/(−q), so we may assume q>0. Then p=εq is a product of two positives, so p>0. Let r=p and s=q; both are positive integers, so r≥1 and s≥1.

S06.2 · implies

Before

N:=s,\ n\ge N

After

10^{-n}<\tfrac{1}{n}\le\tfrac{1}{s}\le\tfrac{r}{s}=\varepsilon

Conditions: n\ge s\ge 1; r\ge 1

Rule: q_ordered_field · Uses: S06.1, L_pow_ten

Leaf basis: q_ordered_field + L_pow_ten + exists_intro + forall_intro

Take N=s. For n≥s: by L_pow_ten, 10^n>n>0, and taking reciprocals of positives reverses the inequality, so 10^{−n}=1/10^n<1/n; n≥s>0 gives 1/n≤1/s; r≥1 and 1/s>0 give 1/s≤r/s=ε. Chaining, 10^{−n}<ε. Example: for ε=1/100, r=1 and s=100, and N=100 works (N9); the lemma needs some N, not the least one; for instance already 10^{−3}<1/100 at n=3 (N10). S06.1 and S06.2 together prove Lemma L_small.

Reverse audits

  • S13 · sufficient_goal_reduction · S07, S08, S09, S10, S11, S12 — The goal is the list in the goal field. Sufficient condition H: S07, S09, S10, S11 and S12 each hold; H gives the goal by conjunction only. The universal statements come from arguments for arbitrary ε and from induction; the goal is never used as a premise, and the only external dependency is thm_equiv_relation.
  • S12 · premise_audit · mko_real_def, equiv_def, numeric_evaluation — Only the meaning of a finite decimal and the embedding ι are used.
  • S11 · premise_audit · S10, forall_elim, numeric_evaluation — S09 and S11 do not conflict: S09 compares a whole sequence, S11 a single constant.
  • S10 · premise_audit · S02, contradiction, q_ordered_field — The key is that the absolute difference between corresponding terms of the constant sequences is always δ and never shrinks; choosing ε=δ rules out equivalence.
  • S09 · inverse_equivalence · S02, thm_equiv_relation — S02 is a biconditional, so the step holds both ways.
  • S08 · premise_audit · S04, S06, equiv_def, forall_intro — Equivalence requires an N for every ε; looking at a few terms (for example a_3 differs from 1 by 1/1000) is not enough.
  • S07 · premise_audit · S04, S06, q_ordered_field, forall_intro, cauchy_def — The lemma is applied to ε/2 so that each of the two terms is below ε/2; N may depend on ε, as the definition allows.
  • S06.2 · premise_audit · L_pow_ten, q_ordered_field, S06.1, exists_intro — It needs that reciprocals of positives reverse inequalities; if n could be 0, 1/n would be undefined, so n≥s≥1 matters.
  • S06.1 · premise_audit · frac_rules, q_ordered_field, pos_int_ge_one — ε>0 is needed to get r>0; ε being rational is what lets it be written as a ratio of integers.
  • S06 · premise_audit · L_small — This step only invokes the lemma; the proof is in the sub-steps.
  • S05.2 · premise_audit · nat_induction, q_ordered_field, power_laws — The step needs n≥1 for 9n−1>0; at n=0, 9·0−1<0, but that case is outside the range.
  • S05.1 · premise_audit · nat_induction, numeric_evaluation — Induction needs the base case to hold.
  • S05 · premise_audit · L_pow_ten — This step only invokes the lemma; the proof is in the sub-steps.
  • S04 · inverse_equivalence · q_ordered_field, add_inverse, numeric_evaluation — An algebraic identity and the definition of absolute value; it holds both ways.
  • S03 · premise_audit · def_intro, q_ordered_field, numeric_evaluation — This step only names the sequence and checks its first three terms.
  • S02 · inverse_equivalence · thm_equiv_relation — This is the basic property of equivalence classes and needs ∼ to be an equivalence relation; it is not reproved here and is marked citation_verified.
  • S01 · premise_audit · G2, G3, equiv_def, mko_real_def — This step only adopts the construction; equivalence with other constructions (such as Dedekind cuts) is not treated here.

Error controls and negative controls

Finite decimals are rational

One misconception the MKO names is treating finite decimals as irrational. 0.375=375/1000=3/8 (S12); every finite decimal is an integer divided by a power of 10 and so is rational; in ℝ it is some ι(q).

An approximate decimal is not the exact value

Another misconception the MKO names is taking an approximate decimal for the exact value. 0.999 and 1 differ by only 1/1000, yet ι(999/1000)≠ι(1) (S11); what equals 1 is the class of the whole sequence of truncations (S09). Likewise the rational 1.4142 has square 1.99996164≠2 (N16, N17), so it is not a square root of 2, only an approximation.

'No gaps' is not a proof of completeness

The MKO warns that claiming completeness is proved merely by saying the real line 'has no gaps' is a misconception; 'adding limit points' is only construction intuition. This guide constructs specific reals and proves one equality and the injectivity of ι, but it defines neither order nor arithmetic on ℝ, does not prove completeness (for instance that every nonempty set bounded above has a least upper bound), and does not prove equivalence with other constructions such as Dedekind cuts. Each of these needs its own definitions and proofs.

  • 0.375 is irrational because it is a decimal → reject — 0.375=375/1000=3/8 is rational (S12).
  • The finite decimal 0.999 (three nines) equals 1 → reject — 999/1000≠1 and ι is injective, so ι(999/1000)≠ι(1) (S10, S11).
  • The real determined by the truncations 0.9, 0.99, 0.999 and so on is slightly less than 1 → reject — (a_n)∼(1), so [(a_n)]=ι(1): they are the same real number (S08, S09).
  • The real line has no gaps, so completeness is proved → reject — 'No gaps' is intuition, not proof; completeness is not proved in this guide (MKO).

Result and limitations

In the Cauchy completion, a_n=1−10^{−n} is a Cauchy sequence, and for every ε>0 there is N with |a_n−1|=10^{−n}<ε, so (a_n)∼(1) and [(a_n)]=ι(1). ι is injective, so the real denoted by the finite truncation 0.999=999/1000 is not 1. The finite decimal 0.375=3/8 is rational and is ι(3/8) in ℝ.

  • Addition, multiplication, order and completeness of ℝ, and equivalence with other constructions such as Dedekind cuts, are not treated here (the MKO says they need separate proofs).
  • The link to Mathlib's Real (Cauchy completion, rational embedding, linear order and completeness statements; MKO formal next) is not treated here.
  • N8 is a finite check for n=1 to 40 only; the proof of 10^n>n is the induction in S05.1 and S05.2.

Verification and source binding

18 declared checks for this guide; only the listed expressions are covered.

  • source commit: b28a5edbd46279b1db2a3f3f48bb3f447e18899f
  • adopted source SHA-256: cf5c66c9854af5d95d9c38472102f8e076b1a986cf8bbfbef4f0f539680fda81
  • original source SHA-256: cf5c66c9854af5d95d9c38472102f8e076b1a986cf8bbfbef4f0f539680fda81
  • Lean: NOT_RUN · independent AI: NOT_MEASURED

Same-source full JSON (formulas, ASTs, controls and revision log)