1
什么是悖论
我们给悖论下一个 " 进行式 " 的定义:悖论就是导致矛盾但原因不明的推理。
根据这一定义,一旦矛盾的原因找到了,悖论也就不再是悖论了。另外,矛盾的原因应该比较难于察觉。
这一定义可能与许多文献中对悖论的定义不同。笔者主张这一定义。
2
理发师悖论
某村有一理发师,恰给本村那些不给自己理发的人理发。请问他给不给自己理发?
若他给自己理发,则他是一个给自己理发的人。按照他的原则,他应该不给自己理发。矛盾。
若他不给自己理发,则他是一个不给自己理发的人。按照他的原则,他应该给自己理发。也矛盾。
这是一段有名的、非常有趣的推理。由于找不出矛盾的原因,这段推理就被称为 " 理发师悖论 "。
但真的找不出矛盾的原因吗?
本文的目的就是说明,其实这一矛盾的原因并不难察觉,故理发师悖论不足以称为悖论。
3
理发师悖论的解决
让我们把理发师悖论再叙述一遍:
某村存在一理发师,恰给本村那些不给自己理发的人理发。请问他给不给自己理发?
若他给自己理发,则他是一个给自己理发的人。按照他的原则,他应该不给自己理发。矛盾。
若他不给自己理发,则他是一个不给自己理发的人。按照他的原则,他应该给自己理发。也矛盾。
如果这一次还不容易看出矛盾的原因,请注意,第二次陈述时,把第一次陈述里的第三个字 " 有 " 换成了 " 存在 "。其他没动。
这样一换,是不是比较容易看出矛盾的原因了呢?
是的,应该说这样一换就比较容易看出,矛盾的原因是假设了这样一个理发师的存在。因此, 这一矛盾无非说明,具有这种性质的理发师(即恰给本村那些不给自己理发的人理发)在本村不存在罢了。
矛盾的原因找到了,悖论也就不成其悖论了,问题也就解决了。
4
文字游戏?
但矛盾的原因是怎样找到的呢?我们把 " 有 " 换成了 " 存在 "。这是不是文字游戏,是不是偷换概念,是不是改变了问题呢?
当然不是。" 有 " 就是 " 存在 "。把 " 有 " 换成 " 存在 ",没有改变问题,只是用语更科学、更醒目,使人注意到,原来这里隐藏着一个 " 存在 " 的假设。
假设,或者说前提,对推理是至关重要的。知道有假设,推出矛盾就不会大惊小怪,无非说明假设不正确罢了。但若不知道有假设,推出矛盾就会无法解释,就要惊呼为悖论了。因此,千万不要丢失、模糊任何假设。
5
引经据典
按说理发师悖论这样就解决了。不过人们可能不太放心,问题破解得太容易了:只换了一个词 " 存在 ",就启发、导致了答案。这个答案太平淡无奇了。
为了让人彻底相信,这个答案一点也不平淡,问题确实出在存在性上,让我们引经据典,回顾集合论创始人康托的一个定理。为此先要回顾一下集合论的几个概念:映射、满射、子集的集。
设 X 和 Y 为两个集。所谓一个从 X 到 Y 的映射 f: X → Y 是指一个法则,它对 X 中的每一 x,指定 Y 中唯一一个元素。这个为 x 指定的唯一元素称作 x 在 f 下的像,记为 f ( x ) 。称 X 为映射的定义域,Y 为映射的值域。如果值域 Y 中的每一个元素都是定义域 X 中某个元素的像,就称 f 是一个满射。如图所示:
我们还需要一个概念:子集所成的集。设 X 为一个集。用 P ( X ) 表示集 X 的所有子集所成的集。例如,若 X={1, 2, 3},则
。
6
康托定理
康托定理 对任何集 X,不存在从 X 到 P ( X ) 的满射。
证明 任取一个映射 f: X → P ( X ) 。要证 f 不是满射。为此令
我们来证明,不存在 z∈X,使得 f ( z ) =C。
为此用反证法。假设存在 z∈X,使得 f ( z ) =C。那么,
若 z∉C,则 z∈f ( z ) 。但 f ( z ) =C,故 z∈C。矛盾。
若 z∈C,则 z∉f ( z ) 。但 f ( z ) =C,故 z∉C。也矛盾。
这说明不存在 z∈X,使得 f ( z ) =C。故 f 不是满射,康托定理得证。
康托定理是集合论最早,也最重要的定理之一。这个定理之优美,大概可以代表人类的智慧。这个定理一般放在大学数学系的三年级课程《实变函数论》中讲,但它几乎不用什么基础知识,是中学生可以理解、欣赏的。康托定理的陈述一般为," 不存在从 X 到 P ( X ) 的一一对应 ",但实际上不存在满射。不存在满射当然就更不存在一一对应。
7
康托定理与理发师悖论的比较
康托定理与理发师悖论有什么关系呢?
我们来给康托定理一个 " 理发 " 的解释。用表示该村的人的集。对每一村民 x,用 f ( x ) 表示村里被 x 理发的那些人的集,即 x 的 " 顾客集 "。那么康托所考虑的集合
不存在 z∈X,使得 f ( z ) =C。翻译成理发的语言就是:
村里不存在这样的理发师,恰给本村那些不给自己理发的人理发。这是康托证明的一个深刻的事实。
让我们把康托推理的过程也翻译成理发的语言看看:
若 z∉C,则 z∈f ( z ) 。但 f ( z ) =C,故 z∈C。矛盾。(若他给自己理发,则他是一个给自己理发的人。按照他的原则,他应该不给自己理发。矛盾。)
若 z∈C,则 z∉f ( z ) 。但 f ( z ) =C,故 z∉C。也矛盾。(若他不给自己理发,则他是一个不给自己理发的人。按照他的原则,他应该给自己理发。也矛盾。)
可见,理发师推理就是康托推理。
8
评 述
那么,为什么康托定理与理发师悖论一个是定理,一个是悖论呢?
康托明确写道,这样一个 z 的存在只是假设。所以推出矛盾毫不惊讶,而是立即做出结论:不存在这样一个 z。
理发师悖论却用日常语言的 " 有 " 模糊了科学语言的 " 存在 "。" 存在 " 换成 " 有 " 以后,就不知不觉从假设变成了天经地义,于是矛盾无法解释,成了 " 悖论 "。可见,我们在前面把 " 有 " 换回成 " 存在 ",确实不是文字游戏。理发师悖论的问题确实出在存在性上。
但说 " 换回 " 对吗?谁先谁后呢?
康托定理(1895),理发师悖论(1907),康托在先。因此,说 " 换回 " 是对的。
康托深刻地证明了,不存在这样一个古怪的理发师。12 年后,理发师悖论全盘照收了康托的推理过程,却模糊了康托的存在性假设,致使矛盾无法解释,造成 " 悖论 "。
这不像个恶作剧吗?
9
关于罗素悖论
读者可能知道罗素悖论,听说过 " 理发师悖论是罗素悖论的通俗版 " 的说法。如上所述,理发师悖论几乎是对康托定理的一个恶作剧。那么罗素悖论呢?
这个问题留给读者追踪、思考最好。但急于知道答案是人类的优良天性,所以也简单说明一下:罗素悖论(1902)显然受到了康托定理的启发,但它与理发师悖论有很大的不同。它的假设隐蔽得多,以致当时的集合论无法察觉。当然该假设最终还是被后来的集合论彻底破解了,所以罗素悖论早已不再是悖论了。但罗素悖论极大地刺激了当时的集合论,对集合论的进步有重大的意义。
【后记】其实,像理发师悖论这样易于破解的 " 悖论 " 可以要多少有多少,都是对康托定理的恶作剧。比如 " 恰爱那些不爱自己的人 "," 恰恨那些不恨自己的人 "," 恰表扬那些不表扬自己的人 "," 恰批评那些不批评自己的人 "," 恰修理那些不修理自己的机器人 "," 恰引用那些不引用自己的书 ",等等等等。理发作为这些 " 反身及物动词 " 中的一个只是特别生动形象罢了。
原文地址:http://www.myzaker.com/article/632d7aab8e9f093ebd0ff4c3