MathLabs
定理已证明

康托尔定理:实数不可数

命题陈述

区间 [0,1][0,1](从而 R\mathbb{R})是不可数的:不存在把它的所有元素排成一个由自然数编号的数列 x1,x2,x3,…x_1, x_2, x_3, \ldots 的方法。

为什么成立?

这是第一个证明无穷集合也有不同“大小”的定理:自然数集与实数集都是无穷的,但其中一个无穷严格大于另一个。它解释了为何绝大多数实数无法用任何有限公式描述,也是逻辑学与计算机科学中(例如停机问题)广泛使用的对角线论证方法的鼻祖。

证明思路

用反证法。假设 [0,1][0,1] 是可数的:其中每个实数都恰好出现在某个枚举 x1,x2,x3,…x_1, x_2, x_3, \ldots 中一次。把每个数写成小数形式 xn=0.dn1dn2dn3…x_n = 0.d_{n1}d_{n2}d_{n3}\ldots,当一个数有两种表示时,选择不以无穷多个9结尾的那种展开。

现在沿着这份列表的对角线,逐位构造一个新数 yy:y=0.e1e2e3…y = 0.e_1e_2e_3\ldots,其中第 nn 位由 en={5dnn≠56dnn=5e_n=\begin{cases}5 & d_{nn}\neq5\\6 & d_{nn}=5\end{cases} 确定。把取值限制在 {5,6}\{5,6\} 之中,保证了 yy 不会以全0或全9结尾,因此它的小数展开是唯一且无歧义的。

对每个下标 nn,按照构造方式,yy 在第 nn 位小数上都与 xnx_n 不同(en≠dnne_n\neq d_{nn}),因此 y≠xn ∀ny\neq x_n\ \forall n。由于 yy 的每一位都是 55 或 66,所以 y∈[0,1]y\in[0,1]。

但这样一来,yy 就是 [0,1][0,1] 中的一个实数,却不等于那份"完整"列表中的任何 xnx_n——这与假设该列表包含 [0,1][0,1] 的每一个元素相矛盾。因此 [0,1][0,1] 不存在这样的枚举,[0,1][0,1](从而更大的集合 R\mathbb{R})是不可数的。

用到此定理的主题

分步证明

该定理暂无分步证明。

参考文献

  1. Morris Kline (1980). Mathematics: The Loss of Certainty
  2. Maryna Viazovska (2016). The sphere packing problem in dimension 8 · arXiv:1603.04246
  3. DeepMind (2024). AI solves IMO problems at silver medal level