我真被惊到了,当第一次我看到这个关于连续统假设命题和它的证明
偶然在网上看到一个问题表述是这样的:
设S是一个由解析函数为元素构成的集合,对每个固定的复数z,集合{ f(z): f ∈ S } 都是可数集。
问题是:S这个集合是否一定是可数集合。
为了消除大家所看书本的歧义,这里说明一下,本文的可数包括了有限和无穷可列的情况。
本以为这个问题是某本分析教材上的小练习,结果我翻阅了一些资料后发现,问题的答案很有趣,是让人吃惊的那种有趣。
这叫做Wetzel问题,你在Wiki上搜索Wetzel's problem能搜索到它的介绍。后来数学家埃尔德什解决了它。因为证明过程非常简短和漂亮,被收录到了《数学天书中的证明》一书中。
问题的答案是,你认为S一定可数,那么就是说你不承认连续统假设。反过来,如果你认为S不一定可数,那么你就承认了连续统假设。
也就是说,这个问题的YES等价于连续统假设不成立。
因为连续统假设在ZFC中不可判定,这意味着,这样的S是否可数,在数学界最广泛承认的公理体系ZFC中不可判定。
要证明这件事情,不需要用到过于高深的数学知识,只要对复变函数和集合论的一些基础知识就可以。这些知识包括:
1、知道无穷序数和基数的概念(因为显示希伯来字母א会有莫名其妙的问题,这里我们用aleph代替这个字母)。尤其知道可数基数aleph_0,最小的不可数基数aleph_1,以及实数基数c的概念和基本性质。
这里强调一下,网上一些人,甚至一些科普书籍中,都不假思索的把aleph_1当成实数的基数。这是不符合通常习惯的,aleph_1当成实数基数只有一种可能,就是连续统假设成立。而实数的基数一般用c表示。少数情况下,我也见过用不带下标的aleph表示。但如果要用aleph_1表示实数基数,一定要强调是承认了连续统假设,这时候c = aleph_1 。如果不承认就是 c > aleph_1。
2、知道复变里的解析延拓定理的内容。只需要知道,不要求清楚证明的细节。
3、知道选择公理以及它的变种良序原理。我们经常用良序原理来进行超限归纳。而且我们很多时候提到选择公理的时候,不区分用的是它的原始版本还是良序原理版本。
我们开始我们的证明了,先看连续统假设不成立,即c > aleph_1情况。
这种情况比较简单。不妨假设S中函数的个数只有aleph_1个,如若不然,就取一个相同基数的子集。
对于S中不同的两个解析函数f,g , 做集合 S( f , g ) = { z: f(z) = g(z) },那么S( f ,g )是可数集合。这是因为,如果这个集合不可数,那么S( f ,g )在复平面上上必有聚点。那么根据解析延拓定理,f和g是相同的解析函数。
那么,把f, g 跑遍S中所有的不同函数对,∪S( f, g ) 这个并起来的集合就是aleph_1个可数集的并,所以只有aleph_1个元素。因为c > aleph_1,而复数有c个。这样必然有一个复数w不在∪S( f, g )里。这意味着,S中的函数在z = w处,取值都互不相同。就是说{ f(w) : f ∈S }的基数是aleph_1,不可数 。不能满足设定需要达到的条件。
再看续统假设成立,即c = aleph_1情况。
这里,我们就要使用超限归纳法了。我们要用这个办法构造出有个aleph_1个解析函数的集合,满足题设的条件。
我们取Q为实部和虚部都是有理数的复数组成的集合。这个集合是可数而且稠密的。
根据选择公理,我们用序数给所有复数一个编号,让第α个复数为z_α。因为复数只有aleph_1个,所有α只需要取遍可数序数就可以,因为可数序数的个数正好aleph_1。
这意味着对于一个复数z_α,下标比α小的复数只有可数多个。
我们试图构造“一列”解析函数f_α,其中下标α也跑遍所有可数序数。注意,这里“一列”标上的引号,表示它并不是通常意义的数列。这列函数满足对于这样的条件:如果β≥α,那么函数f_β(z_α) ∈ Q 。这样对于任意一个固定的复数z_α,所有的函数值被分成两部分,β≥α的部分,因为函数值都在Q中,这些值只能由可数多个。而β<α的部分,因为可数序数的性质,也只能产生可数个函数值。这样能保证这样的“一列”解析函数满足设定的条件。
我们开始用超限归纳法了。由于有很多细节要一一验证,所以我这里说主要思路。如果这篇文章在这里能超过3000的阅读,我也许可以做一个视频,验证更多的细节,毕竟如果东西没人看的,做出来也没什么意思。
说明一下,下面的所有希腊字幕的下标,都是可数序数。
初始值的f_0定义为零函数吧,并不太重要。
然后,假设对于所有的β<α中的f_β已经定义好,现在来定义f_α。因为α是可数序数,所以有可数个函数f_β,另外把下标小于α的复数z_β也提出来,也是可数个。
因为f_β和z_β分别都有可数个,所以我们分别重新排成函数列和数列。f_β重排成函数列g_n,z_β重排成数列w_n 。
然后,按如下模式,我们再递归的定义一列函数p_n ,过程如下
p_0(z) = s_0 , 其中 s_0∈ Q ,但s_0≠g_0(w_0) , 这很容易办到,因为Q中无限个元素。
p_(n+1)(z) = p_n(z) + a_n * (z - w_0)(z-w_2)...(z-w_n)
这里需要适当的设定a_n 的值,让其满足a_n趋于零的速度足够快,保证p_n的内闭一致收敛性,另外p_n(w_n)也不能等于g_n(w_n)。这两点都可以利用在原点附近设定了一个关于n的一个合适无穷小来设定,因为每次添加都是添加了一个多项式,只要保证a_n这个因子能让系数足够小就可以了。于是,对于a_n我们还能有无穷多个选项备选,使之满足这两个条件。在这无穷多个备选项中,我们还需要再选精细一点,还要保证p_n(w_n) ∈ Q , 这个可以通过Q的稠密性,并解一个一元一次方程满足。
这样,p_n将一致收敛的于一个解析函数,这个函数就是要定义的f_α,注意这个时候f_α(w_n) = p_n(w_n) = p_(n+1)(w_n) = ... = p_(n+k)(w_n) 。
而且,这个定义的f_α满足如果β≥α,那么函数f_β(z_α) ∈ Q (为什么?留作习题吧~~)。
于是完成全部证明。