对角线

1891 年的四页纸: 一张清单, 怎么用它自己的内容, 证明自己不完整.

有些证明需要几百页, 需要一整套工具, 需要相信很多前人的结果. 这一个不需要. 它短到可以从头到尾完整地放在脑子里, 每一步都看得见. 我喜欢它, 首先就是因为这个.

清单

考虑所有由 0 和 1 组成的无穷序列. 比如 0101010..., 或者 1111111..., 或者任何你能想到的排列.

现在假设有人声称: 我把它们全部列出来了. 第一个, 第二个, 第三个, 一直排下去, 每一个序列都在清单上某个位置.

我们看看这张清单的开头:

第 1 位第 2 位第 3 位第 4 位...
第 1 个0101...
第 2 个1100...
第 3 个0011...
第 4 个1010...
...

沿着加粗的那条对角线走: 取第 1 个序列的第 1 位, 第 2 个序列的第 2 位, 第 3 个序列的第 3 位, 依此类推. 然后把每一位都翻过来, 0 变 1, 1 变 0.

得到一个新序列: 1, 0, 0, 1, ...

它在清单上吗? 它不是第 1 个, 因为第 1 位不同. 它不是第 2 个, 因为第 2 位不同. 它不是第 n 个, 因为第 n 位不同. 它和清单上的每一个序列, 都恰好在对角线上差了一位.

所以它不在清单上. 清单不完整.

而且这和清单是怎么排的无关. 不管清单有多聪明, 用什么规则排, 同样的构造都能找出一个漏掉的序列. 所以这样的清单根本不存在.

我喜欢的地方

这个证明没有从外面去找反例. 它不需要知道任何清单以外的东西. 它只是向清单要了一些它自己的内容, 一个序列给一位, 然后用这些内容拼出了它漏掉的东西.

任何一张声称完整的清单, 都会亲手交出打败它自己的材料.

我还喜欢它是构造性的. 它不只是说 "一定漏了点什么", 而是直接把漏掉的那个指给你看: 就是这个, 一位一位写出来.

无穷的大小

自然数 1, 2, 3, ... 是无穷多的. 0 和 1 的序列也是无穷多的. 直觉上, 无穷就是无穷, 不该再分大小.

但自然数本身就是一张清单: 它们天生就能排成第 1 个, 第 2 个, 第 3 个. 而刚才的证明说明, 0 和 1 的序列排不进任何清单. 所以序列比自然数 "更多". 两个无穷, 一个比另一个大.

康托尔在同一篇论文里还把这个论证推广了: 任何一个集合, 它的所有子集组成的集合都比它本身更大. 这意味着无穷之上还有更大的无穷, 而且没有尽头. 不存在最大的无穷.

它不是第一个证明

我原本以为, 对角线论证就是康托尔第一次证明这件事的方法. 查了以后才知道不是.

1874 年, 康托尔已经证明过实数不能排成一张清单. 那次用的是一层套一层的区间: 从一个给定的数列出发, 构造出一串嵌套的区间, 区间的交点上有一个不在数列里的数. 那个证明是对的, 但比较绕, 也没能推广开来, 今天知道的人不多.

对角线论证是 1891 年的, 晚了十七年. 发表它的论文只有四页.

我很喜欢这个时间差. 康托尔早就知道这个结论是对的. 他花了十七年, 找到了一种更好的说法.

这条对角线后来又出现了

这个动作没有停在 1891 年.

罗素是在研究康托尔 "不存在最大的无穷" 这个证明时, 发现了他的悖论: 考虑所有 "不包含自己" 的集合组成的集合, 它包含它自己吗? 包含, 它就不该包含; 不包含, 它就应该包含.

哥德尔证明不完备定理时, 用的也是对角线论证: 构造出一个谈论它自己的命题.

图灵证明停机问题不可判定时, 构造了一个 "当且仅当自己不停机时才停机" 的程序. 有人直接说, 图灵的证明就是康托尔的对角线论证.

每一次, 都是同一个形状: 拿一个声称能覆盖一切的东西, 让它回答关于自己的问题, 再把答案翻过来.

隔了几十年, 换了三个领域, 那条对角线还是同一条.

最后

四页纸. 一张清单, 一条斜线, 每一位翻一下.

无论清单写得多好, 那个新的序列都会出现在同一个地方: 沿着对角线, 和每一行都差那么一点点.

参考

勘误

暂无.