说明

我们这一节介绍不可数集的概念,并给出一些具体例子,此外我们将证明 Schroeder-Bernstein 定理。

不可数集

不可数集

如果集合 A 是一个无穷集,且它不是可数集,则称 A 是一个不可数集。

这代表不可数集是比可数集“大”很多的存在,存不存在这样的集合呢?

我们知道对于有限集来说,若 |A|=n ,那么 |P(A)|=2n ,其中 P(A)A 的幂集,它是 A 的所有子集构成的一个集合(我们也把集合的集合叫做集族)。也就是说有限集的幂集永远比它本身“大”,这能否推广到无穷集上呢?

我们考虑正整数集的幂集 P(N) (为了方便以后我正整数集和自然数集都用 N ,大家根据具体情况确定)

P(N)={AAN}

假设它是可数集,那么我们可以把 P(N) 中的元素排乘一排

P(N)={A1, A2, ...AkN}

我们还是把这些 Ak 的元素都列出来

A1a11a12a13a14a15...A2a21a22a23a24a25...A3a31a32a33a34a35...A4a41a42a43a44a45...A5a51a52a53a54a55...

其中 aij 都是正整数数,每一行都从大到小排列,我们可以这么记

12345A1a11a12a13a14a15...A2a21a22a23a24a25...A3a31a32a33a34a35...A4a41a42a43a44a45...A5a51a52a53a54a55...

其中 aij 等于 1 或者 0,分别表示正整数 j 在或不在集合 Ai 中。(这个记法是高中时候,老师证明上面那个幂集元素个数是 2n 用的。)

我们说了,可数集就是能把集合里的元素排成一排,那么不可数集就是不管怎么排,都排不完,也就是有遗漏,现在我们要做的就是找到一个遗漏的 EP(N) 它不在这些 Ak 中。

我们看一个情况:

12345A110111...A200101...A310110...A400111...A510110...(1)

我们刚刚说了这表示 1A1, 2A1, 3A1, ... 这其实也是构建了一个双射,把 Ak 映射成了一串只有 0 和 1的序列(无限长),我们只要构造一串 0 和 1 的序列,让它和这些 Ak 都有不同就行了,我们可以让

B={b1, b2, b3, ...}

其中 bkakk 取不同的数,如果 akk=0 ,那么 bk=1 ,反则反之。这样这一串序列自然和矩阵(1)对角线上的元素完全相反,也意味着它和所有的 Ak 在第 k 位上都是不同的。

不管我们怎么排列 P(N) 成一些 Ak ,我们都能用上面的方法构造出一个不在这个排列中的集合 EP(N) ,这就说明了 P(N) 是不可列集(不可数集)。

这个方法貌似是 Cantor 提出来的,我们管它叫对角线方法。
熟悉二进制的同学会发现,这个证明告诉了我们实数是不可数的,大家可以自己思考一下。

实数和复数

实数

我们证明实数是不可数集。

实数

实数是不可数集。

我们知道有理数是在实数中稠密的,但是有理数集是可数的,这让我们思考实数比有理数多了哪些结构,我们会考虑实数的确界原理以及和它等价的几个定理。

闭区间套定理

I1I2I3... 是一个闭区间序列,且任意 Ik ,则这些闭区间的交集

k=1Ik

如果实数是可数的,我们可以把所有实数排成一排: r1, r2, r3, ... ,我们一定可以这样选取一个非空闭区间序列: Ik+1Ik, rkIk 。这时候我们对任一实数 rn

rnInk=1Ik

所以这个交集应该是空集,这显然和闭区间套定理矛盾了。

因此实数是不可数的,那么复数呢?

不可数集合的幂集

我们首先有一个问题。
所有可数集,我们知道是等势的。那么任意两个不可数集之间是否存在双射呢?

我们刚刚用正整数集的幂集构造了一个比自己“大”的集合,不可数集的幂集是否也比自己大?如果是这样那我们就知道没有基数最大的集合。

不可数集的幂集

