从今天开始打算科普一系列我觉得有意思的东西。打算以各种像悖论的东西为主,有数学的,逻辑的,物理的以及哲学的。比如说罗素悖论里的那个理发师究竟应该怎么做,『这句话是谎话』到底应该怎么理解,海德格尔的向死而生应该怎么理解,到底什么是无穷,我们用的数学会不会有自相矛盾的地方呢,这类的问题。就是那种让人看见了会觉得怪怪的然后开始怀疑自己怀疑世界的问题。我个人是十分喜欢这些东西的。我觉得每次无聊的时候想想这些就会觉得这个世界还是很新鲜的。计划至少每周一更吧~
第一个话题说什么呢?打算说一个我最早接触到的一个像悖论的东西。我记得当时差不多四年级,我在上奥数班,课间的时候我同桌给我说,你知道0.99...=1吗?我当时就觉得很懵,觉得这不太可能,因为我觉得0.99...应该是小于1的,感觉应该像是0.99...+0.00...01才应该是1,感觉应该差一个很小很小的量,就是零点之后无穷个零之后一个1,但这个0.00...01是什么呢?我当时回答不出来。我清楚地记得我同桌告诉我的他姐姐给的证明。他就先问我,一个数的十倍减去这个数是不是就是这个数的九倍呀?我说是呀。然后他问我,那0.99...乘以10再减去它自己是多少呀?我想了想觉得应该是9,所以0.99...应该等于9除以9,也就是1了。当时我感到十分震惊以及不服气,因为小时候的我总觉得这里有诡辩的地方,比如说,我当时很不明白的是,那那个很小很小的0.00...01怎么办呢?我觉得10乘以0.00...01应该是0.00...010,但照我同桌的说法0.00...01乘以10还是它本身,这让当时的我很费解,总觉得怪怪的。
过了几天我是怎么说服我自己的呢?我当时的想法是,0.99...不是数。为什么呢?因为当时老师告诉我们一个数要么是有理数要么是无理数,而0.99...不能写成分数(其实我当时也不是很明白为什么不能写成分数,就是这样心里劝说自己),所以不是有理数,同时它又是个循环小数,所以不是无理数,那看来0.99...不是数了,这个问题问的就没有意义了。我想到这里的时候感到了一种解脱,但随之而来的问题还是一直困扰着小时候的我,那就是它怎么会不是一个数呢?我分明都把他写出来了。既然这个数我写出来但不是一个数,那我怎么知道我写出来的其他数是数呢?再到了初中我会问自己,那些无限不循环的小数我永远都写不出来,它们怎么叫数呢?我又怎么才算真正认识它们了呢?
这些问题其实一直伴随我度过了高中。高中的时候天天刷题反而不会去想这些不太影响计算的基础的问题。只不过偶尔晚自习上会想起来四年级的奥数班课间那么尴尬的五分钟,觉得自己算的东西怪怪的。到底什么是数都不清楚,我是在干什么呢?我记得大概高一快结束的时候我买了一本微积分教科书,从那里我学会了怎么用柯西的那套语言来表达极限,学会了怎么积分,怎么看级数收敛不收敛之类的。到高三的时候我再想为什么0.99...=1的时候,我是这么说服我自己的:因为如果他们不相等的话,那应该就是0.99...小于1了,那么这两个数之间一定还夹着一个数,这个数比前者大比后者小。因为它比1小,那么也应该是零点多少多少。同时因为中间这个数不是0.99...,这个数一定会在某一位上和0.99...不一样,但这是不可能的,因为那样的话0.99...一定会大于所谓中间这个数,矛盾。这一番想法在高中的我看来可以被柯西的那一套极限的语言规范的写出来,我也就心满意足,对这个问题的感情上踏实多了,感觉没有那么尴尬。
但细细一想,其实这并没有解决我之前提出的一些问题,比如那这个0.99...到底是有理数还是无理数?我写不出来的无理数为什么是个数?那些人类永远都写不出来同时又不像π之类好描述的无理数为什么存在呢?这些问题在彼时的我看来就像是这个世界为什么存在一样是个虚无的哲学问题不值得回答,我只要安心算好我的导数大题解析几何就好了,这个问题,伴随着许多我童年的古怪的想法,被高三的一轮又一轮的复习和考试差不多碾压成了粉末飘散在风中了。
直到大概高考前的三四月份,我们班上唯一的一位搞过数学竞赛的同学,上课不听讲的时候开始读一本我没见过的新书。我虽然不搞数学竞赛,但我一直对相关的东西很感兴趣,有的竞赛题也会做一做,便常会和伊交流。伊手里一本看起来酷酷的新书确实给我留下很深印象。课间问起书名,那是我第一次听说北大的一系列数学小黄皮书。彼时伊看的是数学分析一,我很好奇的翻了翻,感觉大致内容和我自己读过的微积分差不多,但细看起来有很多我不明白在干什么的东西,比如,我印象最深的是经常看见什么闭区间套几个词,我当时甚至不明白该怎么断句。就问这数分和微积分有什么区别。现在想来两个普通的高中生很多也都是在瞎扯,他说了一些我都觉得没有道理,直到讲到他正在看的,戴德金分割。
这是一个我从来没听说过的名词,戴德金分割,这听起来很酷,像是武侠小说里的一套招术,但不知道是干什么的。是干什么的呢?现在想想他当时给我讲的实在是不对,不过这也是可以理解的,都是身边没有很好的教育资源的高中生嘛,能自己凑到一起讨论数分已经是精神可嘉了。
话休闲絮,这个戴德金分割到底是什么呢?这就又和我之前说到的数是什么扯上关系了。戴德金分割其实就是用来解释实数是什么的一种方法。之前不是问了吗,我们怎么知道那些古怪的无理数是不是数呢?比如说,我永远写不完根号二,那我怎么知道根号二存在呢?这个问题其实直接导致了所谓的第一次数学危机,当古希腊的西帕索斯发现根号二不可能被写成两个自然数组成的分数的时候,毕达哥拉斯学派的同学们都感到十分震惊,世界上竟然还有如此奇怪的数,就把西帕索斯扔到了大海里,善哉啊善哉。
那么两千年后的戴德金是怎么帮助西帕索斯的呢?戴德金其实是说,给定了你们毕达哥拉斯学派的有理数,现在让我们来创造实数吧~实数是什么呢?是有理数集合的一个划分!什么是一个集合的划分呢?通俗的讲就是把一个集合切成两个的方法。比如说把世界上所有的小猫和小狗分成所有小猫和所有小狗,就是对『世界上所有小猫小狗』这个集合的一个划分了。
我知道,这初听起来像是疯话--说好的数呢?把有理数切成两半这算个什么回答蛤。
但这就是数学。
通过巧妙的形式上的构造来规避本体论问题,这大概可以概括那个时代许多数学家的工作,但这还是后话,如果我能坚持写下去的话,我们会不停地回到这个论点上来。
简单地思考就能告诉我们,这个构造是正确的(比如说切法相同我们得到的数是唯一的),也是十分有效的。比如说,实数里的一个有理数是什么呢?戴德金的构造告诉我们,应该是一种切法。怎么切呢?最自然的想法就是,有理数在哪里就切哪里。比如说,实数里的2.1是什么,戴德金告诉我们,是把所有有理数切成小于2.1和大于等于2.1的两块这么一种切法;实数里的9.9是什么?是把所有有理数切成小于9.9和大于等于9.9的两块这么一种切法。我们可以同样的定义这种切法之间的加减乘除,毫无问题。最后西帕索斯终于要问了,实数里的根号二到底是什么?这个时候我们终于可以回答了,根号二是有理数的一种切法,就是把有理数切成两块,一块是所有平方之后大于等于根号二的有理数,剩下的有理数都在另一块里。
这就是根号二了。
『那什么是0.99...呢?』我内心的小学生一脸不服的地问到,『戴德金,你能切出0.99...吗?』
可以,并且可以证出来0.99...=1,怎么说?其实就比一下那两种切法是不是相同了。比如我们看根据0.99...切出来数值比较大的那一块,再比较根据1切出来数值比较大的那一块,这两块一样吗?如果不一样的话只可能1的那块少一点,但这说明什么?说明0.99...和1之间还夹着一些有理数,但根据之前我说的高三时候的想法,这显然是不可能的,证明完毕了,给人感觉什么都没发生一样,但问题终于解决了。
事实上,现在一般教科书上常用的构造实数的方法有两种,一种是我们刚说过的戴德金分割,另一种是根据柯西序列的等价类来定义的。我个人其实更喜欢第二种,但是要解释清楚什么是柯西序列会涉及到一些无趣但必要的小细节,写出来就没什么意思了。但大致想法就是,把实数定义成一类特殊的有理数列的等价类。比如说π就可以被定义为极限和 3,3.14,3.1415,3.1415926,...这个数列的极限相同的有理数列的等价类。这样的话因为0.9, 0.99, 0.999, 0.9999,...这个有理数列和1, 1, 1, 1, ...这个有理数列的极限相同,我们很自然的就有0.99...和1是同一个实数这个说法了。无论如何,为什么0.99...=1以及什么是数这类的问题终于解决了。
。
。
。
。
。
问题真的解决了吗?
我们来回忆一下。
Q: 我们刚刚定义的实数都是根据有理数来的,有理数是什么?
A: 这个我们从小就知道,一个整数除以另一个非零的整数就得到一个有理数。
Q: 除法是什么?整数又是什么?
A: 这个我们小学就知道,除法是乘法的逆运算,整数是负数和自然数。
Q: 乘法是什么?负数是什么?自然数是什么?
A: 这个我们二年级就知道,三乘二就是三个二加起来,负数就是一些和正数加起来是零的东西,自然数,自然数就是零一二三四五六七等等等等呀,这是要问什么。
Q: 那么加法是什么?以及你还是没有回答自然数是什么。
A: 。。。你把一个苹果和两个苹果放在一起就是三个苹果,所以一加二等于三,你数苹果用到的数就是自然数。
Q: 我不懂你在说什么,所以加法就是把苹果放在一起这个动作吗?我放梨可以吗?我放飞机可以吗?我放火可以吗?以及我数苹果的时候就是可见一定样式的苹果然后念出一个词语,我念出的那个词语可以是很混乱的,而且天下没有那么多的苹果,所以我把这个世界上的苹果数完就可以得到最大的那个自然数吗?
A: 。。。
Q: 一是苹果吗?一百是飞机吗?世界上的苹果最大吗?
这像是人们一生中偶尔会和自己进行的对话。一是苹果吗,一百是飞机吗,这问题听起来深有禅意。实际上这是弗雷格的逻辑主义会遇到的一个经典的问题,叫凯撒问题,二是凯撒吗?这个看起来荒谬的问题却在很长一段时间内所有的数学家都无法回答。数到底是什么?老子说道生一,一生二等等,这听起来是在告诉我们自然数是道所衍生出来介于道和我们这个世界之间的东西。
这种说法其实和柏拉图的哲学恰好重合。我们知道柏拉图很著名的一种想法就是在我们这个世界之上还有一个Form的世界,那个世界里充满了各种完美的形式。桌子为什么是桌子?柏拉图说因为我们这个世界的桌子有了Form世界里那个桌子的形式。柏拉图所向往的本体论的真善美等等都在那个Form世界里面。在他的学说里数在哪里呢?在柏拉图看来,在一个高于我们尘世但是低于Form世界的数学王国里面。所以我们能看见柏拉图和老子(的一种解说)对数学的看法是有些相似的-- 那是一种超越了我们这个有限而且不完美的尘世的存在。就这样,他们给了数学一个很美好的本体论。
从古希腊到当代,很多很多的哲学家们都尝试过给数学一个令人信服的本体论的根本。比如康德就觉得数学是由我们对时空的直觉来的等等。我读康德经常读懵,也就不多瞎说了。总之数的本体是什么,引得许多哲学家抛头颅洒热血地思考。
然而我们说过,通过巧妙的构造来规避本体论,是上个世纪初一票数学家的工作的主旨。这些Form什么的太玄了,看不见摸不着,我们怎么具体地知道它的性质?
最开始成功的尝试来自于皮亚诺。皮亚诺的意思是,我们先不管数是什么,我们先说数应该满足什么性质,于是就有了所谓皮亚诺算数体系,这个体系里规定了最基础的比如一个东西是另一个东西的后继的概念,以及最基础的数学归纳法的概念等等。有了后继的概念,我们就可以定义+1,有了+1我们就可以定义最基础的加法,有了加法,就有了最基本的乘法,然后通过一些数对的等价类,我们就能定义负数,减法,分数和除法啦~我们也就有了有理数啦。
然而,皮亚诺算数体系只是说了我们有一套这样的体系,但有没有满足这套体系的东西,数学家们其实无法给出回答。如果宇宙中有一群无穷的兔子满足这套体系的话,我们说1234的时候可能说的就是那些兔子。但如果哪里都没有满足这套体系的东西怎么办?这样的话千百年来数学家们说的是不是都是废话?
这回轮到大名鼎鼎的冯诺依曼来通过巧妙的构造来规避本体论了。冯诺依曼告诉我们,满足这个体系的东西是有的,这东西是什么呢?说出来可能会让人失望-- 空集。
定义0为空集,1为以0为唯一元素的集合,2为以0和1为元素的集合,等等。
无穷大生于虚无。
此中有深意吗?
也许有,但数学只能暗示出来那层深意。
想要挑明了说那层深意,P. Benacerraf告诉我们是行不通的。他说什么呢?
他其实只是注意到了另一个人对于数的定义-- 策梅洛。这个人在大众眼里可能完全不出名,但是所有数学系出身的同学们应该都对他相当熟悉,他就是ZFC里的那个Z.
这个ZFC是什么?
这是一套公理,给出了严谨的集合论的基础,数学的根基。比如他告诉我们至少有一些集合存在,集合的并集还是集合等等。
为什么要有这么一套看起来毫无意义的公里体系呢?这些不是自明的吗?
这其实又涉及到了第三次数学危机,希望以后有机会详细展开写一写,这是我很喜欢的一个话题。简单来说就是为了回应罗素悖论,排除掉一些奇怪的朴素集合论里的东西,告诉我们在集合论里什么算是一个合理的句子以及什么不是。
策梅洛还干什么了呢?
他还给出了数的另一种定义。定义零是空集,一是只以零为元素的集合,二是只以一为元素的集合,等等等等。我们得到了另一套完整自洽的数的定义。
这个时候Benacerraf要问了,数到底是什么?二到底包不包含零?按照冯诺依曼那么说二就包含零,按照策梅洛那么说二就不包含零。
但是柏拉图告诉我们,二应该是在一个超越了我们这个世界的一个数学世界里的是在的物体,一也是,零也是,一个物体包不包含另一个物体怎么会有两个互相矛盾的答案呢?
Benacerraf于是说,柏拉图错了。
我们在用数学的时候有时会假定数学物体以某种超越的形式存在,但这无法回答上面的问题。
Benacerraf说,数应当是结构。这便是数学结构主义的最主要的几个开山之作之一了。现代数学家的心里大多也就是柏拉图主义和结构主义两种感觉交织在一起的。
结构是什么呢?
顾名思义,结构应当是单纯的抽象的东西,至少不是像柏拉图说的那种实在的超越的东西。
这在数学实践上的表现是数学基础的范畴化,什么意思?之前我们的数学基础不是集合论吗,我们高中第一课就是这么教的对不对?现在我们说,好,ZFC集合论实际上在逻辑的角度说很好,可以让我们合理地讨论数学,但是,当我们假定空集存在的时候,我们总会隐隐约约感觉空集应当是像某种柏拉图式的东西一样存在的,我们能不用这么一个柏拉图式的东西而改用单纯的结构吗?
Lawvere说可以的,用范畴。
什么是范畴?范畴这个词自康德开始哲学家们就一直在用,但是数学家们用起来已经是1950年之后的事情了。数学里,一些资料和一些资料间的箭头就构成了一个范畴。这个概念里面那些资料是什么完全无所谓,重要的是这些箭头的关系。箭头们之间的关系是一个丰富的结构,我们可以再去研究这些结构这间的箭头组成的结构之间的箭头组成的结构之间的箭头...
就像这样,Lawvere给出了一个集合范畴的公理体系,在这里面还是可以定义并集和笛卡尔积,函数之类的经典的集合论的东西,他还给出了我们熟悉的皮亚诺体系和选择公理在这套集合范畴里长什么样子,看起来一切都完美了。
还是有一个小问题,集合范畴里的资料到底是什么?
Lawvere看起来是把最基本的一些映射当做了这些资料,可是映射是什么,Lawvere并没有给出回答,他只是说映射应该是有值域和定义域的,它们又是什么呢?这里把他们处理成值域和定义域上的恒等映射,所以也就是某种结构了。
但是假定有映射存在总是在某种方面假定了类似于集合的东西存在。
哲学家Colin McLarty是这样评价Lawvere的集合范畴里的那些像是集合的东西的,我来简单翻译一下:
『但他认为集合是存在的,没有这些形式化的东西我们也了解他们,我们能在公理化的这个过程中学到很多东西。这个集合范畴在数学实践的整体中客观地存在着-- 不是在一个柏拉图式的天堂,也不仅仅是某个个体的主观经验。这种历史(辩证)实在主义在Lawvere的文章之中一以贯之。』
发展到了这里其实已经可以和当代的数学接上轨了,集合范畴的许多性质到现在也是一个活跃的课题。我从四年级奥数班课间开始的对于什么是数的探索,历经十年也就走到了这里,但这当然不会是终点。