動手前先備妥工具:0 ≤ x ≤ 1 的每個實數都能寫成小數展開 x = 0.a₁a₂a₃⋯,每個 aₙ 是 0 到 9 的一個數字(這件事本身要到實數系建好之後才能嚴格證明,本篇先當作已知)。
同一個數、兩件外衣:有些實數有兩種小數展開——0.1000⋯ = 0.0999⋯ 是同一個數。這不是小事:若只比對「展開的第 n 位不同」,兩個數仍可能相等(外衣不同、本體相同)。等一下的證明特地讓造出來的數避開 0 與 9,讓它只有一件外衣,這個漏洞就堵死了。
THEOREM · CANTOR'S DIAGONAL ARGUMENT
The unit interval I — the set of real numbers x with 0 ≤ x ≤ 1 — is not countable, and therefore neither is ℝ: every enumeration x₁, x₂, x₃, ⋯ of real numbers in I omits at least one member of I.
單位區間 I = [0, 1] 不是 countable:任何一列實數,都必定漏掉 I 裡的某個數。因此 ℝ 也不可數。(本讀本把它立成定理卡;它在通行的教科書編排裡多半寫成 §3 收尾的一段論證,不掛編號——所以你在別處看到它時不會有編號可對。)
正例(對照組):I ∩ ℚ——只收 I 裡的有理數——是 countable 的(ℚ countable,定理 3.3 傳給子集)。反例本體:整個 I 不行。同一段區間,把無理數放回來,「排成一列」就從辦得到變成辦不到——多出來的重量全在無理數上。
證明計畫 · 由所求想起
要證:I 排不成一列。
⇢ 反證:假設排成了 x₁, x₂, x₃, ⋯。
⇢ 沿對角線逐位避開,造一個數 y ∈ I:第 n 位故意與 xₙ 的第 n 位不同。
⇢ 同時避開 0 與 9,堵住「兩件外衣」的漏洞。
⇢ y 不在列上——與「排成了一列」矛盾。
Proof. Suppose, to the contrary, that some list x₁, x₂, x₃, ⋯ contains every real number of I. Write out a decimal representation for each entry: x₁ = 0.a₁a₂a₃⋯, x₂ = 0.b₁b₂b₃⋯, x₃ = 0.c₁c₂c₃⋯, and so on.
反證的假設先擺上桌:這一列號稱一個不漏。因為每個 I 裡的實數都有小數展開,把每一項的展開逐列寫開,就得到一張往右、往下都無限延伸的數字表——第 n 列是 xₙ 的展開。接下來的論證只看這張表的對角線:第 1 列的第 1 位、第 2 列的第 2 位、第 3 列的第 3 位⋯⋯。
Choose a digit y₁ different from 0, from a₁, and from 9; choose y₂ different from 0, b₂, 9; choose y₃ different from 0, c₃, 9; and continue in this way. Since ten digits are available and only three are forbidden at each step, such choices always exist. Let y = 0.y₁y₂y₃⋯; then y belongs to I.
Because the digits of y avoid 0 and 9, the number y has exactly one decimal representation. For every n, the n-th digit of y differs from the n-th digit of the given representation of xₙ; since y admits no second representation, this forces y ≠ xₙ. Hence y belongs to I yet appears nowhere in the list — contradicting the assumption that the list contains every member of I. Therefore I is not denumerable, and being infinite, it is not countable. Finally, if ℝ were countable, Theorem 3.3 would make its subset I countable as well; hence ℝ is not countable either.∎
收口分三小步。第一步驗 y 確實不在名單上:y 與 xₙ 的展開在第 n 位不同——但上面的陷阱框提醒過,「外衣不同」還不等於「本體不同」。這時避開 0 與 9 的安排兌現:y 的每一位都不是 0 也不是 9,這樣的數只有一件外衣,於是外衣不同就足以斷定 y ≠ xₙ,對每個 n 都成立。第二步收反證:y 落在 I 裡(每一位都是普通數字、整數部分是 0)卻不在名單上,「一個不漏」破功——所以 I 排不成一列,不是 denumerable;setup 又驗過它不是 finite,依定義 3.1,I 不是 countable。第三步把結論推上 ℝ:因為若 ℝ countable,定理 3.3 會逼得子集 I 也 countable,與剛才矛盾——所以 ℝ 也不可數。
這張圖在證 y 為什麼必定逃脫:紅色對角線讀出每一列的「查核位」5, 3, 2, 9,藍色的 y 在每個查核位都故意選了不同的數字(並且避開 0 與 9,讓自己只有一種展開)。於是 y 與 x₁ 差在第 1 位、與 x₂ 差在第 2 位⋯⋯名單再長,每一列都至少有一位抓不住它。