集合可以说是最简单的结构。或者说简直简单得没有结构。对于一个抽象的集合(意思是说,我们只知道它是一个集合,其他什么也不知道)来说,它的每个元都是完全一样的,元和元的相互之间也没有任何关系——当然,要说的话还是有那么一点关系,我们总是能判断两个元是否相等。从这个角度来看,我们关于一个抽象的集合所能知道的唯一信息,就是它的元的“个数”。这是集合这种“结构”的最重要的“不变量”,也是唯一的不变量。

当然我还根本没有说过所谓“个数”是什么。OK,那现在我就这样来定义:所谓个数,就是指集合的不变量。讲这话并不是找打。我们已经定义了集合的“同构”,也就是一一对应(参看前文《映射》)。所谓“不变量”,当然是指“在同构映射下不变的东西”,于是我们就得到下面的定义:

定义。如果两个集合 AB 是同构的(也就是说它们之间存在一一对应),我们就说它们同等。写做 A ~ B。这显然是一个等价关系(参看前文《关系》)。我们把关于这个等价关系的任意等价类称为个数,或者为了区别于我们的直观,换一个词称做浓度。对于任意一个集合 A,它的浓度当然定义为与 A 同等的所有集合做成的等价类。

从我们的直观上来说,“部分”的个数要比“全体”的个数来的“小”。这句话中已经暗示了一个重要的定理。

首先,所谓“部分”当然可以指“子集”。而鉴于现在我们考虑的同等关系,下面的定义应该是恰当的:

定义。如果存在一个从集合 A 到集合 B 的单射 f: AB(这时 Af ( A ) 同等),我们就说 AB 小。写做 AB

而所谓的“小”,当然不只是说说就算了。我们谈论大小的时候在暗默中就假定了一些事,关于这个请参看前文《关系》。这些“暗默中假定的事”确实成立,这就是下面的定理。

定理。≤ 是一个偏序关系。

证明。显然对任意集合 A 都有 AA。而如果 ABBC,只要考虑映射的合成我们就有 A C。这个定理最主要的部分在于,如果 ABBA,就一定有 A ~ B。或者换句话说,如果既有从 AB 的单射,又有从 BA 的单射,那就一定有 AB 间的一一对应。这个有时被叫做Bernstein定理,证明如下:
假设有单射 f: ABg: BA。我们的战略是把 AB 分别分割成 A1A2B1B2 两个不相交的部分,使得 f ( A1 ) = B1g ( B2 ) = A2。这样一来显然有 A ~ B
先假设有这样的分割存在,这时因为 B1 = f ( A1 ) ⊆ f ( A ),所以 B2 应当要包含 Bf ( A )。我们把 Bf ( A ) 记为 C0C0 既然被包含在 B2 里面, g ( C0 ) 当然被包含在 A2 里,而 f 是单射,所以 fg ( C0 ) 也一定被包含在 B2 里。依此类推,我们把 fg ( C0 ) 记为 C1fg ( C1 ) 记为 C2,… , fg ( Ck ) 记为 Ck + 1,… ,显然 B2 应当包含所有 Ck
我们将证明,把 B2 定义为所有 Ck 的合并就可以了。这时令 A2 = g ( B2 ), A1 = A \ A2B1 = BB2,剩下我们只要证明 f ( A1 ) = B1。由于我们最早已经把 Bf ( A ) 包含在 B2 里面了,所以 B1 = BB2 当然被包含在 f ( A ) 里。 f 是单射,所以 f ( A ) 分成 f ( A1 ) 和 f ( A2 ) 两个不相交的部分,而根据 B2 的定义我们有 f ( A2 ) = f ( g ( B2 ) ) = fg ( B2 ) ⊆ B2,所以当然 f ( A1 ) = B1。(证毕)

定理。对任意集合 ABC,我们有
1) ( AB ) × C ~ ( A × C ) ∐ ( B × C )
2) AB × AC ~ A BC
3) ( A × B )C ~ AC × BC
4) ( AB ) C ~ AB × C
5) ℘ ( A ) ~ 2A
注意 ∐ 和 × 分别代表非交和与笛卡儿积, ℘ ( A ) 代表幂集合(参看前文《集合》),而 AB 表示从 BA 的所有映射的集合, 2 则表示集合 { 0, 1 }。

