理发师悖论

来自testwiki
跳转到导航 跳转到搜索

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

內容

小城里的理发师放出豪言:他要为城裡人刮鬍子,而且一定只要為城里所有“不为自己刮鬍子的人”刮鬍子。

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

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

历史故事

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

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

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

理发师悖论与罗素悖论

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

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

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

請參閱

Template:悖论