我们玩一个游戏。现在说句话:“我说的这句话是谎话。”请问这句话是真话还是谎话?
你说他是真话它就是谎话,你说它是谎话它就是真话。你该怎么办?
这是一个典型的悖论。悖论是表面上同一命题或推理中隐含着两个对立的结论,而这两个结论都能自圆其说。抽象公式就是:如果事件A发生,则推导出非A,非A发生则推导出A。可能大家更熟悉的是罗素悖论。村里有一位理发师,他立下了一个规矩:他一定要给、而且只给那些不给自己理发的人理发----那么请问,这位理发师要不要给自己理发。
罗素创造这个悖论不是为了证明逻辑不行,而是为了说明“集合论”的问题。我们知道,所谓集合,就是一些东西的聚集。用集合的语言,理发师悖论可以这么表述 —
我们定义集合S,是所有不是自身子集的集合的集合 —— 那么请问,集合S到底是不是S的子集呢?
如果S是S的子集,那它就是自身的子集,根据定义它不应该是S的子集;如果S不是S的子集,它又应该是S的子集。这里听起来有点绕,但是你体会一下,这其实就是理发师悖论。它们都具有“自己包含自己”的特点。这便是自指递归,在这个递归里面,你永远找不到答案。
要想解决这个悖论,我们必须重新考虑集合的定义,我们必须把“集合”和“集合的集合”给区分开才行。更合理的集合定义必须分成下面这些层 ——
第一层,是一堆东西的聚集,称为“集合”。这里所谓的“东西”,都不是“集合”。
第二层,是集合的聚集,称为“大集合”。也就是说,“大集合”是通常说的“集合的集合”。
第三层,是大集合的聚集,称为“超大集合”……
这样罗素悖论是不是就自然解决了呢?
细细体会,韵味无穷。