证明。考虑这些集合的意义,定理基本是显然的。这里证明 4) 和 5) 做为例子。4) ( AB ) C 的元是从 CAB 的映射,把它写成 f。于是对于任意的 cCf ( c ) 是 AB 的元也就是从 BA 的映射,于是 f ( c ) 把 B 中的元 b 映到 A 中的元 f ( c ) ( b )。所以合起来说 f 正好就是把 B × C 的元 ( b, c ) 映到 A 中的元 f ( c ) ( b )。 5) 对 A 的任意一个子集 U,我们定义从 A 到 { 0, 1 } 的映射 fU 为:如果 xUfU ( x ) = 1,否则 fU ( x ) = 0。这显然是 ℘ ( A ) 和 2A 的一个一一对应。(证毕)

定理。把所有自然数的集合记为 ℕ。我们有
1) ℕ ∐ ℕ ~ ℕ
2) ℕ × ℕ ~ ℕ

证明。 1) ℕ = { 奇数 } ∐ { 偶数 }。映射 n |→ 2n 给出了一个从 ℕ 到 { 偶数 } 的全单射,所以 { 偶数 } ~ ℕ。对于 { 奇数 } 也是一样。
2) 像这样列出 ℕ × ℕ 的所有的元: ( 1, 1 ); ( 1, 2 ), ( 2, 1 ); ( 1, 3 ), ( 2, 2 ), ( 3, 1 ); ( 1, 4 ), ( 2, 3 ), ( 3, 2 ), ( 4, 1 ); ……; ( 1, k ), ( 2, k - 1 ), …, ( k - 1, 2 ), ( k, 1 ); ( 1, k + 1 ), …… 把把这序列从头开始往后依次编为 1 号, 2 号, 3 号, … 这就给出了从 ℕ × ℕ 到 ℕ 的一个一一对应。如果你有兴趣,可以试着把这对应用式子写出来。(证毕)

ℕ 的浓度通常称为可数浓度。可数浓度的集合称为可数集合
推论。有理数集 ℚ 是可数的。这是因为显然 ℕ ≤ ℚ ≤ℕ × ℕ,而前定理的 2) 说 ℕ × ℕ ~ ℕ。

定理。(Cantor的对角线论法) A < ℘ ( A )。

证明。显然 A ≤ ℘ ( A )。所以我们只要证明 A 和 ℘ ( A ) 间不存在一一对应。假设有这样一个对应,对于 A 的每个元 a 都对应了一个 A 的子集 Uaa 可能属于 Ua 也可能不属于 Ua。所以我们考虑集合 V := { aA | aUa },这也是 A 的一个子集,所以对应了一个 A 的元 b。但不论 b 属于 V 或不属于 V 都会引发矛盾。这矛盾是由假定 A 和 ℘ ( A ) 间存在一一对应而产生的,所以结论是 A 和 ℘ ( A ) 间不可能存在一一对应。(证毕)

℘ ( ℕ ) 的浓度通常称为连续浓度。由以上定理知它严格大于可数浓度。

定理。实数集 ℝ ~ ℘ ( ℕ )。

证明。我们证明 ℝ ~ 2。首先 2 的元可以看成是一条由 0、 1 组成的排成一排的序列,在这序列前加上一个“0.”就可以把它看成是一个(十进制)小数。因此 ℝ ≥ 2。另一方面,函数 arctan ( x ) / π + 1 / 2 把 ℝ 单射地映到 ( 0, 1 ) 区间,而 ( 0, 1 ) 区间的实数可以用二进制的小数来表示,把这小数表示前的“0.”去掉就可以得到一条由 0、1 组成的排成一排的序列,从而看成 2 的元。因此 ℝ ≤ 2。(证毕)

定理。ℝ ~ ℝ ∐ ℝ ~ ℝ × ℝ ~ ℝ

证明。显然我们只要证明 ℝ ~ ℝ。把 ℝ 看成是 2,我们有 ( 2 ) ~ 2ℕ × ℕ ~ 2。(证毕)

定理。 ℝ ~ 2

证明。显然 2 ≤ ℝ。另一方面, ℝ ≤ ( 2 ) ~ 2ℝ × ℝ ~ 2。(证毕)

的浓度通常称为函数浓度。由以上可知它严格大于连续浓度。但是如果我们只考虑从 ℝ 到 ℝ 的连续函数的集合 C ( ℝ, ℝ ),这个浓度就是连续浓度了。这是因为 ℚ 在 ℝ 中是稠密的,所以一个连续函数只要在 ℚ 上确定了函数值,通过取极限操作它在整个 ℝ 上的函数值也就唯一确定了。而 ℚ 是可数的,所以 C ( ℝ, ℝ ) ≤ ℝ ~ ℝ ~ ℝ。反方向的不等式是显然的。