《数学啄木鸟专栏》分享 http://blog.sciencenet.cn/u/wenqinghui 对错误的数学论点发表评论

博文

Zmn-0927沈卫国: 康托对角线法进而实数不可数问题的分析

已有 349 次阅读 2023-1-6 12:11 |个人分类:数学啄木鸟|系统分类:论文交流

Zmn-0927沈卫国: 康托对角线法进而实数不可数问题的分析

【编者按。下面是沈卫国先生的文章。现在发布如下,供网友们共享。请大家关注并积极评论。另外本《专栏》重申,这里纯属学术讨论,所有发布的各种意见仅代表作者本人,不代表本《专栏》编辑部的意见。《专栏》中有些文章发扬了啄木鸟精神,对一些错误的观点和言论进行了说理的批评。但请大家注意,也有些有严重错误的文章在这里发布,就是为了引起和得到广大网友们的评论。不要以为在这里发布的文章都是正确无误的。】

 

康托对角线法进而实数不可数问题的分析

 

沈卫国

 

 

内容摘要:在前期有关康托对角线法的文章基础上,再一次简要讨论这个问题。对前期文章的重点进行必要的强调。

 

关键词:康托对角线法;可数;不可数;集合;自然数;有理数;实数;一一对应;个数;位数;多进制;无穷

 

 

               一、什么是可数和不可数?

 

可数的定义是什么?就是某集合的元素能够与自然数一一对应。但任何“对应”都离不开某种“对应方式”,也即是具体的某种“函数关系”。于是可数,就是在某种具体的对应方式(函数关系)下,某集合的元素可以与自然数一一对应。显然,只要一种具体的对应方式能够达到此目的,就是可数。即使还有无穷种对应方式,使得该集合的元素不能与自然数一一对应,也无所谓。比如最简单的:一个自然数集合A,一个自然数集合BA的真子集偶数集合如果与自然数集合B一一对应了,那么,显然在此对应方式下(或这种函数关系解除之前),自然数集合A就不能再与自然数集合B建立一一对应了。但这绝对不是自然数集合A就不可数了。因为显然,自然数集合AB之间,当然是可以有一一对应的(在显而易见的对应方式下),因为它们都是自然数。1对应于12对应于23对应于3................,当然可以。更明显的,比如有理数集合,直观地看,有理数比自然数要多的多,自然数只是它的一个真子集。换言之,有无数种不同的对应方式,使得有理数集合与自然数集合不能一一对应。比如一个独立的自然数集合与有理数集合中的、作为其真子集的自然数一一对应上了,在此对应方式下,这个有理数集合的全部元素还能与那个独立的自然数集合的全部元素一一对应上吗?但是,康托不是揭示了一种众所周知的、特殊排列的穷尽有理数的方法(即对应方式)吗?在这种特殊的对应方式下,居然把有理数与自然数一一对应起来了。当然这种对应方式不很直观,比较巧妙,因此才会称其为一个“证明”。只此一例,我们就可以说有理数可数了,而完全不必顾忌在其它无数种对应方式下,有理数与自然数二者不能一一对应。那个不叫“不可数”。上面的东西虽然简单,可很多人并没有彻底弄清楚,包括一些一知半解的所谓的“专业人士”。

 

 

      二、康托对角线法的实质是什么?它所声称的和实际所能做到的

 

对“什么是可数”的定义清楚了之后,我们来具体分析康托对角线法的实质。

康托对角线法首先就说,如果实数可数(也就是能够在某种对应方式下与自然数一一对应上),那么,它就可以排成一列。也就是,每一“个”实数,占据以自然数编号的空间的一个位置。而“个数”本身,当然是“单一”的,一就是一,二就是二,一个就是一个,两个就是两个。没有什么一个里面,还有好几个。位置也一样,“一个萝卜一个坑”。说句书呆子的话,就是个数中的每一个与其自身,是个一对一的对应关系(函数关系)。比如人家问你共有多少块糖,有一块是一块。你不能回答人家说有多少瓶糖,除非每一瓶里只有一块糖。而一般而言,既然瓶子是用来装糖的,每瓶就不会只有一块糖。这就是一个对应关系问题了。人家问多少“块”糖,你却回答多少”瓶”糖,这叫答非所问。逻辑上就是“偷换概念”。

 

