1. 康托对角线法中的逻辑推理问题详析
根据笔者以往论文中的详尽讨论 [1] [2] [3],经典的康托对角线法实际隐含逻辑循环或言循环论证,也就是无意中把欲证明的结论当做前提了。用逻辑公式的形式表示,即为:
康托对角线法实际能做到的反证法是:(A→B)→(﹁B→﹁A)
其中A为命题“实数可数”,B为命题“全部实数可与位数一一对应”。(注意,这里是简化说法,详细的完备说法见前文中,比如“顺序”、“激活”、“可变状态”等等限定词这里都省略了)。这个命题当然等价于“由所有位的全部不同排列组合的状态数可与由之产生的位数顺序地一一对应”。直观上,由位数的由来、意义、作用,就不可能。当然还有证明。
在康托的经典(非完备)的对角线法的表述中,上式中的B仅仅为“全部实数可以在表中排成一列”。这在“实数可数”的前提下是显然的,由可数的定义直接得到的,所以无须证明。因此,在康托的非完备的对角线法中,(A→B)为真。所以自然可以先假设“A为真”,也就是“如果实数可数”(为真)。由此,由康托的经典的(非完备)对角线法的反证法,看似可以“求得”﹁A,即A的反命题“实数不可数”。但前文早已详述,康托对角线法实际能做到的,是依赖于“位数”、多进制下的每位、“顺序一一对应”、“每位可变状态”这些前提的。于是问题就不是康托认为的那么简单了。此时的(A→B),加进这些隐含的、对角线法所必需的假设、前提后,就成为“如果实数可数,全部实数就可与每一位一一对应”,而这个(A→B)为真与否,也就是能否作为对角线法的前提,是需要证明的。而要证明其为真,恰恰需要由本来有待证明的(﹁B→﹁A)来证明。即(﹁B→﹁A)→(A→B)。这当然是逻辑循环,也就是循环论证。当然,如果B真,也就是“全部实数可以与每一位一一对应”为真,则A自然也真,也就是“实数可数”为真,同时(B→A)自然也为真,但这推不出(A→B)。即我们没有(B→A)→(A→B)这样的逻辑关系。进而,由前文我们已经知道,正是由对角线法(前提当然不同于康托的),我们可以得到:(B→C)→(﹁C→﹁A),其中B的定义与上面相同,而C为“全部实数可以排成一列”。由对角线法,我们得到否定的结果,从而推出结论﹁B,也就是“全部实数不可能与每一位在那些隐含的前提下一一对应上”。这是已经证明的事实了,于是,(A→B)不可能为真,也就是实际上我们有﹁(A→B),当然(A→﹁B)就更不成立,于是,我们不可能再做出假设“A真”也就是“实数可数”,因为(A→B)根本不成立。于是,康托想通过对角线法的反证法而得到“A假”也就是“实数不可数”的目的是达不到的。总之,实数可以不与自然数一一对应(这当然并不是不可数),和实数不可以(绝不,总不)和自然数一一对应(这才是“不可数”),是两回事,我们不应混淆。
由以上的分析应该非常清楚康托对角线法的所谓反证法的逻辑脉络了。我们还可以这样看这个问题:康托先是假设了命题A(实数集可数),想用、或以为用其对角线法证明了“非A”(实数集不可数)。但其实际能做到的仅仅是假设了“A与B”(其中B为“所列可数的实数集与其自己的元素的位数一一对应”),由反证法,康托实际得到的并不是其想得到的、以为已经得到的“非A”,而是“非(A与B)”,按简单的数理逻辑规则,有:
非(A与B) = (非A)或(非B),它原先想、或认为已经证明的“非A”,其实并没有被证明。因为在这个式子中,两个命题是“或”的关系,而由于对角线法的“操作本质”,命题B与“非B”都是“刚性”的,必须的,于是,“非A”(也就是命题“实数集合不可数”)并没有被证明。在上述所谓“反证法”中,A与“非A”,都没有被证明。也就是其成立与否并不影响整个式子的真值性。
当然也可以这样等价地看这个问题:如果没有明确地提出康托对角线法的“隐含”假设B,则由于对角线法的规则,决定了原先康托所列出的、假设可数的全部实数集,其实不过只能是实数集的一个真子集,而不可能是整个实数集。这个真子集与其元素的位数一一对应(通俗说就是“数量一样多”),换句话说,就是其想证明的东西,已经包括在其前提中了。因为无论有限还是无穷情况,一个与多进制下位数一样多的集合,显然比这个多进制下这个数量的位数所可以表示的数要少的多。于是,也可以把这种证明错误看成是逻辑上的“循环论证”。等于是自己证自己。
以下视角,也许使问题更加清晰。我们可以设计一个“反对角线法”,就是先找任意一个实数A,然后逐位求反,而每位求反后,都找一个相应位与求反后的A的那一位的数值一样的实数,依次类推。这样得到的一个实数列表,从一开始就排除了实数A。它的本质,是先把A单独挑出来,再去建立不包括A的实数子集。它与康托对角线法没有实质不同,不过前后顺序正相反而已。但我们看到,这里从一开始建立的就是实数的真子集,也就是不完备的实数集。我们不可能还有先假设实数可数,然后就单独挑出一个实数,去建立不包括这个实数的实数子集,就说实数不可数了。这里完全没有这样的逻辑。实数可数这个假设根本插不进去,也就根本无由证明它的否命题。康托对角线法的结构与上面的“反对角线法”没有什么不同,不过次序相反。“反对角线法”是直接主动建立非完备实数集(子集),而“康托对角线法”是徒具反证法的形式,就是先假设实数可数,而且可以排成那么一列(一张表),再通过难以察觉的隐蔽方式偷偷地改变了这张表,以找出一个不在“改动后”的表中的实数(对角线上求反得到的那个实数),然后宣称“证明”了“改动前”的表是不完备的。而事实上,你只要去求反(改动原表)而得到原表外的实数,表立即就“变的”不完备了。这与主动直接建立一个不完备的实数表根本没有不同。不过一个显然,一个隐蔽而已。事实上,康托对角线法等价于使用了选择公理。而选择公理的本质,就说按某种规则,选择某集合的一些元素组成该集合的一个子集合。前文已经讨论了,康托对角线法的本质,就是在前n位的2n个不同的组合形式可以表示的2n个不同的实数中,仅选择n个组合表示的实数,这就是那张二维表中的所列出的实数,这当然是整个实数集的一个真子集,而且与位数是顺序一一对应的。从这个角度,也可以看出康托对角线法的本质与局限。
此外,笔者在文献 [10] [11] 中讨论了所谓“十–一混合进制”下及“三维立体”下的康托对角线法在证明实数集合不可数的适用性问题。指出了其局限性。也就是说,对角线法的使用严重依赖于多进制的每位多值性(而且必须是处于“激活”状态的)和多进制下的、从第一个实数及第一位开始的(隐含这张表存在这个“第一”为条件)每位与实数个数的逐位、逐个的严格的一一对应(对角线所要求的)。而这当然构成一个特殊的函数关系,也就是对角线法所依赖的隐含的也就是在对角线法中没有明说的前提条件。但注意,实数可不可数,是没有这个前提的,也就是完全不依赖于这个前提,即对实数可数、不可数的定义而言,这个前提条件(隐含着的),完全多余。而这也是笔者论证康托对角线法没有证明实数不可数的依据。换言之,如果我们改动上述函数关系的任何一个(作为数学,这当然必须被允许),都足以使康托对角线法无由进行下去,其结果也就是无法证明实数不可数。当然,在“十--一混合进制”下,由于仍旧不能彻底摆脱多进制因素,所以如果我们不按每位而是按该进制下的“每十进制段”来改变每段的一进制表达,找出不在该表中的实数仍是可以的,但这不是典型的“对角线法”了,而可以称为是“类对角线法”(篇幅所限,从略)。该文图1所示三维情况,也是一样。尽管把这两个平面展开成一个无始无终的平面,如不改动其中实数已经排好的位置(严格说,任何的一个可数排列,都要依赖于一种具体的排法。比如有理数可数,就不能随便去排,如把作为有理数的整数1、2、3、4、......次序去排有理数,就就永远也排不出所有有理数。因此严格说,一旦假设一种排法排出了所有一个集合,就不能随意更动其排列顺序,对无穷集合应该如此),就无法再用对角线法,因为它没有对角线。但我们仍旧有办法可以找出一个实数不在此表中,它等价于把此表合成一个有起始位的表,其中原先的表中顺序排列的实数元素要“交叉”地排在新表中。也就是要改动其顺序、位置。然后重新对此表运用康托对角线法。总之,只要是在:1、多进制下,每位多状态;2、有起始位置;3、顺序逐位、逐个一一对应,则此实数表必不完备,也就是列不出全部实数。但这绝对不是实数不可数。比如经常有教师在回答学生“把对角线上“产生”的那个实数加在原表中,实数不就又可数了”的问题时,总会也只会说“那你再在此表中运用对角线法”不就得了。学生往往也无话可说了。但真的就此打住了吗?非也。康托对角线法的假设是:“如果实数可数,它就可以排成一列,............”。在多进制等前提下,通常被认为否定了这个假设。但前已述及,在如此多的隐含前提下,实际“任何一列”,就成了“这么一列”,它绝不再是无条件、无前提的了。于是此时的“否定假设”,等于是要么否定实数可数,也就是不可数;要么否定的是它可以“这么地”排成一列。也就是实数虽然可数,但却只是不能这么地(有条件地)排成一列。也就是即使实数不能这么排成一列,也不见得就是不可数。前述老师说的没错,对角线法当然可以不断用下去;但他同时忘了,对角线法产生的新实数照样可以不断添加到原系统中去,形成新的可数集。因为康托早有结论:一个可数集加1,不断加1,甚至加一个可数集合,仍旧是可数的。由于所谓不断地重复康托对角线法,只能是可数多地进行这种“重复操作”,因此,我们可以把所有对角线法产生的新的实数的全部组成一个新的可数集合(它本身当然不能再进行对角线法了,就如任何整数加1还是整数,但所有整数集合再加1可就不是整数了)。这个集合,当然不能再用对角线法去证明其不可数(因它本身就是对角线法的直接产物)。前述“老师”只看到事物的一面,而没有看到事物的另一面。除非我们能够证明,不能“这么”排成一列的实数就是不可数的,但这是另一个证明了,对角线法由于被揭示出是需要额外的隐含假设的,因此已经不行了(对角线法只是证明了不能“这么”排出全部实数,但这不是不可数)。
总之,问题的实质是,既然多进制的位数与所列实数一一对应上了,实数就不可能由这个特殊的、有前提条件的“列出”全部表达出,但这不是不可数。直观地理解,所谓多进制下的每一位,它都有多于1的状态,而这个多状态是干什么的?人们摆脱原始的结绳记事、计数,发明多进制干什么?它不就是用较少的位数,来表示更多的数吗?它的目的,就是使位数与多进制可以表示的数之间不会一一对应。如此,才可以用少的位数,表示更多的数。也就是,位数对它所可以表示的数的数量而言,是大大被“压缩”的,如此,现在把位数与列出的实数一一对应了,而多进制可表示的数由前述理由可以大大多于位数,所以,位数不能与它所可以表示的数(这里是实数)一一对应是显然的。但这不是不可数。有理数也不能与位数一一对应,但有理数却可数。
此外,前述有理数也不能与位数一一对应,指的是按康托这么每一位对应一个有理数的方式,也就是函数关系。任何对应,都是在一定的方式下的,也就是函数关系下的,没有无往而不适的所谓抽象的对应。我们说什么和什么对应上了,并不是永远就非得对应,而是在这个函数关系下,它们对应上了。有理数的可数性,是怎么实现的?也就是证明的?用类似对角线法的方法可以证明吗?也就是把有理数表示成无穷小数,一一排列,能证明有理数可数?有人认为,可数的位数不能与实数一一对应,就是实数不可数。这是大错!可数、不可数的定义中,没有也绝对不会有这个对位数要求。如果有,定义中就要老老实实地写上,数学不是要求严格吗。“位数”的属性不仅仅是其总数可数,而且还有位数的每一位是多态的(多进制下的),而这个多态,又恰恰是用于表示不同的实数的。其目的恰恰就是用较少的位数去表示尽可能多的实数,以压缩表示空间。如果位数与实数一一对应,表面上是一个一一对应,但由于每一位的多值性,这实际上是一个一对多的对应,用函数的话就是“隐函数”、“复合函数”的概念。打个比方:如果有人拿一元钱的票子,换另一人十元的票子,说咱们一一对应,一张换一张。任何人会换吗?谁都知道十元钱的票子可以顶十张一元钱的票子。这里直接把“十元钱”对应于对角线法中的“位数”,把“一元钱”对应于表中的实数个数,再多动动脑子想一想,看谁还会不明白?而康托对角线法等于是说,既然十元一张的票子与一元一张的票子可以张张地“一一对应”,于是所有一元票子的总价值就不可能等于所有十元票子总价值。是这样吗?我们多印一元市值的票子,完全可以使二者等值。只要不再要求张张一一对应,而是按市值对应,即每一十元票子可以对应十张一元票子即可了。实际上,之所以央行在已有一元票子的基础上还要发行印刷十元票子,是为了用较少的纸张更多地表示钱的市值,目的与功效与人们创建多进制一样。不得不用如此浅显的例子讨论数学、逻辑方面的问题,只能说是不得已,而且还很必要。
2. 戴德金分割中的矛盾分析
从另一个角度,我们也可以看到如果实数不可数,将使理论极其尴尬。我们知道,戴德金分割唯一地决定了一个实数,同时任何两个实数间都有无穷个有理数,无论这两个实数靠的有多么近。没有两个戴德金分割是完全相同的。也就是,必然会有出现在这个戴德金分割右边的有理数,却出现在另一个戴德金分割的左边。由于有理数的个数可数,就算会出现极端情况,也就是每两个戴德金分割左右边不同的有理数只涉及一个有理数,戴德金分割也只能有可数个。更何况每两个不同的戴德金分割左右不同的有理数,实际是无穷多个,也就是,戴德金分割的总数绝不会比只涉及一个有理数的情况多,如果不少的话。也就是,要么有理数也不可数,要么就是实数可数。二者必居其一。但我们早就知道,有理数是可数的,于是唯一的可能,就是实数可数。如果我们依然坚持对角线法无问题、实数不可数的结论,就会产生矛盾。这实际可看作是一个实数可数的间接证明。
总之,根据戴德金分划理论,每一个戴德金分划决定一个唯一的无理数;同样,反之亦然,每一个无理数决定一个唯一的戴德金分划。但按康托对角线法,无理数是不可数的。但有理数可数。于是,可数的有理数,可以实现不可数个只由有理数构成的戴德金分划,就是戴德金分划理论成立的必要条件。此问题似乎这么多年,就没有人明确提出过。但显然是个问题。其实,两个不同的戴德金分划,充其量也只能有一个有理数不同。即在戴德金分划A中有一个有理数在分划的右集合(元素都大)中,在戴德金分划B中,该有理数在分划的左集合(元素都小)中。而且这两个分划只有这个区别,其它元素(有理数)在分划的左右位置不变。由于最极端情况下,也就是不同分划,只涉及一个有理数,那么,有理数的总数是可数的,于是,戴德金分划的总数,充其量也是可数的,不可能不可数。除非一个戴德金分划可以对应起码无穷个无理数,但这显然不符合戴德金分划理论。此问题应该称之为“戴德金分划悖论”,其实本质地说明了现有实数不可数理论是有问题的。
3. 康托超限数理论中的隐含矛盾
综上可以看出,所谓传统康托理论(集合论)中的“层次无穷”的相当繁杂而无任何实际用途的“超穷数”系统,是传统理论的“定理”性的结论,它完全脱离数学其它分科的实践。某种意义,是康托的无奈之举。正是由于对角线法,康托不得不得到这个结论。这个结论显然并不符合他实无穷的初衷。因为由康托定理,没有最大集合。只能是一个向上“开口”的无穷大,本质显然是回到了潜无穷。而康托一再倡导的实无穷,不得不退居次席,成了在局部才可以实现的了。所以对康托而言,他想必很清楚,他的理论在总的方面是失败的。
特别值得一提的是,笔者最近发现,康托的理论,实际是隐含矛盾的。因此这就不仅仅是一个繁琐、无用的问题了。这个矛盾是:康托从实无穷的自然数集合(阿列夫0)出发,用不断、反复求子集合的集合的方法,依次得到基数序列阿列夫0、阿列夫1、阿列夫2…等等。由与康托对角线法密切相关的康托定理,没有最大基数,因此这个序列没有最大元素。如果这个序列被看作潜无穷过程,那么,由于其与自然数集合是同构的,也就是一一对应的,于是,为了理论的一致性,这里的自然数集合也应该是潜无穷的。而如此一来,就不会再有基于实无穷的“所有子集合的集合”,也就是不可数集合存在;而如果该阿列夫序列可以被看作一个实无穷集合,于是其必如自然数集合一样,有一个所有子集合的集合(幂集合,不可数),而这个集合按定义,应该还在原先的那个阿列夫序列之中。也就是原序列的元素之一,而不是在原序列之外。也矛盾。此矛盾笔者称之为“潜无穷、实无穷悖论”。它充分说明康托理论是隐含矛盾的,并不像以往人们认为的没有矛盾。因此,我的努力,实质上是试图恢复康托的初衷。但颇具辩证意味的是,这是通过指出其对角线法的逻辑问题来实现的。显然,一些人认为的康托现有理论如果被修改,就会导致现有数学大厦的倒塌,会彻底破坏全部数学的基础的看法是没有任何根据的。
4. 康托定理与康托对角线法的同构性分析
康托定理在集合论中的地位毋庸讳言。其与对角线法的关系,早被论及。但笔者一直似未见具体分析。笔者早年的著作中,对此曾有分析 [4] [5] [6]。笔者甚至怀疑,有人也许认为对角线法“过于”直观、简单(这倒成为缺点了?),不够“数学”或所谓的“专业”,因此在自己的相关著作、讲义中绝口不提对角线法,而以更复杂、抽象的康托定理为出发点去讨论问题,讲授课程。笔者百思不得其解。只能说,把一些简单的概念搞的复杂一些,玄虚一些,是一些学者不自觉的本能罢了。此类做派,绝对无补于问题的讨论。笔者这里就是要揭示二者间的同构性,以期还理论的本来面目。下面直接引述陶诗轩的实分析一书中康托定理的证明(详见附录)。将该证明中的A看成对角线法中在对角线上逐位求反后得到的那个实数;而将x看成是对角线上的每个具体的自然数,这里不是指位数;f(x)指的是对角线法中纵列所列出的那些实数。这里重点举例讨论一下x与f(x)间的关系。
如:
,这里左边列出的是康托二维表中的第一个实数,其小数点后的第一位是1;而最右边的x=0,是指对角线上对第一个实数的第一位“1”求反后的那个数,当然为“0”;
,这里左边列出的是康托二维表中的第二个实数,其小数点后的第二位是0;而最右边的x = 01,是指对角线上对第二个实数的第二位的“0”求反后的那个数“1”,加上前面的第一步得到的“0”,为“01”;
,这里左边列出的是康托二维表中的第三个实数,其小数点后的第三位是1;而最右边的x = 010,是指对角线上对第三个实数的第三位的“1”求反后的那个数“0”,加上前面的第一、二步得到的“01”,为“010”;
依次类推。注意,这里的01 ≠ 010,个位看成在右边。
可以看出,这里的关键是条件“x不属于f(x)”,由上面的讨论,这是由“逐位求反”得到的,它当然依赖于二进制下的每位有两个状态这个前提。而同时实际在系统中又假设了f(x)表示了所有幂集的元素(也就是所有子集合),于是x又应该属于f(x),也就是它的元素,从而产生矛盾。于是,我们看到康托定理的“证明”与康托对角线法间的本质相关性。尽管通常它们被隐藏在了那些看似“严格”、抽象、费解的数学行话下了。二者是同构的。我经常、同时也完全有理由怀疑,专家们对他们频繁使用的这些“行话”的真实理解是否到位。
由以上分析,康托定理的有效性与康托对角线法一样,是成问题的,其结论对无穷集合而言,必须被否定。也就是,它与康托对角线法一样,也是要依赖于特殊的对应方式的,因此不能由此得到普遍性的结论。由特殊到一般的推理,只能是推测性的,而不是确定性的。
特别值得注意的是,既然康托定理与康托对角线法同构,那么,反过来,由康托定理,我们也可以看出康托对角线法的本质。上面那个对A的定义很明确,正如我们不断强调的,康托对角线法中在对角线上靠逐位求反得到的那个实数(康托定理中是自然数集合的一个子集合)A,不过是定义出来的(见上面引文中A的定义),而并不是证明出来的。这正是笔者一再强调的事实 [7] [8] [9] [10]。从与康托对角线法同构的康托定理,我们很清楚地看到,最后的那个悖论性的矛盾,是直接由A的定义推出来的。而同样的结果,在康托对角线法中,却被认为是“证明”出来的。
5. 再论“层叠集合观”的困境及与康托定理有关的内在矛盾及测度论所隐含的问题
由康托定理导致的“层叠集合观”,仔细分析,实际要依赖于时间进程。因为显然,所谓“某集合的所有子集合的集合”,该集合自己要先已存在,然后才谈得上其子集合。这里的“先”、“然后”,都是时间的顺序、进程概念。时间是无尽头的,显然趋于无穷,而层叠集合观所要求的一个比一个大的集合,也没有最大的。二者完全协调,而且时间进程的无休止,是更基本的因素。如果说所有的“所有子集合的集合”,不必依赖时间因素,行不行?我们说不行。如果在某时刻、瞬时,所有的“所有子集合之集”也就是所有层叠集合中的各层的集合都同时存在,则必是一个“实无穷”的结构,而按照康托定理,这是不可能的。而在某一时刻(没有哪怕再小的时间进程)的一个潜无穷序列是根本无法描述、定义、想象的。因为显然,在某时刻,是不可能想象什么“一个比一个更大的集合”的。注意,这里的无穷与层次,与自然数的情况不同。自然数虽然一个也比一个大,而且无穷尽,但仍可以将其看成一个整体,也就是实无穷的“自然数集合”。但由康托定理,这在层叠集合观中不再被允许。康托定理不能承认有这个最大集、整体集存在。因其“证明”的就是这样的整体实无穷集合不存在。但如果时刻、瞬时不能有这种层叠集合,在依赖时间进程的层叠集合观也有问题:因为它有一个每层的“产生”速率问题。这个速率本无限制,也就是在某瞬时可以趋于无限,于是这又成了瞬时下的实无穷观了,因此,无论怎么看,层叠无穷观都是内含矛盾的。既然这个类似悖论的矛盾是由康托定理而产生的,这就说明康托定理的结论有问题,其证明过程有问题。根据本文前面对康托定理证明过程的分析,这个问题并不难发现。也就是那个“x不属于f(x)”的条件是一种特殊的对应方式,不具普遍意义。其与康托对角线法同构,本质上并无不同。值得注意的是,在康托定理的实际证明也就是与康托对角线法类似的证明中,x的个数是可数的,也就是可以列出的。但一般的康托定理的结论,是对任意大的不可数都成立。显然,这是一个超出其实际证明的一个推论,而且是未经证明的推论。也就是在这个推论中(不是实际的证明中),上面所说的x的个数,可以是任意大小的不可数的。而如果x就已经是不可数的,难道还有“比不可数还不可数”这么一说吗?就算没有,两个不可数集间不可一一对应,究竟指的是什么,如何验证?我们看到,康托对角线法以致实际的康托定理的实际证明,都是由可数推及不可数,但不可数是如何可以推及“更不可数”的?对角线法肯定不行,因为不可数集已经肯定不能被排成一个纵列了,所以无法再作此假设,前提不再存在,也就谈不上以下的证明过程了。康托定理的证明,表面上与对角线法不同,但经本文前面的分析,其实本质一样。总之,退一步讲,就算康托对角线法等证明方法确实已经证明了有不可数集(笔者早已论证,这实际上并未实现),康托定理为人们所忽略的是,也不能外推到比实数集更大的集合(理由上面已经讨论了)。以下我们可以更仔细地讨论一下这个问题。我们说,可数,就是任选一个可数集中的数(或更一般地“元素”,且无论多大),然后按某种次序(比如从小到大,或像数有理数那样的排列顺序),总可以数到该数。而不可数,则同样任选一数,就找不到这样的规律、顺序等来保证可以数到该数。这就意味着,我们如果定义、规定了一个在不可数集域上的性质、对应关系,或与其它不可数集合全域上的一个性质、对应关系,我们不但无法一一验证它,也无法保证该定义、规定的可实现性或真实性。而这一切,都由康托定理、也仅由康托定理得之。由此看来,康托定理如果无瑕疵,对能否与可数集一一对应,起码是可验证的(因为前文已述,如果可数其任何元素就总可以按某顺序、规律早晚被数到)。但对两个不可数集间的一一对应关系可否实现,就无法验证了。也就是无法定义(无法确定定义本身是否正确),而这个结果正是由康托定理得到的。但康托定理本身(在得到、推广到两个不可数集间的对应关系时)就依赖于(建立在)这个不确定的、无法验证的不可数集间的某对应关系之上的(如康托定理证明中的定义“x不属于f(x)”)。即:如果康托定理成立(可验证、可定义),则可得到对不可数集间的对应关系而言,它不可验证;由此又可推出(得到)康托定理对不可数集的论域本身是不可验证的,也就是说,康托定理对不可数集间的对应关系的断语是不成立的。因为成立与否不可验证,因此与其初衷也就是原先的结论矛盾。以往,人们显然只认为由康托定理推出了层叠无穷,而没有意识到层叠无穷观所面临的问题,在康托定理的实际证明过程中已经存在了,因此这个证明大成问题。
此外,如果实数集合(连续统)是可数的,积分中的“测度”概念应该更加清晰与完备。我们知道,测度是定义在连续统之上的,而且具有“可加性”,也就是可数性。但连续统如果是不可数的,其子集合当然也不可数。也就是没有可加性(或对等的“可减性”,即可数地不断减少)。于是,必须具有可加性、可数性的测度,显然对整个连续统(实数集)是非完备的。这是因为可数的集合,不可能和不可数的集合的元素一一对应所致。因此本质上,根本无法证明现有很多数学结论是正确的,理由再简单不过了:所有数学命题、运算规则、运算步骤及这里提到的测度都只能是可数的,而数学所要研究、表达的对象、元素、集合却是不可数的,由不可数的定义即知,它不可能被可数地表达出来。也就是说,测度甚至整个数学规则、步骤、运算等,对其所要研究、表达的对象(数系、元素、集合)是不可能完备的。而如果连续统可数,这个问题自然就不存在了。而整个数学理论的基础,也可以大为简化、精练而获得澄清,很多内在的矛盾也可以实质性地被消除。正如普特南等所说的,“如果有某种方式可以使连续统可数,那数学基础方面的很多问题都可以迎刃而解”(大意)。
6. 可数、不可数概念的概率角度分析
从概率的角度,也许可以对可数、不可数概念有一个更深入的理解。我们说,随机地、“盲目”地“点”整个自然数集合中的某一个,点中任何一个自然数的的概率是可数无穷分之一(注意不应是0)。但我们去“点”一个实数集,点中任何一个实数的概率难道是“不可数无穷分之一”?我们一个一个去“点”具体实数时,不正是一个可数的过程吗?按可数定义,可数集合中的任一元素,总可以在某“数法”(对应关系)下被数到。于是才会有某一个元素被数到的概率问题;而按不可数的定义,前文已述,在任何“数法”(对应关系)下都不能保证任何元素肯定会被最终数到,也就是总有元素永远不会被数的,而且极其多。而更其重要的是,不会被数到,也就是无法被“计数”或“统计”,如此,怎么可以有概率值?也不会有层叠无穷观所必需的一一对应概念(就算我们说A与B不能一一对应,那也必须有个C,它可以和A或B一一对应,因此还是离不开一一对应概念的)。
总之,“选取”实数的的动作只能一个一个地选,因此只能有可数无穷多。而实数如果是不可数的,也就意味着只能在一个实数的真子集中去选取。也就是有些实数是没有任何机会被选到的。但具体是哪些或哪个或那些个呢?问题出来了。正如我们按此法选自然数一样(自然数虽然无穷多,但任何一个都不能说没有机会被选到),任何一个实数也都有机会被选到。更明确地说是可数地被选到,因为前面说了,“选”这个动作本身,就是个可数过程。于是,所谓不可数无穷多的实数被选到的机会不得不说是可数无穷多分之一。这难道还不是一个矛盾?因此,从这里也可以看出不可数概念、层叠无穷观的内在困难。
7. 人工智能的新领域:计算机在康托对角线法的反证法证明无效性的验证上的应用可能
不久前,围棋界的计算机人机大战,最终以计算机大获全胜而告终。这引起了全社会的震动。又一个看似不可能的神话被打破了。受此启发,笔者联想到,能否把计算机引入康托对角线法成立与否的分析中呢?答案是肯定的。起码笔者是这么认为的。在这个问题上,笔者反倒认为,计算机只有做更好。计算机起码不会盲目迷信权威、外国人;也没有面子问题;它不会忽略推理中的任何细节;它会按照所设条件(实际就是假设)严格执行相关程序,如有缺失程序将走不下去;这必将使所有假设不能再被“隐含”。而人们通常为了维护自己的某一顽固信念,经常会有意无意地隐瞒、变更、曲解某些前提条件及其解释或定义。当前,尽管没有这样的计算机程序,但我们不妨按照计算机编程的思路来分析康托对角线法。首先,可数的定义,是只要有一个具体的对应规则(函数)下某集合可以和自然数实现一一对应即可;而不可数,则是在任何一个对应规则下都不能有这种一一对应才行,也就是它不能依赖于具体的某一个对应规则。也就是说,只要在证明中发现或者假设了一个具体的对应规则,就足以揭示这个证明没有证明实数不可数。由此,我们可以发现,在这个程序中,如果康托对角线法要能够实施,必须预先严格定义(设定)前述各项函数关系(对应规则),比如表中实数个数与其位数的一一对应;每一位都有不止一个的状态,一一对应必须是依次有序的等等,只有如此,在“IF…THEN…”之类的计算机语句下,康托对角线法的反证法所依赖的前提条件也就是假设将会暴露的清清楚楚。否则程序是运行不下去的。而人却未必有这么严格,它因人而异,取决于具体某人的能力、诚意、关注度、思维的严密性及专业水准等等。显然,计算机程序将会根据可数、不可数命题的严格定义,逐条对比各项所设条件(假设),如一旦发现多余条件(假设),会立即得出“证明有误”的结论。当然,如果我们以计算机编程的思路、眼光去严格审视康托对角线法的反证法运用,我们当然可以得到与计算机一样的结论,毕竟,程序还不是人编的?只不过计算机程序如果缺少运行下去的条件,它就确实运行不下去而已,它很严格,而人也许出于什么原因可能有意无意地选择比较马虎的甚至在逻辑上是属于“诡辩”范畴的、违反逻辑规则的处理方式。
8. 对比、印证与启发:将可数的有理数运用于康托对角线法可能出现的情况
以下我们与有理数相互对比,谈谈一个证明的假设阶段就可能出错的逻辑问题。
我们说,有理数集合已经被康托相当经典地证明是可数的。因此如果我们确定了在一张表中已经列出了全部有理数(比如就按康托证明有理数可数的那张表中的遍历次序来列出有理数),那么,就不应该也根本不可能再在这个表的对角线上产生任何一个不在这张表中的有理数而只能得到一个无理数。但如果我们仅仅是“假设”了此表中列出了全部有理数,而没有具体真正去按一定次序无遗漏地列出全部有理数,那么,一但当我们在对角线上实际得到了一个不在此有理数表中的有理数,我们立刻知道原先所列出的并不是全部有理数,也就是这个假设是错的,尽管有理数本身是可数的。既然是假设,顾名思义,其本身就可能出错为“假”。对照实数情况,其实也是一样。康托对角线法中所做的,仅仅是“假设”表中已经列出了全部实数,只是这么一说,显然没有“确定”它就是按某种排列方式已经确实列出了全部实数(否则也就不需要这个对角线法的证明了),因此这个“假设”的真正含义就不能不有两个:1、一个是确实列出了全部实数(前提是已经(显然没有被公认地做到)或者“可能”用其它方法证明实数可数(注意:我们这里谈论的是康托对角线法实施前的情况,因此不能用对角线法得到的所谓结论去否定这一点,否则就是逻辑循环论证)),也就是这个“假设”其实就是一个“确认”,尽管仅仅是“假设下的确认”也罢;2、一个是表中没有列出全部实数,也就是这个假设是错的,但这并不能说没有列出就是实数不可数;3、实数确实不可数,也就是根本就不可能用任何方式列出全部实数,而不仅仅限于这里的这个具体的列法。既然这个“假设”包含了这三种可能性,我们就必须全部考虑。在1情况下,既然是“确认”,它也是假设的可能性之一,那么,就不应该再允许在此表对角线上进行逐位求异操作(或虽然不去真的“操作”,但对角线上所得到的那个不在此表中的实数不应该再存在),也就是我们应该否定该表中实数小数的每位的多值性,尽管它是多进制下的。明白说,此表中的实数,每位的状态或数值一旦确定了,就不应再允许改动。多进制的多值性,在此表中仅仅应该体现在不同实数(在表中是纵向排列)的同一个位数(在表中是横向排列的),而不是在同一个位数的位置上还可以有不同值。也就是多进制的每位的多值性在此表中不应体现在每位的位置上。明白说,在每位本身的位置上(表中横向),只能是单值的(不允许再有什么“翻转”、“求反”、“求异”,既然它已经被唯一地选定,就是固定死的。因为你已经假定“确认”了此表包括了全部实数,怎么还可以随意更动此表的状态来有意“制造”出一个不在此表的实数呢?这不是直接否定了自己的假设吗?但如此,康托对角线法当然无法进行下去。在2情况下,如果在对角线法下“证明”了这个表中没有包括全部实数,由于上面分析的情况1的存在,也没有证明实数就不可数。它只是证明是这张实数表不完备而已。在 [11] 中,我们把原本二维的实数表,扩展到三维以更加有力地说明了这个问题。至于情况3,也有可能,但永远有情况1、2存在,因此不能由康托对角线法来证明。而且由于任何集合与自然数间的一一对应,都要依赖与具体的函数关系(对应方式),而本质上存在有无穷多这样的函数关系。因此如欲证明对所有这些函数关系下实数都不能与自然数一一对应,应该是根本不可能的。
9. 总结:康托对角线法推导不成立、实数集可数,是数学基础的返璞归真
在“数学哲学”这本书的序言中,普特南曾说:如果实数集合可数,数学基础方面的大部分问题都将得到解决。很显然,由于所有的数学、逻辑公理、规则、定理、命题、推理步骤、级数、位数等等都只能是可数的,而实数这一数学中的基本部分却是不可数的,那显然,数学中起码有不可数的东西,那么,数学、逻辑还可能完备吗?能用可数的这些东西,去研究不可数的对象吗?显然,这里是有根本性问题的。再者说了,当代数学的其它门类中,根本不用不可数的什么“超限数”等等。所以,我们完全无必要去维护这种实际是康托没有办法才不得不提出的“理论”的。康托的本意,是想给整个数学建立起一个坚实、简单的基础,但实际却成了一团乱麻。“基础”的复杂程度,比整个建立其上的“上层建筑”尤甚。它现在被人当成数学的一个分支(不是基础),而且远离其它数学实践,完全“脱离群众”。所以一旦有理由抛弃这种“繁琐哲学”,建立起真正简单、明确的“基础”,就没有任何可留恋的。而且笔者坚信,就是康托本人在,他也会高兴的(康托最后的信奉宗教和抑郁而死,有人说也与他深知其理论的内在困境有关。比如康托是深信实无穷的,但其由对角线法而得到的康托定理所导致的“超限数”理论,本质上却不能不是潜无穷的)。
10. 人工智能、算法与人脑、人的智力孰强问题的由来及哥德尔定理及其相关问题详析
哥德尔定理由一个特殊的、看似怪异的命题(夲句不可证),得到一般性的结论,总有牵强之感。其解释历来存在争议,比如有“哥德尔命题G与﹁G都不是定理,但GÚ﹁G却是定理”这样的怪事出现。大逻辑学家维特格斯坦、策墨罗等都曾经提出过异议。笔者这里对此进行一些分析以图得到更为确实可信的结论。
哥德尔在给策墨罗的信中说:“真”这个概念不能归结为有穷组合的性质,而只能取决于它的超穷性质。这就足以反映哥德尔定理就其解释层面的问题所在。正如笔者一贯认为并证明的,在本质上,根本就不会有必须的、不可缺少的“超穷”系统。因此把“真”这个概念推到超穷以试图回避,除了需要对理论做重新解释外,没有其它意义。哥德尔以为,只要把说谎者悖论“夲句错”改成“夲句不可证(非定理)”就可以回避矛盾也就是得不到悖论了。但事实上不然。我们可以证明如下:哥德尔定理,作为定理依赖于系统内的公理,因此只能是系统内的定理。其结论自然也都是系统内的。也就是它只能得到关于系统内的相关结论。而系统内定理其值必真,可是一个二值系统(非真必假。此为以下结论的必要条件)非定理也就是不可证的命题必假。而哥德尔定理既然叫“定理”,也就是承认自己是依据系统内的公理推导出来的,其一切结论如前所述就应该都是系统内的。也就是不可能由它得到一个系统内的的命题但其真值只能由系统外在所谓“超穷意义上”才可确定。如果这种说法站的住脚,那罗素悖论、说谎者悖论(直接与哥德尔命题相关)的另一半,也可以说是另外层次的而不构成悖论,这不就是罗素并不很成功的“类型论”吗?事实上,这种说法直接与定理的定义是矛盾的:一个系统内的定理,得到了一个在系统内不可判定、不可证明的也就是不是系统内的定理但又实际上是真的命题,却又在系统外可以确定其为真。为了刻意回避这个显明的矛盾,人们只能把一个一眼就能看出(其实也就是可以最后一步被显然证明出)的真的结论,非常造作地“假装”成在系统内是得不到的、不知道的,不可证的。而彭罗斯、卢卡斯等人,据此甚至得出“人脑直觉比机器、算法强”这样牵强附会而且充满玄学意味的结论(算法不可证,但人脑可判断或知道其为真)。而另一方面,一旦把人脑、“心智”看成形式系统的一部分,立刻又会有如何知道哥德尔命题(“夲句不可证”)是真的?关于这种两难的局面,各种观点足足争论了近一个世纪。显然,这可看作是理论的困境。按过去的解释,这里面有没有澄清的地方。事实上,既然哥德尔定理最后一步推得了一个明确地必须为系统内的真命题“夲句非定理(不可证)”,与它上一步得到的系统内的假命题“夲句为定理(可证)”就必然在二值逻辑下构成矛盾(悖论)。我们必须明确也只能承认此点。只是在二值逻辑系统中,这个状态尽管在现实世界中不但早就存在而且也早已被发现,但在二值系统中无法进行真值归类。由以上分析可知,哥德尔进而哥德尔定理并没有证明系统内的一个不可证(非定理)的命题而只能由系统外判定其真这回事,因此如果非要下这个结论,它只能是一个“认识”、“断言”“猜想”(而且是如它自己所言,是不可证的!),而且是系统外的。哥德尔定理所实际能够得到的,仍然是与说谎者悖论同构的一个系统内的悖论。那种什么“哥德尔定理巧妙地在悖论的边缘构造了一个命题证明了什么什么”的说辞,或说哥德尔定理是“元数学意义上的定理”(而元数学是什么,它凭什么存在,从来就没有定义清楚过)等附会说法,是无法成立的。既然哥德尔构造的哥德尔语句(夲句不可证)兜了个大圈子,由上文分析知道不过是个系统内的悖论性命题(说谎者悖论,哥德尔一直辩解想否定其构造的那个语句是悖论,但事实上做不到),那么它就应该可以由形式系统和公理集合论所排除,尽管其在系统内可以被表达也允许被表达。
问题究竟出在哪里?这里有一个以往被严重误读的重要问题需要澄清:如果哥德尔命题进而哥德尔定理涉及的是不可判定语句(也就是命题与其反命题都不是系统定理),那么,哥德尔命题进而哥德尔定理甚至是根本无法表述的。因为一个有效的证明(也就是定理)必须在有限步骤内完成,于是与之相应的“哥德尔数”必然有限。而不可证(非定理)如果是不可判定意义上的(即该命题的否定也是不可证(非定理)的。而不是﹁A可证为定理了,进而推出A不可证(非定理)之意),则必然是有效证明(可有限步内)的否定,有限的否定是无限,也就是不可能在有限步内得到。即,其涉及的是无限步,换言之在实际中(也就是有限步或有限时间内)根本就得不到“不可判定”(以及在此意义上的“不可证”、“非定理”)这样的结论。直观上,一个数学命题(这里不仅限于哥德尔命题类型的“自指代”、“自指否”命题)还没有被证明,不能叫不可证、非定理、不可判定,只有在时间上永远没有证明才行。但这个“永远”,是可以在现实中得到的吗?哥德尔命题的数码表示中,那个“对所有n”如何如何的表述,实际暗含不可能在所有有限的系统表述中发现这个关于不可证的涉及无限个字符的命题。即,这里的所谓“对所有的n”,不能按对应的有限个字符翻译成哥德尔编码,而是应该列出所有的n,这当然对应于无穷大。也就是在一个由有限字段表示的元素的表(集合)中,虽然可以把“无限个元素”这样表述作为元素,但不包括必须有无限字符才可表达(也就是实际不可表达)的元素。这一点事实上对应于自然数集合的元素个数虽然是无限的(有无限多的自然数),但并没有叫无限的、也就是本身就是无限的那个自然数存在。明确说,一个系统中的证明、定理、可判定,可以在有限步内完成,因此就会有一个具体的、有限“长度”的哥德尔编码;但其否定不可证、非定理、不可判定,必然否定这个有限步或有限“长度”,也就是不可能给它配一个具体的、有限的哥德尔数。只是在表述中写上“对所有的n”如何如何,而不是真的可以列出这个”所有的n”(实际也就是无穷大,当然在现实中是无法列出的)。也就是那个有限哥德尔编码数表示的命题“夲句不可证(非定理)”在形式系统中根本就无法被表达。理由如下:设n为哥德尔编码数,当然是指的具体的某一个。由前文所述,要真正表达“夲句不可证(非定理)”,在哥德尔编码中只能表示成“本n表示在所有n下才能表示出的(也就是需要无穷个n)均构不成证明对的那个哥德尔数”,显而易见,这是试图用有限、具体的一个哥德尔数去表达哥德尔数为无穷也就是无法实际表达的一个命题。事实上,传统上认为的哥德尔命题,也就是“夲句不可证(不可表达)”或更确切地“夲句不可判定”,在实际用哥德尔编码数表示出来后,应该是“夲句为不可证(非定理)的定义”,因为在“不可证”的表述中,我们只是使用“对所有n”、“不存在n”这样的表述,并直接用这些字符的哥德尔数表示“不可证(非定理)”等概念的意思,这就是一个定义,而不是“不可证(非定理)”本身。即:我们当然没有可能在有限步或用有限的哥德尔数去表达真正的“所有n”,那是真的无穷,而不仅是“无穷的定义”也就是“无穷”这两个字而已。一个句子,如仅仅是对某概念命题定义的表述,当然不会再构成悖论。也就是说,要想在有限步内表达出在有限步内根本无法表达也就是必然要涉及无限步才可完成表达的一个命题,是不可能的。当然,我们仅就其定义,是可以给出的。定义当然可以用有限个词(对应于有限的哥德尔编码数)来表达。
经以上分析我们可以看出,现有形式系统对概念、命题的“表达”不完备,而非对可表达的命题本身不完备(哥德尔定理原先的解释)。即:并非有真而不可证或不可判定的命题在系统中,而是不可判定命题本身在形式系统中就是无法表达的(当然其定义可以)。也可以说,所谓不可判定命题需要无穷的时间或步骤才可确立,因此其本身就是在有限步内不可判定的(不可判定本身就不可判定。或更确切地说,是不可判定本身在有限时间内不可判定。即:不可判定命题本身的确定或判定,需要无穷时间或步骤,而这根本不可能在现实中实现),因为其严格表述也就是其定义即是如此:一个在有限步骤内无法判定或确定其是否真是不可判定的命题才是真正意义的不可判定命题。换言之,在有限时间或步骤内,不可能确立或得到一个不可判定的命题。有限时间或步骤中能现实得到的,充其量也就是一个“尚未被判定”或“尚待判定”的命题。但这不是“不可判定”。哥德尔定理是说,有一个实际是真的命题在系统内可表达但不可证(非定理)进而是不可判定的,似乎任何命题在系统内都可表达。但“本命题不可证(非定理)为真”却不可在系统内被表达,因为哥德尔为回避系统内的悖论和矛盾,声称这个“真”的结论在系统内是得不到的。但如前文分析,这也要产生问题。笔者实际得到的进展不过是:哥德尔命题“本命题不可证(非定理)”本身就是或才是不可在系统内被表达的。
事实上,证明不可判定(及其意义下的不可证)不能在有限时间、步骤中得到很容易:设可以在有限时得到,则其反命题可证必需要无限时才能达到。这与可证、可判定的定义与要求相悖(原始递归,有终止),于是得证。
我们甚至可以直接定义命题或语句“需要无穷步或无穷时间才可表达的命题”,或“在系统中不可表达的命题”等这样的命题。这些命题当可在系统内被定义、被表述(写出来就是表述、定义了),但不可表达,也就是真正实现。因为它们的表达都要涉及无穷步骤及无穷的时间成本。哥德尔命题(夲句不可证)不过是此类命题中的一个罢了。
总之,如果一个命题A不是定理也就是不可证可以在有限步内判定,那么﹁A必是定理(为真,当然在有限步内可判定),这是前提。现在反过来了,认为(误认为)可以在有限步内判定A不是定理(不可证),且事实为真。由此推得﹁A假,则假命题也必非定理,于是A不可判定。显然,我们可以看出这是本末倒置、循环论证。
至此,对哥德尔定理问题可以总结归纳如下:
由于一个形式系统中对命题的判定、证明只能是在有限时间、步骤内实现的,因此其逆命题不可判定的结论不可能在有限步或时间内达到,因此本质上在形式系统中无法真正被表达。哥德尔在证明中对全称量词下命题的表述(比如定义。有限字符即可充分实现)与真正表达(需要无限的字符,实际不可能在现实中实现)没有进行区分。这并不奇怪,在有限步内不能确定的“命题的不可判定性”,只能是在无限时间意义上的。有限时间或步骤下只能得到“还没证”、“未判定”这样的命题。哥德尔在此处没有明确表述;因此哥德尔意义上的不可判定语句(并非仅仅是其定义)等等,并不真的存在。希尔伯特纲领仍有实现可能。总之,哥德尔定理的实质,是对不可判定及与其相关的不可证需要无限的时间这个事实没有充分领悟,这当然涉及到量词“对所有n”或“不存在n”云云的实际实现(证明所要求的)而非仅仅是语言刻画即定义。既然有“不存在n”,怎么会有一个依赖于自然数n的哥德尔数?此外,都说哥德尔定理与康托对角线法有渊源,我们说,集合元素间的一一对应必须依赖于具体的对应方式也就是函数关系,根本就没有什么普适的一一对应关系。因此,可数的证明,只需有一个特殊的对应方式把所证集合与自然数一一对应起来即可。而不可数,则需要所有对应方式(函数关系)都不能建立起这种一一对应关系才行。而都知道,这样的函数关系有无穷种,因此理论上不可数根本就不可证。换言之,不可数的定义要求,因为它是一个普遍的、一般性的有关一一对应下的函数关系的结论,因此不能再依赖于任何具体的一一对应函数关系。但实际上被认为是证明了实数集合不可数的康托对角线法却恰恰没有做到这点(当然由前述理由也不可能做到),它隐含了具体的对应方式(详见下文及参考文献笔者的讨论)。类似,可证、可判定概念要求步骤有限(进而时间有限),因此作为其反命题的“不可证”、“不可判定”,必然涉及无限,也就是本质上是实现不了的。
11. 图灵机停机问题的讨论
对于图灵机停机问题,已知与康托对角线法是同构的。不过纵向以不同的图灵机去代替不同的实数,横向以图灵机的输入状态去代替位数,但这里可作每一位有可数无穷种不同的状态而不是多进制的有限种状态。如此,这个二维表中的每一个位置表示具体图灵机的输出状态。下面如所周知地仿对角线法逐位逐行求异,得到无法有算法列出全部可停机的图灵机。但事实上,我们由图1可知,那里的第三维在二进制下只有两个状态,十进制下有十个状态,而这里的图灵机情况,是“每个输入”(对应于康托对角线法中的“每位”)有可数无穷种状态。也就是图1此时扩展成了一个完全的三维表。如此而已。而三维立方体中的每一个点,早就证明是可数的,也就是可以遍历的,因此我们完全可以仿这里实数对角线法的做法,把图灵机不是布置成一列,而是布置在一个平面上,对角线也不是二维正方形的对角线,而是三维立方体的对角线,如此,由于图灵机的所有输入产生的所有输出在这张三维立体表中都有了充分的表达,于是不应该再有如康托对角线法的逐位“求异操作”,由此可以破解图灵机停机问题(也就是所谓“希尔伯特问题的不可解性”)。总之,与哥德尔定理中的“不可判定”概念、实数的不可数性概念相仿,
Figure 1. Diagram of binary double diagonal lines
图1. 二进制下双层对角线示意图
图灵机的所谓“不停”状态,本质上是“永不停”,与前二者一样,都需要“经过”无穷多步骤、时间才可确定,换言之,也就是不可在有限的步骤、时间中确定,也就是实际不可确定而已。三个问题在这方面是同构的。同时,这三个问题都是递归可枚举但非递归的(补集不是递归可枚举的),原因经上面的分析已经可以一目了然了:三个问题中的补集(不可判定、不停机、不可数),都要在无穷步骤下才可真正实现,也就是实际上无法实现,这就是它们非递归的根本原因。篇幅所限,不再详述。
因此结论是: 正是由于哥德尔定理得到了一个事实上为真,但却在系统中不可证且不可判定的命题,因此有人认为,机器、算法不可能超越人脑,人的智力比人工智能强。也有人认为,这一结论的理由不充分,其中包括哥德尔本人。但未见他们提出令人信服的理由或证明。此问题争论了几十年。由于本文给出的分析,可以看到,一个不可判定命题在系统中只可定义,不可真正在有限域上被表达。因此,根本在系统中就得不到那个我们明明可以知道其为真,但却不可判定的命题。因此,据此为理由认为人脑比机器、算法强的论点,也就不可能成立。计算机、算法、人工智能,起码在理论上,并没有一定不能超越人脑的限制。就是有,也是物质、材料,具体说就是分子、原子层面的区别所致,而不是逻辑、数学、算法层面的。
12. 一种不需要极限及无穷小概念的微积分新诠释
在前期工作的基础上 [11],可知在新的解释及理解下,牛顿、莱布尼兹法求导(第一代微积分)实际完全足够,它是充分的。而且不再以极限或无穷小作为理论的必要条件,更何况这个极限并不真的存在。由此,消除了微积分理论中表观上的矛盾(贝克莱悖论),因此理论不但再无明显或潜在的逻辑问题,而且可以达到理论的极简化以利于教学和理解。
一、除法、比式、消去运算的实质
之所以要着重澄清这些相关概念,是因为牛顿、莱布尼兹在求导过程中,首先就作了除法,以“消去”分母中的自变量。极限法(第一代微积分)也一样。
除法:某数或量,被分成若干份,每一份是多少。
比式:最终得到的数值或变量,实际是折合成分母为1时的分子值。比如物理上“速度”这个概念,就是“单位时间物体所运动的距离”,而“单位数值”就是“1”。因此速度的数值可以不写分母上的“1”,但反映真实关系的物理“量纲”,却还是一个“比式”形式,也就是“距离/单位时间”。
消去:实际就是做除法和求比式的值。也可以说前二者是通过消去操作来具体实现。结果当然分母被“消去”的部分应该就是“1”。消去,就是分子、分母中的相同部分都为“1”。如12/3,消去分母上的3,就是(4 × 3)/3 = (4 × 1)/1 = 4/1,当然数值就是4,但4严格而言丢失了“比式”这个信息。比如4就只表示“4个人”,而4/1严格而言可以表示“每一组4个人”。后者信息量大。
二、导数
1、导数定义(第一定义):曲线上某点的切线斜率。
比如物理上的瞬时速度概念,应该定义成:物体受力做变速或曲线运动,在某瞬时该力突然解除,物体做匀速直线运动时的速度。
由于以上定义,只要能够求出曲线的切线斜率的,都可以。因此求导方法不拘于一种牛顿、莱布尼兹法。但由于该法非常有效且影响广泛,因此值得详察。
注意,以上导数的定义,与传统牛、莱法或极限法(标准分析)的区别:虽然在数值上相等,但传统定义会产生贝克莱悖论的区间无穷小或并不真的存在的极限。而这里的定义完全没有无穷小和极限的任何表述。其实它就是宏观量。当然不排斥无穷小,但其不是必要条件。
2、牛顿、莱布尼兹求导法的实质
设有曲线在横坐标x点的增量(坐标差)函数
,其中Δx为曲线上二点(x及x + Δx)间的横坐标(自变量)差或曰增量。现将其写成过此二点的、并且仅取此二交点值的该曲线的割线方程形式为
。这里的K为该割线的斜率,它同样是x及Δx的函数。显然,如果割线上的点,并不局限于它与曲线的交点,因此不失一般性,我们令该割线方程中不包括在斜率K中的Δx为Δg,其为割线上任何二点(不局限于与曲线的交点)的坐标差或增量。相应地,Δy也变为Δh,也就可得到割线上的不拘于与曲线的交点的一般方程
。显然,当该割线与曲线的二交点合为一点时,也就是当Δx=0(特别强调,根本无须什么Δx→0)时,该割线变为切线。由此,我们可以得到导数的一般定义:
(1)
几何意义上,也就是曲线的切线斜率。代数意义上,就是该曲线与某一直线联立求得重根解时该直线方程中自变量的系数,即斜率。显然,此定义下不存在贝克莱悖论,也不再需要什么无穷小、极限概念。而且实际与所谓“第一代微积分”的牛顿、莱布尼兹求导方法相一致,也是他们实际所做的,只不过把他们无意中做除法后得到的结果彻底解释清楚了。换言之,笔者所做的,只是彻底诠释了牛顿、莱布尼兹求导法,并给出相应的导数定义,使其今后可以放心大胆地使用而已。注意,当曲线与割线的两个交点合二为一时(Δx = 0时),作为导数第一定义的1式最左边的比式的分母Δg =1而不是0,因此不再涉及分母为0所产生的一切问题。这是由于变量除法所要求的Δg/Δg = 1/1 = 1,而如果把导数直接定义成曲线函数与其自变量的增量比Δy/Δx,则无论Δx=0还是Δx→0,显然函数中的所有自变量Δx均为0,因此会产生分母为0(也即0/0)的问题(贝克莱悖论)。
很重要的一点,设x1为上述x及x + Δx之间的一点,可令
(2)
等式的左边为曲线两点间的割线斜率,等式右边为此两点间的一点x1的切线斜率(也就是传统上的该点的导数)。由于二者数值相等(平行线斜率相等。实际上,这就是著名的中值定理),因此该曲线在x1 点的导数(切线斜率),完全可以也定义成过曲线横坐标x、x + Δx两点的割线斜率(可看成是导数的第二定义),在物理上,就是某时段的“平均速度”。因此,结合导数的两个定义可知,导数在物理上就是速度——无论是瞬时速度还是平均速度。而由2式,x、Δx、x1三者知道两个,即可求出第三个。于是,导数由原先的只涉及一点可以扩展成涉及两点。
由(1)式可以看出,极限法(标准分析、所谓第二代微积分)求导所倚赖的曲线函数增量Δy与其自变量增量Δx之比在0点的极限根本就不可能存在:如不做除法,分子、分母中的Δx都为0进而得到0/0。而做除法,由1式可知,此时只有系数K中的Δx = 0,而分母中的变量无论写成什么,都始终等于“1”。因此不存在趋于0或等于0的问题。也就不能把它的运算结果看成是曲线函数的自变量Δx→0(而又不等于0)的结果。
同时,以最简单的自函数y = x的增量函数Δy = Δx为例,当Δx = 0时,有Δy = 0,即0 = 0,不能由除法得到有意义的增量比值函数Δy/Δx的值,因为0除以0为0/0。人们承认这是个问题(导致贝克莱悖论),才有极限法的标准分析,认为Δy/Δx在0点虽然没有有意义的函数值(即函数值为0/0),但却可以有有意义的(非0/0型的)不可达意义的极限值。进而用此极限值定义导数。但是,我们看到,当Δx→0时,其极限值当然也为0,Δy = Δx等式两边在0点的极限值仍旧是0,也就是0 = 0,除法仍旧不可为。而不能做除法消去分母上的Δx,我们就无法求出Δy/Δx在Δx = 0点的有意义的极限值,即充其量得到无意义的极限0/0,与函数值一样。而要想做除法,Δx最小也得是无限小ε,绝对不可能是0,如此,Δy/Δx有意义的极限就不是Δx→0了,而是Δx→ε。即为ε/ε = 1/1而非0/0(但如此,如所周知,会在二次函数等曲线方程的求导中产生无穷小的舍弃问题)。以上,实际可以看成Δy/Δx在Δx=0点没有有意义的极限值(即非0/0型的)的一个最简证明。
另一方面,笔者前期论文中已有表述,所谓“不可达极限”,就是在某点没有函数值或函数无定义,但却可以有极限。但这个区别于可达极限的不可达极限,显然不能由极限过程本身求得。原因很简单,正是因为按定义,这个极限值是极限过程永远也到达不了的,怎么可能再由这个极限过程本身得到该极限值?这直接违反定义。也就是说,这个极限实际是事先假设函数在该点有定义,直接舍弃或无视贝克莱悖论中无意义的0/0部分,只保留有意义的那部分,权当“求出”了该点的“函数值”,再认为函数极限过程是以该点的该“半截”函数值为极限的。然后又不得不由于众所周知的原因,说该点极限值,是函数永远不可达的,但可以不断趋近它。总之,这个“半拉”函数值进而极限值,都是有问题的。贝克莱悖论并没有被消除,而仅仅是被无视。具体到微积分求导问题,函数的增量比值,在增量为0的那一点,没有有意义的值(为0/0,或会产生贝克莱悖论)。但标准分析认为在0点可以有不可达极限值。但以往人们都忽略了,这个不可达极限由前述理由可不是由极限过程本身得到的,而是事先在0点用函数求出来的(由前述,当然是“错误地”求出的),但显然,如此求出的极限值,既然是在会产生贝克莱悖论或0/0值的那一点,因此这个所谓的不可达极限值和函数值一样(函数值有的问题它也都有),也会有贝克莱悖论,其固有的矛盾不可能仅仅由于把函数值换成极限值换了个名词就被摆脱。实际上也就是增量比值函数的极限过程所趋近的,仍旧是一个与函数值一样的、在0点会产生矛盾的极限值(即得到0/0)。换言之,这个极限作为有意义的值并不存在。显然,人们以往为了回避函数在0点的贝克莱悖论(有0/0),弄出一个在0点没有函数值的极限值;但却忘了或没有意识到,为了求出这个极限值,我们还得事先求出0点的函数值,而这个函数值由于会产生矛盾,正是我们所要回避的。这实际是典型的循环论证。由于这个过程很隐蔽,人们在求极限值过程中不自觉地舍弃了贝克莱悖论中无意义的0/0部分而保留有意义的部分,就此认为悖论解决了。由这里的分析可以看出,这当然不是事实。
三、微分
由导数的第二定义,因而原先x1 点的微分,由(2)式可得
(3)
因此,由(3)式可以看出,微分也可以被定义成当自变量由x点起始有增量Δx时,函数的增量Δy,完全没有了什么增量Δy的“线性主部”dy之类的说法,干净利索。
以著名的二次曲线y=x2为例,令
(4)
(4)式等号左边为割线斜率(第二定义下的导数),右边为x1点的切线斜率(第一定义下的导数),由
可知,
,x1即为中值。如将4式两边乘以自变量Δx,则可得函数微分,即
(5)
很显然,这正是我们十分熟悉的二次曲线函数的增量。它是个精确值,不需要什么线性主部dy,也没有什么“高阶无穷小”和极限之类拖泥带水的说法。物理上,如果某时段的平均速度乘以此时段,当然就是此时段的运动距离的精确值,不必再纠缠于某点的瞬时速度。
由以上分析我们可以看出,新诠释下的微分法实际就是变分法,二者是一致的,甚至后者还更本质。过去常有究竟是微分法基本还是变分法基本的争论,有人认为微分法的极限理论是“精确的”,而变分法是“近似的”。现在看此种看法是不对的。因此之故笔者把新诠释下的微积分命名为“增量分析”。
由于导数的定义无涉无穷小或极限,因此微分的定义,也无涉函数增量的线性部分,它就是函数的增量本身,等于自变量增量的中间某点(中值)的导数(第一定义)或更直观地就是割线的斜率(导数第二定义)与该自变量增量的乘积。因此在此观点下,所谓的中值定理就不是定理,而是微分定义的出发点。如此,函数自变量的微分定义问题即以往dx=Δx疑难问题不再存在。函数自变量的微分,就是实实在在的自变量的增量Δx,无涉什么dx。
四、积分
方源、王元所著《微积分(上)》P186定理5.2.8的上确界(l.u.b)和下确界(g.l.b),当二者合二为一时,就是一个“不可达极限”,与极限法求导数的情况一致。因为要“到达”此“确界”,需要小区间Δxi=0,但显然任何有限区间的积分又要求当这个小区间数n趋于无穷多时,这个小区间Δxi只能是与“无穷多”相对应的“无穷小”,而不能是0(对无穷个0积分,还是0)。就算把这个0看成是Δxi→0,但它肯定也是一个“不可达极限”,也就是这个“确界”是到达不了的。对一个根本就到达不了的“区间”,是无法积分的。而一但可达,再小必是不为0的无穷小区间,如此,其上、下确界差再小也不可能一致(上、下确界不相等),也就是积分时不可能没有误差。因此,现有积分理论隐含一个矛盾:精确性要求的小区间的Δxi=0与可积性要求的Δxi ≠0矛盾。此情况与传统无穷小法或极限法求导所产生的问题毫无二致,不过更其隐蔽罢了。
在笔者基于增量中值的导数的微分定义以及上文公式(3)、(4)、(5)可以明显看出(同时由于不再需要无穷小或者并不真的存在的极限作为理论的必要条件),微分与积分在新观点下并无本质区别。因为只要函数在某区间连续、单调,无论怎么分割这个区间还是不分割,都会有同一命名。当然在非严格的意义上,名词的区别还是可以保留的:积分是微分的累加或大些的微分;微分是小些的积分或积分的更小部分。可以看出,这个定义完全是相对的。本质是:小的微分的累加成积分,但此积分仍旧可以看成是一个大些的微分。这个观点,也可以由传统的微积分基本定理(函数的增量等于积分)看出。再考虑新诠释下的微分定义(公式(3)),我们可以得到
(6)
公式(6)左边是著名的微积分基本定理,右边是新的微分定义(公式(3)),其中的
,是函数的增量。只不过传统理论不可能把这个“函数的增量”看成是微分(传统上微分的定义是函数增量的所谓“线性部分”或“线性主部”),而按笔者理论或者解释,它完全符合精确的“微分”定义(即公式(3))。由公式(6)看出,积分、微分本质上是一回事。同时,在笔者解释或理论下,中值定理的内容,就是理论的出发点,它更多的是定义而不是定理。
此外,传统极限理论下的微分定义,为了回避极限(更何况是不可达极限)这个尴尬的概念,只能把微分定义成是(起码可以是)宏观量。仅就这一点看,与笔者理论诠释下的微分概念倒是一致的。但在使用微分(其实也是微分的唯一真正用途)求积分时,传统理论又不得不令其趋于0,也就是取0为极限。而这一切均被隐蔽于小区间数量的趋于无穷上。于是其实问题又回到了出发点。
总之,今后的积分,再无lim∫之类表述的必要,也不需要∫,只要∑就完全可以了。
参考文献
附录:陶诗轩《实分析》一书中康托定理的证明
定理8.3.1 (Cantor定理) 设X是一个任意的集合(有限的或无限的)。那么集合X与2X不能有同样的基数。
证明:用反证法。设集合X与2X有同样的基数。那么存在X与X的幂集之间的双射。
f:X→2X。现考虑集合
A:={xϵX:xɇf(x)}
注意,这个集合是定义成功的,因为f(x)是2X的一个元素,从而是X的一个子集合。显然,A是X的一个子集合,那么它是2X的一个元素。由于f是双射,必定存在xϵX使得f(x) = A。于是出现两种情形,xϵA或者xɇA。如果xϵA,那么根据A的定义xɇf(x),从而xɇA,发生矛盾。但是如果xɇA,那么xɇf(x),于是根据A的定义,有xϵA,也是矛盾。不管哪种情形,我们都得到矛盾。█
注:此证明中的符号ϵ,表示“属于”;ɇ,表示“不属于”。