理发师悖论

维基百科,自由的百科全书
跳转至: 导航搜索

理髮師悖論(Barber paradox)是羅素用来比喻羅素悖論的一个通俗说法,是由伯特蘭·羅素在1901年提出的。羅素悖論的出現是由於樸素集合論對於元素的不加限制的定義。由於當時集合論已成為數學理論的基礎,這一悖論的出現直接導致了第三次數學危機,也引發了眾多的數學家對這一問題的補救,最終形成了現在的公理化集合論。同時,羅素悖論的出現促使數學家認識到將數學基礎公理化的必要性。

內容[编辑]

小城里的理发师放出豪言:他要为城里所有不为自己刮脸的人刮脸,而且只为那些不为自己刮脸的人刮脸。


但问题是:理发师该给自己刮脸吗?如果他给自己刮脸,那么按照他的豪言“只为那些不为自己刮脸的人刮脸”他不应该为自己刮脸;但如果他不给自己刮脸,同样按照他的豪言“为城里所有不为自己刮脸的人刮脸”他又应该为自己刮脸。


用集合论的语言来描述理发师悖论是这样的:小城里的人构成集合A=\{a | a\ lives\ in\ the\ town\},对于每个小城里的人a可以构造一个A的子集S_a=\{x | a\ shaves\ x\},即a给属于S_a的人刮脸。那么,如果城里人a给自己刮脸,则a \in S_a,如果a不给自己刮脸,则a\not\in S_a,如果a不给任何人刮脸,则S_a 为空,即S_a=\{\}。设理发师为s,则理发师的豪言就是:S_s=\{a | a \not\in S_a\}。问题是:如果s \in S_s,这将与S_s的定义矛盾,但如果s \not\in S_s,根据S_s的定义,又应该有s \in S_s。理发师悖论是个逻辑悖论。用集合论语言来描述并不是必需的,只是为了将来更容易说明它与罗素悖论不是一回事。

对其作为悖论的质疑[编辑]

理发师悖论实际上不是一个悖论,它是人们犯的一个逻辑错误。理发师的豪言是一个“非BA”的断言。非BA断言的意思是,A是可以自由取值的,人们可以根据B的取值给A取适当的值以保证断言为真。在这里B是“小城里的某人a给自己刮脸”,A是“理发师给a刮脸”。人们一般认为,理发师给不给某人刮脸是可以被自由决定的,而其实这一想法是不完全正确的。我们知道,“非BA”的断言只在A\neq B的时候才有意义,如果A=B,则非BA断言就变成了非AA这样自相矛盾而毫无意义的断言了,这时候产生自相矛盾也是因为这种情况破坏了A可以自由取值的假设,A被固定为B,不能再自由取值了,换句话说,非BA断言的定义域不包含A=B的情况。如果理发师也是小城里的人,那么对他应用他的豪言正是一种A=B的情况,因为这时B为“理发师给自己刮脸”,A为“理发师给理发师刮脸”,AB是一回事。所以理发师的豪言并不是对小城里的所有人都有意义的,对于他自己,他的豪言就没有意义。人们之所以从理发师的豪言推出悖论,是因为人们没有注意到他的豪言对于他自己没有意义,而在他的豪言没有意义时继续应用他的豪言,这才得出了矛盾的结果。因此,理发师只是说了一句不全面有效的豪言,而犯错误的则是由他的不全面有效的豪言得出悖论结论的“人们”,犯错误的原因,是因为忽视了理发师的豪言并不是全面有效的,它对理发师自己就是没有意义的这一基本事实,所犯的错误是,本应该指出理发师的豪言对于他自己是没有意义的,而人们却忽视了这一点,应用了一个没有意义的断言这一逻辑错误。


在用集合语言描述时,考虑到S_a的初始定义,应有S_s=\{a | (s\ shaves\ a) \land (a \not\in S_a)\},它等价于S_s=\{a | (s\ shaves\ a) \land (a\ doesn't\ shaves\ a)\}。不难看出,当a=s时,集合S_s的定义语是自相矛盾的,因为这时的定义语是:“理发师为自己刮脸且理发师不为自己刮脸”。换句话说就是,定义S_s的性质的定义域不包含理发师自己,而这样的性质是不能用来定义集合的。


用“非BA”的套路还可以构造出许多其它“悖论”,书目悖论就是其中之一,但它们实际上都不是悖论。

历史故事[编辑]

德国数理逻辑大师弗雷格(Frege)曾研究用集合论去描述数理逻辑,为此他还写了一本书。他在给罗素的信中提到他的工作时说他为此构造了一个特殊的集合(A),这个集合由所有不包含自己的集合构成。也就是说,集合A的元素X是一个集合,X自己不是自己的元素,即X \not\in X。罗素在回信中讲述了前面的理发师的故事。聪明的弗雷格看出了这实际上是指出了他所构造的集合A的问题:如果A \not\in A,那么根据定义A应该包含A,即A \in A;但是如果A \in A,那么同样根据定义A又不应该包含A,即A \not\in A。可此时弗雷格的书已经付印,修改已经是不可能的了,弗雷格只能在书中加一个后记并写到:在工作结束之后而发现那大厦的基础已经动摇,对于一个科学工作者来说,没有比这更为不幸的了。


虽然罗素没有直接点出那个弗雷格所构造的集合的悖论,但人们还是将那个集合的悖论称作罗素悖论。罗素悖论可以简单描述为:构造一个由所有不包含自己的集合构成的集合A,即A=\{X|X \not\in X\},但我们无法断定A是否应该包含A,无论包含或者不包含都会导出矛盾。由于罗素悖论只涉及集合的定义和从属关系的判断这些集合论最基础的问题,而集合论又已成为数学理论的基础,因此罗素悖论导致了第三次数学危机。


这一历史故事应该只是一个“故事”,而不完全是历史事实。从看到的一些罗素和弗雷格的通信来看,他们的交流是很学术的。但罗素悖论指出了弗雷格著作中的一个错误,使得他来不及修改他的著作而只能追加一段后记这是一个事实。

理发师悖论与罗素悖论[编辑]

尽管人们经常把理发师悖论说成是罗素悖论,或认为它们是等价的,但理发师悖论和罗素悖论并没有等价的关系,它只是一个比喻。


理发师悖论里的“不给自己刮脸”即a \not\in S_a和罗素悖论里的X \not\in X是不一样的。集合以自己为元素(X \in X)是一个很抽象的概念,通常需要像“所有集合的集合”这样的表达方式才能做到,一般很难用一个构造的例子来说明。但也见过一个十分有趣的例子:如果定义集合N=\{x|x \ is \ set \ discussed \ in \ this \ article\}。则集合N是一个包含自己的集合的例子。


一种新的集合论的观点认为,罗素悖论也不是一个悖论,它也是一个和上述说法类似的逻辑错误,这用到了一个新的经改进的概括公理(comprehension axiom)。但这还有待学术界的认可。

請參閱[编辑]