我们不妨再来看康托对角线法的实际做法(而不是它表面声称的做法!):它先是假设了把整个实数都排成一列,也就是每一个实数都包括在了这个序列之中了。“一个萝卜一个坑”,每一个位置都是单一的,每一个个数也是单一的(单值的)。然后进行著名的对角线操作,“逐位求异”。能够这么做的基础是什么?一是所排出的实数的每一个与作为实数小数的“位数”之间的逐位(实数表的横向)、逐个(实数表的纵向)的一一对应关系。这个前提是对角线的定义所要求的。是个简单的几何问题。其次,是多进制下的每一“位”的多值性。这是显然的,这是多进制产生的目的。其每一位都可以表达与其所要表达的数直接有关不同的值,而不是单值的。比如,十进制下,每位十个状态,十个数,3位十进制,就足足可以表达多达1000个不同的十进制自然数了。总之,一个数集的“个数”,是一个顶一个的,单值的;而多进制下的“位数”,是一个顶多个的,多值的。比如最简单的二进制下,一位,就对应于“01”两个状态或数,这是“一个顶俩”了,而不是“一顶一”了。十进制,当然就是“一顶十”。于是,按康托对角线法的做法,把所列实数的个数去与多进制下小数的位数一一对应,而每位又可以多值,每一值的目的又是为了表达不同的数(具体这里就是“实数”),这还是一一对应吗?当然不是,这是一个明显的一对多的对应。总之,如果令所列实数的个数与多进制下的小数位数一一对应了,这就等于同时认定(而不是证明!)所列出的实数的个数不能再与多进制小数所能表达的全部实数的个数一一对应上,也就是很明显地,所列实数只能是一个实数的真子集。但这绝对没有证明实数只能如此,也就是在任何对应方式下都如此。原因很简单,康托对角线法在实际运用中(对角线上逐位求异“操作”),所列实数个数去与小数位数一一对应这一点,是一个特殊的、具体的对应方式,在这个对应方式下所列实数才可能不是全部实数,它并不能证明在任何其它的对应方式下,全部实数都不能被列出。一如有理数有无限多的对应方式可以令其不能与自然数一一对应,但这绝对不是说有理数就不可数了,也就是最终还是被证明(康托自己)存在有某种特殊的、巧妙的对应方式使得有理数可以与自然数一一对应上。

 

因此我们说,不要只看康托对角线法的公开申明的那个表述,那个表述是不完备的。正如在实际生活中你不能仅仅因为谁说了什么话,就完全相信他之所言是一样道理。康托对角线法实际表达出的表述应该是(比如在十进制下):..............表中纵列的每个实数(比如第n个实数),都唯一地与足足可以表达十个不同的实数的某一个位数(比如第n位)一一对应,...........。等价地,也可以更加直白地表达为:..............表中纵列的每个实数(比如第n个实数),都唯一地与其自身的第n位的那个数(显然只是十个不同的数之一而已)一一对应,...........。比如,表中第5个实数,去与该实数的第5位的数字一一对应。如纵列第5个实数为0.235432345................,那么它就与其自身的第5位的“3”一一对应。对任何位置的实数都如此处理,显然,十进制数的第5位,除了数字“3”,还剩下012456789。而其中的每一个,都足以表达一个除了第5位之外,任何位上的数值都与该实数一样的而不同于表中给出的那个第5个实数0.235432345的其它实数,比如0.235402345........,其中第5位以“0”取代了原先的“3”,而其它位上的数值都一样,这就是一个新的实数,而且该实数绝对不会再出现在这张实数表中。但这并不意味着通常以为的实数集合就不可数了,因为按其它的实数排列方式或与自然数的一一对应方式(而不是强行使得第n个实数只能与其自身第n位的那个只是十个可能不同的数值之一的“数值”去一一对应),很可能实数就是可以与自然数一一对应的,起码康托对角线法并没有证明这种对应方式就不存在。理由已经说了,康托对角线法依赖于一个特殊的对应方式,而在此对应方式下,表中所列出的,只能是一个实数集合的真子集,而不可能是全部实数。而所谓“在此对应方式下”,就说明这里“不能列出全部实数”的,并非就是实数不可数。实数不可数,必须在任何(有无穷种)对应方式下都不能与自然数一一对应,而不是某一个具体的(意味着可以明确被指明的)对应方式下,实数不能与自然数一一对应。而原先之所以康托(包括康托之后的几乎所有人)认为其已经证明了实数不可数,是因为他或他们都没有意识到康托对角线法是需要一条事先被隐含着的假设的,也就是存在一条具体的、特殊的对应方式的,具体说就是所列实数与其每位可多值的位数一一对应。因此,他或他们以为证明了不依赖于具体对应方式的一般性的结果,但实际上他或他们能够做到的,仅仅是试图以特殊代替一般。都知道,这是一条典型的、很常见的逻辑错误形式。也就是说,康托对角线法所实际做到的,在逻辑上其实是:列表中的所有列出的实数,去与一个实数的真子集一一对应。如此,才可能有下面的取(通过逐位求异)不在这个实数的真子集中的一个实数,进而有所谓的“证明”(其实这个证明根本就不成立,它的结论已经包含在了其隐含假设之中了)所列出的实数纵列没有包含全部实数这个事实。但这种所谓的“证明”,在逻辑上当然是无效的。其结果已经包含在了前提、假设中。

 

