黄汝广
摘要:我们重点考察康托尔对角线法无效的根本原因,并对“理查德悖论”及哥德尔不完全定理进行尝试性分析。结果表明,由于概念缺乏操作性而无意引入的隐性假设,常会导致反证法论证的无效,这也正是悖论产生的一个主要根源。
教育期刊网 http://www.jyqkw.com
关键词 :康托尔对角线;理查德悖论;不完全定理;反证法;可操作性
笔者曾撰文,通过悖论来探讨概念的可操作性,认为悖论的根源是其概念缺乏可操作性。这里,我们主要考察康托尔对角线反证法,有些文献也称为对角线法、逆对角线法或反对角线法。据张建军《逻辑悖论研究引论》介绍,该方法在悖论研究领域有重要应用,如“哥德尔对角线定理”、汤姆逊“对角线引理”、蒋星耀“悖论统一模式定理”等。
但很可惜,康托尔关于实数集不可数的对角线反证法是无效的,文献[2][3]都曾对此作过一定论述,并正确指出了其漏项问题。下面我们先对该方法作一简单介绍与分析,并给出一个实数集可数的构造性证明,再重点考察其无效的根本原因,最后对“理查德悖论”及哥德尔不完全定理,进行尝试性的探讨。事实上,这些问题也一直是争议不断,更早如维特根斯坦,就既不承认康托尔的证明,也不承认哥德尔的不完全定理。
一、康托尔对角线反证法
康托尔的论证大致如下:假设(0,1)
可数,使之与自然数集建立一一对应关系,可得一无穷序列——
1→0.a11 a12 a13 a14 …a1n …
2→0.a21 a22 a23 a24 …a2n …
……
n→0.an1 an2 an3 an4 …ann …
……
然后构造数b=0.b1 b2 a3 b4 …bn …,
其中bn 这样取值:当ann等于1时bn等于2,当ann不等于1时,bn等于1。康托尔认为,数b属于(0,1)却又不是上面序列中的任何一个,因此(0,1)不可数。既然实数子集(0,1)不可数,实数集也必然不可数。
但问题是,假如康托尔方法有效,有理数集也将不可数:假设(0,1)内的有理数可数,将其与自然数集建立一一对应关系,可得一形式完全同上的无穷序列,只是其中的每一个都是有理数而已。但是,我们另外还要求a11=…=ann=…=1:通过位置调整这是可以做到的,且不会造成序列的增减,因此不影响序列的可数性。仍依据前面的取值规则,可得数b=0.222…;显然,按康托尔的逻辑,b=0.222…属于(0,1)内的有理数却又不是上面序列中的任何一个!因此,(0,1)内的有理数不可数,进而整个有理数集不可数!
如此一来,康托尔对角线法的荒谬性就凸显出来了,因为在康托尔理论中,有理数集可数,是千真万确的[5]:有理数集的另一等价定义是全体分数的集合,也即为整数,q为正整数,且p与q无公因子};全体有理数可按∣p∣+q的顺序由小到大排列,∣p∣+q相同的再按p的顺序排列,这样就有:
每个有理数必在此序列中。故有理数集可数。
可是这个论证并不严谨,在上述定义下,完整的论证要点应该如下:首先,∣p∣+q相同而按p排序的任何一个序列,都是有理数集的子集,且一定可数;其次,∣p∣+q不相同,则序列不同,子集不同,有理数集是所有子集的并集;再次,虽然子集有无穷多,但却是可数个;最后,按康托尔的理论,可数个可数集的并集仍为可数集。故有理数集可数。
二、实数集可数的构造性证明
不过,否定康托尔对角线法的有效性,并不能否定实数集不可数的结论。虽然文献[3]给出了一个实数集可数的证明,但与上述有理数集可数的证明一样,论证并不严谨,下面我们给出一个严谨且更简洁的构造性证明。
对于任一自然数n,把“0.”添加在其前面,就可以构造一个对应的小数,比如“1”对应小数“0.10000……”。对所有自然数如法炮制,则可构造出实数子集[0.1,1)。当然,有些小数会有重复,比如“1”和“10”都对应“0.10000……”,但我们只保留一个:也即,[0.1,1)可以与自然数子集,建立一一对应关系。因自然数集可数,其子集必然可数,从而[0.1,1)也必然可数。
如果把[0.1,1)内所有数的第一位小数均减1,可得[0,0.9),它显然可数,则(0,0.1)也必可数。而有限个可数集的并集仍为可数集,所以(0,1)=(0,0.1)∪[0.1,1)可数。通过函数y=tg[(x-0.5)π],实数集R与(0,1)可建立一一对应关系,因此实数集R可数,那么康托尔的连续统假设,实际上也就没有意义了。
当然,这个论证是以康托尔的“可数”定义为基础,如果要否定上述结论,就必须重新思考康托尔定义的合理性;实际上,康托尔的定义是颇有争议的,可以一直追溯到“伽利略悖论”。
三、康托尔对角线反证法无效的根源
很显然,一个集合不可能既可数又不可数,因此结论相互矛盾的两种方法,不可能同时有效,问题出在哪里呢?实际上,至少有两篇文献曾正确地指出了康托尔对角线法漏项的问题,但可惜康托尔没有意识到。我们猜测,康托尔也许是被其“对角线”的无限延伸性给蒙蔽了:乍看之下,无限延伸的对角线似乎可以贯穿上面序列的任何一个,但实际上并不是这么回事。
依据康托尔的论证不难看出,上面无穷序列的关键部分是一个无穷矩阵;同时,由构造数b的过程还可看出,只有当矩阵是正方矩阵的时候,其“对角线”才是真正的对角线,即可以贯穿矩阵的每一列每一行。但对于十进制小数,每一个数位上有10种可能性,上述无穷矩阵并不是正方矩阵。
要考察无穷矩阵,一种比较可行的方法是从有限矩阵开始,然后对其取极限:对于(0,1)内所有的n位有限小数,其对应矩阵只有n列,但远不止n行,而康托尔“对角线”,仅能贯穿n列n行,占矩阵总行数的比例很小;当n趋于无穷大时,极限矩阵即前面的无穷矩阵,不过与此同时,也得到了上述比例的极限——0!换言之,当康托尔“对角线”无限延伸时,绝大多数的行都没有被贯穿的,而上面构造的数b,不过代表其中的一行而已。
但是,问题并没有就此结束,我们要问:会不会存在其它方法,能够构造出数b=0.b1 b2 b3 b4 …bn …,它“属于(0,1)却又不是上面序列中的任何一个”呢?答案是不可能。因为在现有理论中,康托尔的无穷序列与(0,1)其实是同一回事,“属于(0,1)却又不是上面序列中的任何一个”是违反同一律的固有矛盾;要避开矛盾,唯有否定数b的上述存在性。
当然,还可以继续问:如果消除上述矛盾,数b是否可能存在呢?答案仍然是不可能。因为要消除上述矛盾,小数集必须是实数集的真子集,也即数b必定不是小数;但以“0.b1 b2 a3 b4 …bn …”形式构造的数b,又必定是小数。
事实上,单纯从形式看,康托尔无穷序列必包含了(0,1)内的一切小数,怎么还可能构造出一个属于(0,1)却又不属于该序列的小数呢?一句话,康托尔的根本矛盾,其实在于他想以小数形式来构造出一个非小数!
现在,康托尔证明的整个脉络就清晰了,原来在其论证中,实际上存在两个假设:一个是明显但不相关的——实数集可数,一个是隐藏但非常根本的——符合要求的数b存在。由于没能发现对角线法的漏洞,康托尔误以为自己构造出了符合要求的数b,从而把最根本的假设当作了事实,结果另一个不相关的假设成了替罪羊!
四、理查德悖论,及哥德尔不完全定理
有意思的是,虽然康托尔对角线法无效,但蒋星耀利用该方法得到的“悖论统一模式定理”,在结论上却是正确的[6]:产生悖论的原因是“误会”,即错误地把一种东西当成了另一种东西。或者说,悖论是由于无意识地偷换概念,而违反同一律的结果,这实际上是对悖论的一个完全否定。
既然是想要一揽子解决所有悖论,对于有名的“理查德悖论”,当然不会避而不谈:把自然数的性质一条条写下来,并用自然数给它们编号,如果编号与所标性质内容不符合,该编号即称为“理查德数”,否则称为“非理查德数”;再对“理查德数”编号, 问这个编号是不是“理查德数”?
无论回答是还是否,都将得出矛盾。
蒋先生认为,是否“理查德数”并不是原始意义下的自然数性质,基本上触及到了本质,不过其具体分析存在一些问题。
比如,江育奇就曾撰文进行质疑,认为有些论述让人莫名其妙,并追问什么是自然数的性质。
首先要牢记,“理查德数”本质上只是一种数字形式的名称标签,与单纯的“自然数”是两个完全不同的概念,因而算术性质对于“理查德数”是没有意义的:比如对编号数字进行运算“1+2=3”,这表示什么意思呢?难道编号3对应的自然数性质是编号1与编号2对应的自然数性质的复合?
其次,性质是需要载体的,并且应该是其固有属性,比如“自然数1是奇数”,在任何时候都如此。而按悖论中的定义,把“1”作为“偶数”的编号,则“编号1是理查德数”,但若作为“奇数”的编号,则“编号1不是理查德数”。因此,是否理查德数,还与编号的指派方式有关,它不可能成为任何一个自然数的固有属性。
第三,悖论中交叉否定的定义方式也很成问题。事实上,如果把与所标性质内容相符合的编号称为“理查德数”,不符合的称为“非理查德数”,同样的问题就不再产生矛盾;否则的话,理查德完全可以采用这种定义来构造悖论。因此,根据归谬法,我们有理由怀疑交叉否定式定义的正当性。
关于哥德尔不完全定理的证明,与“理查德悖论”其实很相似,而且与“理查德悖论”将“算术性质”随意泛化一样,哥德尔也有一种将“函数”“公式”“性质”等概念随意泛化的倾向:比如哥德尔定义的“SUB函数”,并不是一个真正数学意义上的函数。当然,“哥德尔数”也与“理查德数”一样,只是一种数字形式的名称标签,其迭代计算实质上没有意义。而且,并非所有的自然数都是“哥德尔数”,或者说“哥德尔数”本身相对于自然数就是“不完全”的,那么,哥德尔不完全定理会是一个同义反复么?
同时,哥德尔定义的不可判定公式,也同样是交叉否定式的,而且他还混淆了“可定义”性与“存在”性:似乎凡能用符号书写出来的,就是可定义的,就一定存在;但正如文献[9]所说,不可判定公式是违反同一律的,因而它不可能存在(实际上,塔斯基正是利用“A≠A”来定义空集的)。一个逻辑上根本不存在的东西,其“哥德尔数”又如何计算呢?哥德尔的技巧,是用符号代替具体计算,但这实际上就隐含地假设了其存在性。
因此,我们也许可以更直白地说,哥德尔不过是把自己构造的逻辑矛盾,嫁“祸”于公理体系,声称它“不完全”而已。
但据哥德尔辩解说,其证明的一个关键是“可证”与“真”的严格区分,一个真的命题,在表达它的公理体系内可能是不可证的。那么,判定这样一个命题为真,必然要利用体系外的东西,而哥德尔并没有说清楚这体系外的东西到底是什么。
更何况,根据哥德尔的“ 可证”定义,任给两个哥德尔数对(m,n),可以判断是否是“ 证明对”—— 如果(m,n)是“证明对”,也即哥德尔数为m 的序列是哥德尔为n 的序列的一个证明;但是任给一个哥德尔数n,却没有有效的方法来判断是否存在哥德尔数m,使得(m,n)是“ 证明对”。因此,哥德尔所谓的“可证”,只不过是一种事后诸葛亮式的说明而已,并不是一个基于方法学意义上的判断。
另外,哥德尔证明与“说谎者悖论”也密切相关,仿照文献[12]的分析,我们可以得出结论:所谓“不可判定命题”,实际上应该是“不可根据自身判定的命题”。
五、结论:小心隐性假设陷阱
总之,由于概念缺乏操作性而无意引入的隐性假设,常常是反证法的陷阱,也是悖论产生的主要根源。当然,这样的悖论都是“伪悖论”,一旦隐性假设暴露出来,它们其实可以转化为一个反证法证明。但也不要忘记,布劳威尔等直觉主义者并不承认反证法,换句话说,使用反证法本身就包含了一个隐性假设——反证法是有效的!
很显然,哥德尔的证明也运用了反证法,因此即使其各论证环节无懈可击,也不一定是公理体系不完全,还可能是反证法自身的局限性!实际上,如果不完全定理成立,在一个体系内命题会有三种情况——真、假、无法判断真假,排中律不再成立,反证法无效!
最后,哥德尔的证明实际上还利用了所谓的定理“从一个矛盾出发,结果可以是任何东西”,但正如侯世达指出的那样,如果按照安德森和贝尔纳普的“相关蕴涵”原则,这个定理根本推导不出来。而且,即使不考虑“相关蕴涵”,该定理也很成问题:因为其推导的一个前提是“P∧~P”,这个前提在逻辑上必然为假,而前提为假的推理是不可靠的!
教育期刊网 http://www.jyqkw.com
参考文献
[1]张建军.逻辑悖论研究引论(修订版)[M].北京:人民出版社,2014.
[2]欧阳耿.罗素悖论与康托在集合论中的两个失误[J].贵州师范大学学报.2002,20(3):81-84.
[3]沈卫国.论康托对角线法的局限性与数学、逻辑学中的一些基础性问题[J].天津职业院校联合学报,2008,10(3):114-123.
[4]庄朝晖.基于直觉主义对哥德尔不完全性定理的评论[J].厦门大学学报(社会科学).2008(2):77-84.
[5]杜珣.现代数学引论[M].北京:北京大学出版社,1998.
[6]蒋星耀.悖论的统一模式[J].自然杂志.2001,23(3):184-185.
[7]江育奇.质疑“悖论的统一模式定理”分析悖论的方法[J].广东教育学院学报.2006,26(5):52-54.
[8]陈波,主编.逻辑学读本[M].中国人民大学出版社,2009.
[9]陈慕泽.正确理解哥德尔不完全性定理[J].湖南科技大学学报(社会科学),2008,11(2):27-30.
[10]温邦彦.说谎者悖论的排除和哥德尔定理的质疑[J].重庆工学院学报(社会科学),2008,22(3):13-17
[11]侯世达.哥德尔、艾舍尔、巴赫——集异璧之大成[M]本书翻译组译.北京:商务印书馆,2014.
[12]黄汝广.由悖论看概念的可操作性[J].改革与开放,2014(6):69-70.
(作者单位:深圳南天电力有限公司)