本文内容是记录微积分中一部分和康托有关的命题、定理的联系。
一些铺垫和基本知识
康托在研究实数性质的时候发现,实数比自然数都"多"。这里"多"的意义需要一些铺垫,因为实数和自然数都是无穷集合,并不能直接用有限集合比较多少的方法。
康托采用的方法是用对应集合元素来比较多少,如果存在一个映射把A集合的每一个元素对应到B集合的每一个元素,并且A的任何两个元素不会对应到B的同一个元素(不重复),B的每一个元素都有A的元素对应到(不遗漏),这样的映射叫一一对应,此时就认为A和B一样"多"。当一个映射满足不重复条件,那么就说A比B不多,或者说A小于等于B。如果满足不遗漏条件,那么就说A比B不少,或者说A大于等于B。
这里有几点注意,这几个定义和有限集合是匹配的,不会出现通常意义A不多于B但是在上述意义下A对于B的情形,所以可以认为上面的定义是通常定义的扩展。A比B不多的结论,是因为一般的对应关系是单向的,举个例子,教室里52个座位,有50个学生,当然不可能两个学生做同一个位置,所以从学生到座位的对应是不重复的,但是明显椅子更多。不遗漏条件比较直观,不多说。还有一点就是不多,不少的叫法比较拗口,为什么要用这两个词。因为不多代表了少于或者一样多两个情况,这和小于等于类似。另外有康托的一个定理 Cantor–Bernstein–Schroeder theorem,这个定理粗略地说,如果A不多于B,B也不多于A,那么两个集合A B是一样多的,由此,不多于、不少于和小于等于、大于等于有进一步的相似性,所以有时候多少和大小于会混着说。
最后是定义里的"存在"二字,这个技术上比较重要,不能说试着找了几个对应,没找到符合条件的,就说两个集合不一样大,存在必须是找到才算证明,没找到不能得到相反结论,除非找遍了所有的可能。
康托的对角线证明
这里我们说明自然数比实数少,用的是康托的对角线法。
显然的一个结论是,自然数N不多于实数R,把自然数集N的n对应到实数R中的n,显然就是不重复的对应。另一个显然的观察是,如果A比B的子集合(一部分)还少,那么A显然也少于B。
这里会用一个记号,如果f表示一个对应方法,f(n)就是在这个规则下对应的数。
康拓的方法利用了十进制,把0到1的所有实数[0,1]都用十进制表示,去掉"0."这个前缀,比如0,0.5,和1/3分别是
00000000.....
5000000......
3333333......
然后利用反证法,假设有人声称找到了一个自然数和0到1所有实数的对应,那么我们就按照那个对应把数字一个一个排下来,第1行是1对应的数f(1),第二行是2对应的数f(2),以此类推。于是我们得到一个入穷行无穷列的表,第i行j列的数字是f(i)的第位数字。
从这个表里我们可以得到一个数字,看对角线,可以连出来一个数字,再稍做手脚(看后一段),那么他和表里的每一行都不一样,至少有一个数字不一样,于是我们的到一个新的数,他没有被对应到,于是得到矛盾。
具体做法是把从对角线得到的每一个数字动一下手脚,让他和原来的数字不一样,比如每个数字用9减,于是0变成9,1变成8,
0123456789......变成
9876543210......
然后我们说明,他的第一位和f(1)的第一位不一样,他的第二位和f(2)的第二位不一样,以此类推,他和每一个自然数对应的实数都有至少一位不一样,因此这个改动的实数没有被对应到,和假设矛盾(有个小尾巴,后文说)。
这里一点小注释,有人会说,反正只差一个,那把漏掉的实数放进去再对应一遍不就好了吗?不行,上面的方法可以再来一次,再次得到一个新的数,无穷无尽。并且反证法的论证不是这样的逻辑,只需顺着假设,找到一个矛盾,这样反证法的论证过程就结束了,不需要再来一遍。另一个问题是无穷,人真的能把无穷的东西列出来吗,而且是行列两个方向的无穷?这是个和实际相结合的问题,实践上可以认为不可能,但是通过想象又可以认为是可以的,没有统一答案,数学家内部也有争论。但是抛离实践问题,假设有这种超能力,数学家能保证逻辑是协调的,逻辑上是不错的。
康托的第一个不可数证明
上面的证明其实是康托的第二个证明,是接地气的证明,在这之前还有一个证明,证明的基本对象是区间,稍微更抽象一点。
接着上面的证明,我们可以把[0,1]十等分,如果f(1)落在某个区间,就在除这个区间外的9个等分里选一个,记作A1。然后把A1再十等分,再在十个区间里选一个f(2)不在的区间,一直继续下去,最后会得到一个长度0的区间,就是一个数,记作x,任何f(n)都和x不在一个区间,即任何f(n)和都不同。
这里用到了区间套定理,就是说一个一直缩小,两个端点无限靠近的区间,最后里面会是一个数。
本质上,上面两个证明都用了十进制表示,但是其实并不需要如此,我们可以很容易地把上面的证明改成其他进制,比如三进制,但不能是二进制。因为这种进制表示法有一个不唯一的缺陷,就是让人诟病的0.999......=1.000......,两个每一位都不同的小数可以表示相同的实数,在二进制中,0.111......=1.000......。在二进制表示时,你可以给出这样的对应g,其中g(1)=0.1(二进制),然后剩下的g(n)的第n个数字总是0。这样g的对角线,经过对角线法的修改,只能得到0.0111.....(二进制)但他代表了0.1(二进制),g(1)有对应到,论证失效了,这就是之前留下的小尾巴。但是三进制有足够的自由度调整数字,使得上面的情况不发生。
另一个角度的区间证明
我们可以认为有限位小数其实对应了一个区间,比如0.1就对应了[0.1,0.2],0.678对应了[0.678,0.679],0.10对应了[0.10,0.11]。就是从一个小数开始往后一段的全部数字,并且位数越长那一段就越短。记下这个一堆区间的集合X。
我们开始有点不一样的对角线论证。首先看f(1)的第一位,比如0.123...就取0.1,于是从[0,1]里去掉0.1代表的区间,剩下的记作C1。接着看f(2)的第二位,比如0.243...就取4,接着从C1去掉所有0.?4代表的10个区间,记作C2。这样的Cn有个特点,就是整个集合里的数,和f(1),...,f(n)都不一样,看前个数字就知道。这样做下去,剩下的东西和之前不一样,是一个集合而不是单个数。
由此我们可以看到,之前的做法的自由度非常大,举个例子说明三进制,并且取这样一个对应关系h,他的对角线上都是1,由此我们得到了一个集合康托三等分集。我们可以这样描述这个集合的元素,三进制中所有位数的数字不是1的元素。再转换一下,就是所有位上都是0或2的元素,而这和实数的二进制表示只差一点点,把2换成1就一模一样了,于是这个集合和二进制表示的[0,1]一一对应,一样多,就是说没选到的元素和[0,1]一样多。
拓扑学的描述
在点集拓扑的书上,通常还有另外两个证明,定理的条件差不多,证法也差不多,也是反证+挖洞,最后通过集合非空来导出矛盾。
一个是非空perfect set不可数。
一个是紧致Huausdorff空间没有孤立点,那么空间不可数。
老实说前置定义比较多,就不展开了。
延伸1 Baire定理
这边开始的就和康托没什么关系了。第一个话题是Baire定理。Baire是人名。
老实说前置定义也有点多。
实数的一个集合如果和任何开区间都相交,那么他是稠密的,例子有所有实数R,有理数Q,所有无理数。
实数的一个集合如果任意给一个开区间,总能找到一个开区间的子开区间和他不相交,那么他就是无处稠密的,例子是自然数N,有限集,一个直观的感觉就是他到处都是洞。
一个集合叫做第一纲集或者meager集,如果他能写成可数个无处稠密集的并。如果不行,他就叫做第二纲集。这里可以吐槽一下Baire的命名,第一纲集第二纲集就是他论文里的原文。
然后是Baire性质,一个空间的可数个稠密开集的交集还是稠密集,或者说一个空间的无处稠密闭集的并集还是无处稠密集,这就是Baire性质,直观的说就是"大"集合求交还是"大"集合,"小"集合并起来还是"小"集合,这里的大小是通俗讲法,经常反直觉。
Baire定理给出了一个拓扑空间有Baire性质的充分条件,紧致hausdorff空间和完备度量空间。
放在这里讲是因为他的证明放在实数上,和康托的区间证明类似,只是康托每次用一个点,baire一次用一个无处稠密集,做无穷多次,然后用一个类似区间套的方式扣剩一个点。
延伸2 积拓扑
在这里提积拓扑是因为,我是在看上面的内容的时候体会到其中蕴含的积拓扑的,是很神奇的感觉。上面用小数的有限部分指定一个区间的做法其实给出了一个积拓扑,连分数也可以给出类似的积拓扑,最后给定的拓扑是同胚的。
积拓扑是定义在一族拓扑空间的笛卡尔积上的拓扑,可以用限定有限个分量的方式给出基,也可以限定一个分量给出子基,没啥区别。
积拓扑到处都是。
比如十等分[0,1]可以定义成{0,1,2,3,4,5,6,7,8,9}^N,即十进制序列,每个分量取离散拓扑得到的积拓扑。
比如N^N,通过连分数给出同胚 ,从中也可以看出积拓扑。
函数列的逐点收敛也可以看成是函数空间的积拓扑下的收敛,子基元素是在定义域的某一点足够接近某函数值代表的函数图像上的一小段竖向开区间。