上面是以十进制为例,也就是每一位有十个不同状态,十个数的情况。二进制当然也是一样的。二进制下,每位又两个状态,0或者1,如果第5个二进制实数为0.1011101............,令其与自己的第5位对应,第5位是“1”,改变这个“1”为“0”,得到0.1011001...........,当然不同于原先的实数。如果每位都如此操作,当然就得到一个有异于纵向列表中所有列出实数的一个实数了。

 

总之,康托对角线法先是假设了“实数可数,并且其排成了一列”,这是无任何其它条件的。但在随后的实际操作中,在多进制的前提下,沿对角线逐位求异,这看似随意且顺理成章地无问题,但其实无意中引入了一个新的、否定了原先假设中的“无任何其它条件”的条件,建立了一个具体的、特殊的对应方式:所列实数与其每位多值的小数位数一一对应。这个东西,必须作为整个对角线法证明的前提引入其假设中。如此,等于改变了对角线法的原先的假设,把“无条件”隐性地、不知不觉之间地改成了“有条件”。请问,在一个具体的条件、前提下,能证明在所有(无穷多种)其它条件下都成立的结论吗?当然不行。一个人打了疫苗(作为前提条件)没有得病,能证明未打疫苗(也是前提条件)的其他人也不会得病吗?当然不行。而康托对角线法所犯逻辑错误正是如此。注意,可数的定义中,可没有“与小数的多值的位数一一对应才叫可数、否则不可数”这一条。因此当然地,按这个假设、前提得到的结果,也不能叫不可数。

 

 

       三、表达多进制下的位数的自然数与一般意义的自然数的区别

 

 

多进制下的“位数”,虽然是用自然数表示的,但多进制记数法被人类发明的初衷与目的,不就是试图用较少的“空间位置(位数)”,去表达更多的数值,以达到节省空间(以位数来体现)的目的吗?于是,当然不能再去令这个表示位数序列的自然数去与其可以表达的状态数去一一对应。而这个不同的状态,又是用于表达不同数的。比如十进制下,每位十个状态,十个数。而十进制的位数本身当然是用自然数表达的,比如第一位,第二位,..........。这没有什么可说的。但这个表示位数的自然数,可以与其所能表达的自然数之间建立一一对应的关系吗?当然不行。比如三位十进制,就足足可以表达1000个自然数,而三位本身,作为位数的表达,只能是三个自然数。3个,如何去与1000个一一对应?就算三位十进制只表示30个不同的状态(每位十个),那也不能与3个位数一一对应。但这能表示自然数也不可数(不能与自然数一一对应)了吗?当然不是!这只能说明按此种对应方式,表示位数的自然数,不能与这个位数所属的多进制下所能表达的自然数之间在这种特殊的对应方式下,二者之间不能建立起一一对应的关系(否则还要多进制干嘛?),但绝对不是在其它对应方式下,自然数不能与自然数一一对应。总之,任何集合,其元素只要与多进制下的每位多态的位数一一对应了,就只能是这个多进制所能表达的全部数的一个真子集,也就是“小于”这个多进制数的全体。但这是一个具体的对应方式下的结论,不代表也没有证明这个多进制下的数的全体就是不可数的,而唯有这个真子集才可数。

 

    那么,还有一个问题:自然数是不是只能由多进制表达?当然不是。古代的结绳记事(可以视为是“一进制”)就是明证。因此,仅仅依赖于多进制的关于自然数的结论,或只对多进制下的自然数有效的结论,不能外推到一般意义的、普适的自然数概念上去,尽管多进制自然数现在是压倒性的普遍。这个结论,当然也适用于康托对角线法:其依赖于多进制自然数的事实无需再多言。

 

康托对角线法,没有充分地认识到任何对应关系(函数关系、映射、单射、满射、双射等等说辞),都取决于也依赖于具体的对应方式(函数关系)。而康托对角线法的经典表述中,并没有对这种必要的具体对应方式的任何显性的表述(隐性而言,当然还是需要和使用了的)。它没有意识到、进而也不可能表述出它实际在使用的隐含假设,即遗漏了一个实际被使用了的的假设。把一个特殊情况或假设或前提或条件下的结论事实,当成了普遍的、无条件的了。这就是其出错的根本原因。它以为这个证明是不需要也不用具体的对应方式下的一个普适的证明,但其实不是,具体对应方式还是必须要有的。否则如何谈什么“一一对应”?用什么去与什么、又如何地去对应?

 