A 是不可数集, AP(A) 不等势。

A 是任意一个不可数集合, P(A) 是它的幂集,如果 f:AP(A) 是一个双射,我们就有

P(A)={f(a)aA}

我们回忆一下之前的对角线方法:我们先假设存在一个双射 g:NP(N) ,于是就有

P(N)={ g(n) nN }

然后我们构造了一个这样的自然数的子集 B :如果 ng(n) ,就让 nB ; 如果 ng(n) ,就让 nB
这个方法当然可以构造一个 A 的子集 E :对任意 aA ,如果 af(a) ,就让 naE ; 如果 af(a) ,就让 aE 。显然这和所有的 f(a) 都不同,因此不存在从 AP(A) 的双射(更准确地,不存在满射)。

所以并不是所有不可数集都是等势的,现在我们知道实数集 R 是不可数的,那么实数集作为复数集 C 的子集, C 肯定是不可数的,但是它们两个等势吗?

复数

复数集

复数集和实数集等势。

我们知道复数集可以看出实数集和实数集的笛卡尔积

C={(a,b)a, bR}=R×R

可以构造这样的映射 f :对于任意的 r(0,1) ,写成无穷小数

r=0.a1b1a2b2a3b3...

f(r)=(a,b) ,其中

a=0.a1a2a3...b=0.b1b2b3...

这就构成了一个 (0,1)(0,1)×(0,1) 的映射。

但是检查之后我们发现有一些问题,首先是对于有限位小数,比如 0.1,存在两种无穷小数表示

0.1=0.1000...=0.0999...

所以不管我们规定这种小数选择哪种表示, f(0.1) 不可能同时取到

z1=(0.1, 0), z2=(0.099..., 0.999...)

不过好消息是这只存在于有限位小数,所以我们可以规定有限位小数只取第一种表达(后面全是 0 ),这样我们就只遗漏了可数个复数也就是说 (0,1)×(0,1)f[(0,1)] 是一个可数集。
我们知道如果 E 是一个不可数集, F 是它的一个可数子集, 那么 EFE 还是等势的。所以 f[(0,1)](0,1)×(0,1) 是等势的,所以我们可以建立 (0,1)(0,1)×(0,1) 的满射。
还记得我们之前说过吗?如果 AB 有单射, BA 有单射,那么 AB 有双射。这也是我们待会儿要证明的定理。
综上我们可以证明 (0,1)(0,1)×(0,1) 等势,这就可以说明 RC 是等势的。(怎么说明?)

Schroeder-Bernstein 定理

Schroeder-Bernstein 定理

A, B 是非空集合,如果 AB 存在单射, BA 存在单射,那么 AB 存在双射。

f:ABg:BA 都是单射,我们希望利用它们构造一个从 AB 的双射 F 。我们知道单射在任意子集上的限制还是单射,所以我们希望把 A 分成两个恰当的区域

A=A1A2

使得我们可以定义映射

F(x)={f(x),xA1;g1(x),xA2.

是一个双射。

我们看一下这要求我们如何划分 A :(i) 首先要使 g1(x)A2 上有意义,所以我们要求 A2g(B) , 记 A0=Ag(B) ,就是说 A0A1

(ii) 又需要 F 是单射,所以要求对任意的 xA1, yA2 ,有 f(x)g1(y) ,这等价于说 g(f(x))y 。我们不妨记 h=gf ,这其实是说 h(A1)A2= ,就是 h(A1)A1

(iii) 还需要 F 是满射,所以 B=f(A1)g1(A2) ,等价于 g(B)=h(A1)A2 ,根据 (i) 我们知道这就是说 Ag(B)=A1h(A1) ,就是 A1=h(A1)A0

我们考虑 A 的子集族 F={EA|h(E)A0E} ,这是非空的因为 AF

不难证明如下几个命题:
(1) EF,h(E)A0F ;
(2) EFEF ;
(3) 令 E0=EFE ,则 E0=h(E0)A0
可见 E0 就是我们要找的 A1