集合, 又叫做集或搜集, 是数学中极少数不加定义的 "元概念" 之一. 一般把集合理解为具备某个性质的对象的全体. 注意这里的性质并不是随意指定的, 否则会引出矛盾 (称为悖论, 我们在下文讨论它).
取消集合的互异性, 允许同一元素在集合中出现多次, 得到的概念称为多重集, 类或族.
由 E.Zermelo (1908) 首次提出公理系统的框架, A. Fraenkel (1922) 补充了一条替换公理模式, 再加上 Zermelo 提出的选择公理 (choice axiom), 组成今天通用的 ZFC 公理系统. 这一公理系统包括论述域、语法符号、造句规则与公理组.
ZFC 并不是唯一的公理集合论系统. 比较出名的公理系统还有 NBG (von Neumann-Bernays-Gödel)、类型论 (type theory) 等.
我们的公理涉及的对象称为集合 (set), 一般用拉丁字母 `A, B, C, cdots`; `a, b, c, cdots` 等来表示. 在集合论的各种场合下, 往往有一个集合 `Omega` 包含了我们讨论的所有集合. 称 `Omega` 为全集或论述域.
逻辑等号 | `=` |
从属符号 | `in` |
逻辑连词符号 | `not, vv, ^^, rarr, harr` |
量词符号 | `EE, AA` |
分界符 | `(,)` |
为书写清晰起见, 引入更多的的分界符 `[], {}`. 在命题公式中, 它们与 `()` 视为同一种符号.
由于 `x in y` 恒为合式公式, 所以一切集合间都可以判断从属关系. 这就是集合的确定性.
语句 | 简写 |
`not(x in S)` | `x !in S` |
`x in S ^^ y in S` | `x, y in S` |
`x !in S ^^ y !in S` | `x, y !in S` |
`EE x (x in S rarr varphi)` | `EE x in S, varphi` |
`AA x (x in S rarr varphi)` | `AA x in S, varphi` |
外延公理 两集合 `A, B` 相等当且仅当对任意 `a`, `a in A` 等价于 `a in B`: `A = B iff AA a(a in A harr a in B)`.
以下几条公理肯定了几类集合的存在性, 再由外延公理, 可保证它们的惟一性.
空集公理 存在一个不含任何元素的集合: `EE E AA x (x !in E)`. 应用外延公理可证明这个集合 `E` 惟一, 称为空集 (empty set), 记为 `O/`.
设 `EE O/' AA x (x !in O/')`. 从而 `AA x`, `x in O/` 和 `x in O/'` 都为假, 于是 `AA x(x in O/ harr x in O/')`, 即 `O/ = O/'`.
之所以叫做公理模式, 是因为它们是公理的模板, 每输入一个合式公式, 就有一条相应的公理.
子集公理模式 设 `varphi` 是一个语句, 其中 `x` 是 `varphi` 的自由变元 (即 `x` 没有被量词 `EE`, `AA` 所约束), 且 `A` 不在 `varphi` 中出现. 则存在 `A` 的子集 `S`, 使得 `S` 包含所有使 `varphi(x)` 成立的 `A` 的元素 `x`: `AA A EE S AA x (x in S harr x in A ^^ varphi(x))`. 应用外延公理可证这个集合 `S` 是惟一的, 因此定义 `S := {x: x in A ^^ varphi(x)} = {x in A: varphi(x)}`.
子集公理模式允许我们用任何一个特征描述 (即命题) 从一个给定集合中得到一个子集.
不存在一个包含任意元素的集合: `AA A EE B (B !in A)`.
此定理的证明可以看出, 如果假定存在一个 "包罗万象" 的集合, 亦即假定可以用任何一个特定描述来定义一个集合, 而不指定其范围的话, 就会引出两难的矛盾, 这就是著名的 Russell 悖论 (1902). Russell 悖论的一个流行的说法是: 有一理发师, 声称自己只给那些不给自己理发的人理发. 那么他给不给自己理发呢? 假如他给自己理发, 按规定他应该属于那些不给自己理发的人, 一个矛盾; 假如他不给自己理发, 则按规定, 他应该给自己理发!
全体集合不构成集合, 这意味着 "全体集合" 的概念已是一个超越了集合的概念, 不在 ZFC 集合论的体系内. 我们暂时把这种不构成集合的一些集合的全体称为真类, 而把集合与真类统称为类. 后面还会遇到一些真类的例子, 如全体归纳集、全体序数等.
替换公理模式 设 `F` 是一个以集合 `X` 为定义域的函数, 则存在集合 `F(X) = {F(x): x in X}`.
这里的函数并不是集合论中通常定义的函数, 而是由合式公式定义的. 例如, 函数 `x mapsto y` 可以用带有两个自由变元的合式公式 `varphi(x, y)` 解释为 `AA x EE! y varphi(x, y)`.
习惯上称集合的集合为集合族.
对任意非空集合 `cc A`, 存在集合 `I`, 使得 `x in I` 当且仅当对任意 `cc A` 的元素 `A` 都有 `x in A`: `AA cc A (cc A != O/ rarr EE I AA x(x in I harr AA A(A in cc A rarr x in A)))`. 由外延公理可证集合 `I` 惟一, 称为 `cc A` 的交 (intersection), 记为 `I = nnn cc A` `:= {x: AA A in cc A, x in A}`.
由 `cc A != O/`, 所以 `EE A_1 in cc A`. 令 `varphi(x) := AA A (A in cc A rarr x in A)`. 由子集公理, 记 `I := {x in A_1: varphi(x)}` `= {x in A_1: AA A(A in cc A rarr x in A)}`. 于是 `x in I` 当且仅当 `x in A_1 ^^ AA A(A in cc A rarr x in A)`. 由于 `A_1 in cc A`, 这又当且仅当 `AA A(A in cc A rarr x in A)`, 即为所求的集合.
这里我们没有单独设一条公理, 而是从子集公理, 直接推出交集的存在性. 毕竟, 交集是一种特殊的子集.
注意 `A = O/` 时, 无法使用子集公理. 所以 `nnn O/` 无意义. 事实上如果 `nnn O/` 有意义, 从逻辑上可以证明任意集合都是它的元素: `x in nnn O/` `iff AA A in O/ (x in A)`, 然而 `A in O/` 为假, 所以 `x in A` 恒为真. 因而 `nnn O/` 包含了所有集合的全体, 它是一个真类, 这在 ZFC 中是犯规的.
并公理 对任意集合 `cc A`, 存在集合 `U`, 使得 `x in U` 当且仅当存在 `cc A` 的元素 `A`, 使得 `x in A`: `AA cc A EE U AA x` `(x in U harr EE A(A in cc A ^^ x in A))`. 应用外延公理可证集合 `U` 惟一, 称为 `cc A` 的并 (union), 记为 `U = uuu cc A` `:= {x: EE A in cc A, x in A}`.
配对公理
对任意集合 `A, B`, 存在集合 `C`, 使得 `x in C` 当且仅当
`x = A` 或 `x = B`:
`AA A AA B EE C` `(x in C harr x = A vv x = B)`.
由外延公理可证 `C` 惟一. 称 `C` 为 `A, B` 的无序对 (unordered
pair). 记为 `C = {A, B}`.
特别, `AA x, {x, x} = {x}` 称为单点集 (singleton).
两集合的交与并
对任意集合 `A, B`, 由配对公理, 存在 `C = {A, B}`, 再定义
`A nn B := nnn C`, `A uu B := uuu C`. 于是 `A nn B`, `A uu B`
都是惟一确定的. 可以验证,
`A nn B = {x: x in A ^^ x in B}`,
`A uu B = {x: x in A vv x in B}`.
集合的差与补
对任意集合 `A, B`, 令 `varphi(x) := x !in B`, 对 `A` 应用子集公理知,
存在惟一的集合
`A\\B = A-B := {x: x in A ^^ x !in B}`,
称为 `A, B` 的差 (difference).
设 `X` 为全集, 对任意 `A sube X`, 称 `X\\A` 为 `A` 的补集 (或余集,
complement), 记为
`A^c = bar A = complement_X A := X \\ A = {x in X: x !in A}`.
定义集合 `A, B` 的对称差:
`A triangle B := (A \\ B) uu (B \\ A) = (A uu B) \\ (A nn B)`.
幂集公理
对任意集合 `X`, 都存在集合 `P`, 使得 `S in P` 当且仅当 `S sube X`:
`AA X EE P AA S(S in P harr S sube X)`.
由外延公理可证 `P` 惟一, 称为 `X` 的幂集 (power set), 记为
`2^X = cc P(X) := {S: S sube X}`.
采用 `2^X` 这样的记号是因为, 若 `|X| = n`, 则 `|2^X| = 2^n`, 其中
`|X|` 表示集合 `X` 的基数. 对有限集而言, 就是 `X` 中元素的个数.
无限集的基数将在后面讨论.
注意区分幂集与集合族的并这两个概念.
把 `2^X` 的子集称为 `X` 的子集族. 如果 `tau` 是 `X` 的子集族,
那么 `tau sube 2^X`, 即 `tau in 2^(2^X)`.
`P = 2^X rArr X = uuu P`.
`AA A in cc A, A sube B iff uuu cc A sube B`,
`AA A in cc A, B sube A iff B sube nnn cc A`.
`(A^c)^c = A`, `quad`
`A \\ B = A nn B^c`, `quad`
`A = (A nn B) uu (A \\ B)`,
`A sube B rArr B^c sube A^c`, `quad`
`A nn B = O/ iff A sube B^c`, `quad`
`A \\ B = O/ iff A sube B`,
`(EE C) A triangle C = B triangle C iff A = B`,
`(EE C) A nn C = B nn C and A uu C = B uu C iff A = B`.
一个记号
设 `f(A)` 是关于集合 `A` 的某种运算 (交, 并, 差, 补等), 简记
`nnn_(A in cc A) f(A) = nnn{f(A): A in cc A}`
`:= nnn{F: EE A in cc A, F = f(A)}`,
`uuu_(A in cc A) f(A) = uuu{f(A): A in cc A}`
`:= uuu{F: EE A in cc A, F = f(A)}`.
因此
`nnn cc A = nnn_(A in cc A) A`,
`quad uuu cc A = uuu_(A in cc A) A`.
正则公理 对任意非空集合 `A`, 存在 `a in A` 满足 `a nn A = O/`: `AA A(A != O/ rarr EE a(a in A ^^ a nn A = O/))`. 正则公理保证了不存在无穷的从属链 `x_1 ∋ x_2 ∋ cdots`, 特别地, 不会有 `x in x`, `x in y in x` 的情况. 因为正则公理排除了 `x in x` 的情况, 所以 Russel 悖论不会出现.