最简单的例子,学校中的班级数是用自然数表示的,学生数也是用自然数表示的。绝对不能因为学生数多于自然数表达的班级数,就说学生数不能用自然数表达了。学生数的自然数不能与班级数的自然数一一对应,绝对不是学生数就不是自然数了。如此浅显的道理,由于康托对角线法所用前提条件的隐蔽性,被掩盖了。

 

     总之,很多人以为,假设实数可数,既然位数以自然数为计数,实数就可以与作为自然数的位数一一对应。但他们没有意识到,自然数是单值的,1就是12就是2。而多进制下的位数的每一位是单值的吗?当然不是(否则还有多进制这回事吗?。)如果位数是单值的,一个可数集当然可以与它一一对应。但如果不是单值的,实数集合的元素如果不能与其一一对应,就不能说是不可数的。因为显然,虽然位数本身是可数的自然数,而一个多进制自然数序列,明显多于其位数(或表达位数的那个自然数序列)。两种自然数,在此种约束条件下(或对应方式下),其实不是一一对应的,这是由多进制下的位数(也由自然数表示)的功用所决定的。也就是二者间在这种对应方式下,不能建立起一一对应(满射)。当然,这是在某具体的对应方式下的结论,绝对不是一个普适的、绝对的结论。自然数当然可以与自然数一一对应,这种对应方式显而易见。但作为多进制下的位数的自然数,与此多进制可以表达的自然数(利用位数的多值性),在解除这种对应方式(函数关系)前,是不能一一对应的。总之,表达位数本身所使用的自然数与多进制下的位数所能表达的自然数间,是不能一一对应的。但这只是此种特殊的对应关系下的结论。并不是说自然数竟然不能在任何其它对应方式下与自然数一一对应了。这完全取决于具体的对应关系,也就是函数关系。康托对角线法对一个对应(函数,映射)间的具体对应关系完全忽视了,根本就没有提,这是产生问题的根源。把特殊当成了一般。或没有意识到它的特殊性,误以为是一般的结论了。 

四、康托对角线法的逻辑结构:对应关系、隐含假设、以因为果、逻辑循环、以特殊取代一般

 

综上,一个多进制下的位数(每位多值)本身,不可能与其可以表达的全部数一一对应。因为其所依赖的对应方式,就是为了保证其所要表达的数比位数多。这是由于多进制(比如二进制、十进制等)之所以创建的目的,就是为了用更少的空间占位来表示更多的数。如三位二进制,就可以表示八个数,等等。这个结论,无论对有限位还是无限位都是成立的。因为康托对角线法所依赖的原则,也同样是把有限时的结论推广到无限。无此,就没有什么对角线法。我发现很多人强辩,说什么三位二进制可以表达八个数,不错,但这个规律推广到无穷不再适用云云。这个说法毫无道理。因为你尽可以以有限与无限完全不同为理由来反对康托对角线法的做法。没有什么康托可以干,别人不能干的道理。那么,康托对角线法究竟表达了什么呢?它实质上是通过假设全部实数与多进制的位数一一对应(对角线所要求的),然后改变每位的状态得到新的实数这点,等于一个命题“如果实数可数,也就是可以在某种条件下或对应方式下与自然数一一对应(可数),就必然要与不能表达全部实数某种对应方式、具体说就是与小数的位数(每位可有多种状态,每一个状态都可以表示完全不同的实数)一一对应。这等于是说,实数可以以某种方式与自然数一一对应(可数),当且仅当实数在某具体对应方式下不能与自然数一一对应”,这当然是自相矛盾的。注意,这个矛盾是隐藏在康托对角线法的证明假设与过程之中的,而不是其证明的结果,因此整个证明无效。其结论是错的。即,被揭示出来的某具体对应方式下(与每位多值的位数一一对应)实数不能与自然数(此时体现为每位多值的位数)一一对应,并不就是不可数。不可数要求所有的无穷种对应方式下都不能与自然数一一对应才行。

 

   一句话,康托对角线法实际所能做到的是:假设有一种方法(对应方式、函数关系)可以使实数与自然数一一对应上(可数),但这种具体的方法实际却并不能使得所列实数与自然数一一对应上。但这并不是不可数,也就是并不是在所有对应方式下实数都不能与自然数一一对应。此点没有被证明,起码没有被康托对角线法所证明。

 

     总之,康托对角线法的“证明结论”,是包含在其隐含假设之中的,因此它并没有证其所欲证,也就是实数不可数。康托本人以及后世不少人,是没有看出这个“隐含的假设”(证明的前提条件),因此误认为其结论是证明出来的,这在逻辑上的错误是是因果倒置、循环论证。

 

     显然,欲证明实数不可数(即:不能在任何对应方式、函数关系下与自然数一一对应),只能先假设在(有)一种对应方式下,实数可以与自然数一一对应。然后得到这个涉及“量词”的假设(有一种)的否定(按反证法),即对所有无穷多种对应方式而言(涉及“量词”),实数都不能与自然数一一对应。在这个观点或事实下,康托对角线法究竟证明实数不可数(在任何对应方式下都不能与自然数一一对应)没有?当然没有。因为对量词“”的否定(即“”),应该是量词“”。这大概是数理逻辑的常识吧?可怜一些把数理逻辑吹上天的人,一遇到具体问题就迷糊。那么,康托对角线法在逻辑上真正能做到的是什么?它实质上是先假设在一种具体的对应方式下(即实数与位数的一一对应)实数可以与自然数一一对应(即“可数”),然后在证明的实际操作上,或证明真正开始前,又由对角线这个具体的几何图形的性质隐蔽地否定了其原先的假设,也就是实际上这种具体的对应方式下并没有使得实数与这个有特殊要求以实现特殊功能(即其目的就是要表达比位数更多的数!)的自然数一一对应上。也就是原先的假设“实数可数”(即可以在某种具体的对应方式下与自然数一一对应上)与对角线逐位求异操作这个隐含的假设间直接矛盾了,后者直接否定了前者。

 

     我们可以看到,康托对角线法实际上是没有区分好其假设中的“实数可数”,究竟是“1、总有某种对应方式可以使得实数与自然数可以一一对应(可数)”,还是“2、实际地列出了具体的一种对应方式下实数与自然数一一对应”了。前者由反证法得到的否定结论,才是“对任何无穷种对应方式下,实数都不能与自然数一一对应(即不可数)”,这才是对角线法所应(本应)完成的任务。但它实际上根本就没有做到这点,也不可能做到这点。无穷种对应方式是不可能被穷尽的,且康托对角线法实际能够做到的,是具体的一种对应方式、也就是实数与位数一一对应下的情况(不能穷尽所有实数)下,它所否定的,仅仅是前述后者(“2”)。我们说,无论前述“1”或者“2”,如果成立,实数都可数,也就是都可以与自然数在某种具体的对应方式下,一一对应上。但否定了“1”,是实数不可数(实数不可数得证)。而否定了“2”,并不就是实数不可数。因为它没有证明所有对应方式下实数都不能与自然数一一对应,而只是“证明”了或“直接指出了”这种具体的对应方式下(实数与小数的位数一一对应下)实数不能与自然数一一对应上,但其它对应方式下如何,它并没有给出任何结论。这当然不是“实数不可数”(尽管也不是实数就“可数”了)。总之,康托对角线法的证明过程,是把一个具体的对应方式下的否定性结论,当成了普遍情况下(所有对应方式下)的否定性结论了。它能证明或还未开始证明就指出(尽管很隐蔽)的,只能是前者而不是其所声称的后者。这就是康托对角线法证明过程中的逻辑问题所在。

 

 

              五、反证法的局限性以及其适用条件

 

笔者接触到的一些人,以为反证法只要有一个假设,推出了矛盾,就算否定了这个假设了。比如康托对角线法就是一个典型的例子。不是的。你很可能在证明过程中无意中引入了隐含的其它假设,致使整个反证法的证明失效。很多人不知道这个道理,非说康托对角线法既然假设了实数可数,结果推出了矛盾,就算证明了实数不可数。这种只是一味地从表面的形式上理解反证法的情况说明,很多人并没有彻底理解反证法的实质和它的适用条件。陶哲轩也说(见其«实分析»一书),反证法并不是那么靠得住。他举了一个例子,如“x2”的否定,难道就是“x2”了吗?(大意),笔者曾经顺着他的意思说,“我没吃饭”不也是“x2”的否定?或后者的否定不是也包括“我没吃饭”?如果不界定清楚的话,怎么只是“x2”才可以是“x2”的否定?足见,反证法不是这么简单的。不是你说了一个假定,它就是唯一的假定了。

 

顺便一提,笔者十分诧异的是,陶哲轩在其经典的«实分析»一书中,居然没有提康托对角线法一字!他是直接先证明了更复杂的康托定理,把实数不可数的结论作为康托定理的一个推论的。这是一种非常规的、很奇怪的安排。为什么舍简就繁?是要故弄玄虚还是别有苦衷?是他也知道或意识到一些关于康托对角线法的争议或问题,故意回避还是怎么地?不得而知。总之,笔者认为,对一个经常被人吹嘘而高的不得了的、有广泛应用的方法竟然不置一词,也不去使用,无论如何也不算正常。任何有机会接触到他的读者,请代我问一下他,究竟是什么原因?当然,康托定理一般被认为本质上还是依赖于对角线法的,只不过不是那么直接了当。因此康托定理与对角线法一样,也有问题。甚至问题更大。因为康托对角线法只是证明了一层不可数,而康托定理,号称是对所有层都成立的。比如,如果A集合已经是不可数集了,那么还有B集合比A集合“还要不可数”。也就是”不可数上的不可数”。以此类推,以至有可数无穷多的“不可数的不可数的不可数...........”。但这个“可数无穷个”上面,不是又有不可数个吗?如此,还有完吗?而且比较无穷,我们其实也只能与可数无穷趋比较,不可能真的在两个不可数无穷间来比较大小。这是由于我们的证明,只能是一个一个地列出哪怕是无穷多的元素的,不能如此列出来,任何结论可以得到吗?自然数都列不完,但可以想象其被穷尽。而不可数就是用自然数不能想象地穷尽,这个东西之间,能有任何互相比较大小的可能吗?所以康托定理的证明,到头来还是基于可数集的,它的结论起码不能推广到任何不可数集。因为对任何所谓的不可数集,康托对角线法根本就不可用。比如,如果把康托对角线法的可数的位数用不可数的位数来代替,我们的对角线进而对角线法还可以有吗?

 

        六、集合元素的多、少概念

 

笔者在讨论中发现,很多人喜欢并且迷惑于集合元素的多、少概念。对有限集合而言,这是一目了然的。多就是多,少就是少。但对无穷集合而言,却不尽然。直观上,有理数当然比自然数多,实数也当然比有理数多。因为显然,有理数是实数的真子集,而自然数又是有理数的真子集。怎么可能一个集合与其真子集的元素一样多?所以,这个概念是不准确的。所谓“同基”、“等势”概念,并不直接等价于多少。它只是说明可以有一种对应方式,在此对应方式下,可以建立起一个集合可以与另一个与其同样的集合的真子集之间的一一对应关系。它完全没有排除在其它对应方式下,该集合不能与其真子集一一对应。也就是比后者“多”。这是无限集特殊的地方,不同于有限集的地方。还有一个问题掺和进来,使得问题更复杂了一些,就是传统上认为(康托号称证明了的!其实没有)实数是不可数的,也就是无论如何,用任何办法,在任何对应方式下,其都不能与自然数之间建立起一一对应。对自然数而言,它总有“冗余”,不可消除。换言之,这不就是真正意义的“实数比自然数多”了吗?既然不可数、不同基数、不等式意味着两个集合的元素不一样多,一个比一个多,那么,顺理成章地,可数、同基、等势的两个集合,不就是元素一样多了吗?这也是很多人产生迷惑的原因。某种意义上,也不怪大家。总之,都是实数不可数进而康托对角线法惹的祸!传统理论不得不如此解释:对有理数与无理数,等势不见得二者的元素就一样多,或二者的元素不一样多,也不见得就不等势。但对实数与自然数,可就不是这么回事了,二者不等势,就是实数实实在在地比自然数多,还多的多!理论实际上是不协调的,不一致的。实际上,只有认识到康托对角线法证明实数与自然数不同基(不可数)是错的,才可以使理论消除上述不协调、不一致性成为可能。

 

   七、实数可数的证明新思路:反康托对角线法的提出

 

     既然康托对角线法并没有证明实数在任何对应方式下都不能与自然数一一对应,也就是不可数,那么,实数是不是可数的?答案是肯定的,但需要证明。笔者曾经用多种方法证明了实数其实是可数的(散见于笔者诸多正式发表或未发表的有关文章中),但“解铃还须系铃人”,这里提出一种直接针对康托对角线法的证明方法,等于是“反其意而用之”,或可称为是“反对角线法”。此法同样要利用反证法,且看:

 

       如果实数可数,它就可以排成一列。既然全部实数都在此列中了,既然我们已经如此假设了,按“可数”、“不可数”的定义,就没有任何一种对应方式,可以使得还有不在此实数列表中的实数存在。这也就意味着不可能由康托对角线法那种利用多进制实数表述法的每位多状态的性质的逐位求异来获得这个不在此列表中的实数。因为康托对角线法就是一种具体的对应方式。换言之,既然已经实实在在地“假设”了或“预先认定”了所有的实数都在此表中了,那就意味着此时实数小数的每一位的状态都不应再变化。也就是不应该再试图通过改动(利用多进制下小数的每位可变的性质)此已成之表来获得不在表中的实数。那么,既然每位的状态不可再变,如何还能进行康托对角线法的“逐位求反”的对角线操作?也就是康托对角线法这种在具体对应方式下试图证明实数不可数(实际是不在此表中)这一按其定义不依赖于任何具体某种对应方式的方法不可用了。也就是它并没有证明实数不可数。但这并不意味着实数就可数,或就此证明了实数可数。而如何证明实数可数?我们这里可以给出一个证明:假设有一个实数仍旧不在此表中,也就是要求此实数的每一位上的状态(数值),都异于此表中的一个实数该位上的状态(数值)。而且全部异于该实数的每位不同状态(数值)的实数,刚好就是此表中的全部实数。显然,这个数我们只能通过康托对角线法的逐位求异来得到。或其与康托对角线法得到的那个实数是同一个实数。但我们前面已经说了,这不可能,因为在此表中,实数的每一位的状态是不能再变的,因此“逐位求异”操作在“全部实数都已经在此表中”的假设相违,不再被允许使用,因此,在此表中必然没有丢失任何实数,因此,此表是一张完备的实数表,也就是实数可数。得证。

 

       此证明实数可数的思路是:如果说有一个实数不在此表中,那如何证明其不在此表中?只有通过康托对角线法的“逐位求异”法。而既然前面已经假设了全部实数都在此表中了,就不应该再允许通过仅仅变动此表来找出不在此表中的那个实数,也就是试图通过直接违反假设的方式来否定假设,这不是反证法。比如,我们想证明“马非马”是错的,难道直接说“马就是马”,就算是一个用反证法证明了“马非马是错的”了吗?当然没有。同理,既然我们已经假设了此表包含了全部实数,就不应该再直接改动此表本身以获得不在表中的那个实数。一句话,此表不能再动,有本事请到表外去找不在表中的那个实数去。既然此表不能动了,其每位就不能再改变状态,也就是每位是固定不变的了,如此,康托对角线法还能用否?即:在全部实数都在此表中的假设下,康托对角线法直接不可用、不能再用、不允许再用。因为实数可数,就意味着可以把全部实数排成一列(都在此表中),也就是没有任何具体的对应方式可以使得表外还有一个实数。而康托对角线法笔者已经揭示其就是一个“具体的对应方式”,因此它的使用直接违反假设,而不是由它证明了假设的错误。二者要严格区分的。在此基础上,我们反而可以假设有一个实数不在此表中,如何证明其真的不在此表中?还得用反证法,“以其人之道”。而欲证假设“有一个实数不在此表中”,必然还得用康托对角线法。而在笔者的前期工作下已知康托对角线法并没有证明实数不可数,它需要通过逐位求反改动此表的方式来完成不再允许改动的一张表,这当然不行。因此如果假设了全部实数都在此表中,是不允许使用康托对角线法的,也就是不能再试图通过它进而通过直接改变此表状态(通过逐位求反,要求每位状态可变)来达到否定此表包含了全部实数这个假设,这是不允许的。明确说,就是在该假设下,表中每个实数的每位状态是不能再变的,于是“逐位求异”无法进行下去,康托对角线法不允许再用。这反倒证明了没有一个实数不在此表中。因为除了康托对角线法,不可能证明有一个实数不在此表中,而康托对角线法又不允许用,也就是说没有一个实数不在此表中,也就是实数可数。这也是反证法,但为“反其意而用之”。因此不妨称其为“反康托对角线法”。

   

        总之,康托对角线法的目的原本是想用来证明实数不可数的,现在在搞清了康托对角线法的来龙去脉后,不但可以证明其没有证明实数不可数,恰恰相反,反倒可以被用于证明实数可数。具体思路前面已经讨论了,这里为加深印象,不遄繁复啰嗦,再为简单表述一次:     

       以往认为,康托对角线法被用于或已经证明了实数不可数。后来笔者搞清了它并没有证明实数不可数。而是在它的操作所要求的隐含假设下,只能证明其在此特殊的对应原则下,没有列出一个完备的实数表,也就是列出的只能是一个实数的真子集列表。于是,康托对角线法不能用于证明实数不可数,它也没有证明。它只是“证明”在它的特殊的隐含前提下,就是特殊的对应关系下,没有也不可能列出全部实数。但这不符合不可数的定义,因此它没有证明实数不可数。它的所谓“证明”逻辑上等价于先预设了(假定了。由其隐含假设决定的)没有列出全部实数,然后所谓的证明没有列出全部实数,却是由这个所谓“证明”的预设假设直接给出的,这种循环论证当然不能作为严肃的证明,它等于逻辑上是因果倒置。现在我们假设有一个实数不在列表中,如何证明此点?要证明此实数与表中所有实数都不一样,只有康托对角线法一途,而已经证明了,康托对角线法在假设实数可数(列表中已经包括了全部实数)的前提(假设)下不允许再使用,也即是说明没有任何办法可以证明所列实数序列之外还有实数,也就是根本就不存在这样的实数。因为这种实数只能由康托对角线法来得到。康托对角线法只能运用于实数的真子集。现在康托对角线法不允许用了,于是就得不到这样的实数列表外的那个实数,也就是这样的实数不存在。于是,结论只能是列表是实数的真子集这个结论不存在,也就是全部实数都在此表中,即实数可数。

 

        再更简略的表述下,这个证明思路就是:康托对角线法试图或以为它证明了无论在任何对应方式下都有所列实数序列之外的起码一个实数在,也就是实数不可数。但其实它不能不依赖于具体的一个对应方式,因此它并没有证明其所欲证,也就是实数不可数。它充其量只是“证明”或确定了实数的一个真子集排列之外,还有实数(起码一个)这一其实不用什么证明的事实而已。而笔者提出的“反对角线法”,是“反其道而用之”:事先假设总存在一个实数,它总在所给实数序列之外。而欲证明此点,必须还是要用唯一的、且已经被确定由于要使用特殊的对应方式因此“并没有证明实数不可数”的康托对角线法。于是,既然实数序列外的实数或实数序列外还有实数这点只能由一个具体的、非一般意义的、且根本就证明不了实数不可数的方法来确定或证明,也就是其实由于康托对角线法的隐含假设的作用,它事实上要事先假设是一个实数的真子集序列,才可以用这个对角线法去确定或“证明”总有一个实数在实数的真子集之外(其实此点根本就不用证明,真子集的定义说的就是这个事儿),那么,如果我们假设了“实数可数”,也就是全部实数都排成了一个序列,我们是无法确定或找出或证明出还有起码一个实数在此实数序列之外的。也即是说,如果我们想确定所给实数序列外还有或总有起码一个实数在,就只能事先等效地假设(注意,是假设,而不是证明结果!)所给实数序列是一个实数的真子集,也就是不是完备的整个实数集合。由反证法我们立即可以得到,如果我们假设了“全部实数都在此序列”(即实数可数),是没有任何办法确定全部实数序列之外还有实数存在的。换言之,如果我们假定了实数可数(全部实数都在此序列中),就该找不出还在此序列之外的实数,也就是没有这样的实数在该序列之外,也就是该假设只能成立,即实数只能可数。假设可数,它就可数。因为可数了,就没有遗漏。而要想证明还有遗漏,只能用事先已经有遗漏的实数序列(实数的真子集)作为假设(尽管是隐含假设,以往没有被很多人看出来也罢)来“证明”,这当然没有证明事先的假设是“全部实数都排成了一列”或“实数可数”下还会有在此序列外的实数存在(也就是实数不可数)。而没有证明或根本就不可能证明全部实数已经列出假设下还会有实数在此序列之外,那就等于证明了没有实数在全部实数序列之外,也就是假设全部实数已经排成一列(实数可数),就是被证的现实情况。总之,假设了有遗漏,它就自有遗漏;而假设了无遗留,它也就自然再无遗漏。事情其实就是这么简单。因为假设了无遗留,如果想证明它还有遗漏,只能重新假设(尽管过去大家没有看透,它是以隐含假设的形式出现的)事先就假设了有遗漏。因此假设了无遗漏而事实上有遗漏无法被证明,只有先有遗漏才可以“证明”其有遗漏,这就等于证明了“无遗漏假设下”就确定了无遗漏(因为在此假设下不可能证明还有遗漏)。总之,既然不可能证明在“无遗漏”的假设下可以证明“有遗漏”,就等于证明了在“无遗漏”的假设下只能得到(其实也是被证明了)无遗漏。也就是所谓“可数”。

 

       如此简单但确实隐蔽的逻辑关系,就是笔者,也只是最近才看出来。起码也是忘了以前是否提到过与此类似的观点了(这种情况过去也是有的,待查)。其逻辑结构是:

 

       欲从A证明A,但却发现这里只有A才可以证明AA证明不了A,于是等于证明了A只有证明A。此处的A为“无遗漏”解,而A为“有遗漏”解。

       也可以表示为欲有A A,但发现只能有A A,不能A A,于是等于证明了只有A A

 

       综上,既然康托对角线法并没有证明实数不可数,那实数究竟可不可数?如果还不可数(总有一个实数在实数序列之外),又必须只能由康托对角线法来证明、确定,而可不能再由其它方法证明的话(仅指排成序列的情况。不包括区间套法。事实上,区间套法笔者也证明其并没有证明实数不可数。这是另话了),则等于证明了实数不可数没有、也不可能被证明。那么,会不会是所谓哥德尔的不可证?不会。因为此系统中实数不是不可数,就是可数。也就是不是实数不可数没有被证明、也不可能被证明,就是实数可数可以或已经被证明了。二者必居其一,没有其它可能。于是,既然实数不可数没有也不可能被证明,那就是这个“实数不可数”的结论不存在,这就等于反证了“实数可数”的结论。即如果“当且仅当”实数不可数不存在、或无法被证明(作为“充分必要”条件),则实数必可数。这个问题的逻辑结构,基本上就是如此。

 

 

 

 

                        参考文献

 

1.知乎网“何许(笔者网名)”有关博客文

2.国家科技图书文献中心预印本,笔者(沈卫国)有关文章

3.沈卫国.论自然科学的若干基本问题.海风出版社.1998年第一版

4.沈卫国.论熵、不可逆过程及数学中的无穷.海风出版社.2009年第一版

     注:其它已经正是发表的有关文章,以上都有,不再一一列出

 

 

 

  说明:本文并非一气呵成,而是随时添加心得而草成,为“拾遗”之作。时间跨度也有点大,因此多有繁复、重复之处。由于并非准备正式发表之用,更兼此领域在数学、逻辑界可谓是全军尽墨,尚能识者竟无几人,因此也不准备再为无客之席提供什么“食不厌精”了。识者自会心有灵犀。语言表述上的繁复,权当反复强调所论观点好了。

 

 

返转到

   zmn-000文清慧:发扬啄木鸟精神-《数学啄木鸟专栏》开场白及目录

       





https://blog.sciencenet.cn/blog-755313-1370748.html

上一篇:Zmn-0926 薛问天: 正确认识用集合定义关系,评一阳生先生的《0924》
下一篇:Zmn-0928 薛问天: 逻辑荒谬思维混乱,评沈卫国先生的错误文章《0927》。
收藏 IP: 111.19.32.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2023-4-2 14:20

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部