集合是用来描述一批对象的基础语言。在这门课里,集合不是旁支,而是逻辑、函数、关系,以及后续数系构造共同依赖的语言。
集合、属于、相等
集合是一批对象所组成的整体。
如果 x 是集合 A 的元素,我们写 x∈A;如果不是,就写
x∈/A。
例子:
- {1,2,3} 是集合。
{香港岛、九龙、新界} 是集合。
- ∅ 是空集合,也就是没有任何元素的集合。
同一个集合可以有不同写法,但集合本身只由元素决定。
两个集合相等,当且仅当它们拥有完全相同的元素。
符号上写成:
A=B⟺∀x(x∈A↔x∈B).
所以证明集合相等的标准方法是先证两个包含关系:
- 证明 A⊂B
- 证明 B⊂A
{1,2,3} 和 {3,2,1} 是同一个集合,因为元素完全一样。列出的顺序并不重要。
本课程用 A⊂B 表示“A 的每个元素都在 B 里”。有些书会用
A⊆B 表示这个意思,而把 A⊂B 留给 strict subset。读书时要先确认约定。
集合列式和有界谓词
学过谓词逻辑之后,最常见的定义集合方式,是先指定一个已知集合,再保留其中满足某个条件的元素:
{x∈S∣P(x)}.
这个记号要仔细读。竖线前面的部分说明变量允许在哪个集合里取值;竖线后面的谓词说明哪些元素会被留下。例如
{n∈Z∣n is even}
就是所有偶整数的集合。
{x∣P(x)} 有时是方便的简写,但严谨版本应该把变量限制在某个已知集合里。这样做可以避免把任何文字描述都当成自动产生良好数学对象。
集合只记录某个对象是否出现,不记录它在列表里出现多少次。因此
{1,1,2,3} 和 {1,2,3} 描述同一个集合;如果讨论 multiset,二者才会不同。
建立新集合
知道了一些集合之后,我们通常会想造出更多集合。标准运算就是用来做这件事的。
补集一定要先指定全集 E。在这一单元里,我们通常默认所有集合都在某个固定 E 里面,所以 Ac 就是 E∖A。
设
A={1,2,4},B={2,3,4},而全集取为
E={1,2,3,4,5}.那么:
- A∪B={1,2,3,4}
- A∩B={2,4}
- A∖B={1}
- B∖A={3}
- Ac={3,5}
- (A∪B)c={5}
Ac 不是 A 自身的绝对性质。在不同全集里,同一个集合的补集可以完全不同。所以一定要先知道当前讨论的是哪个全集。
这些等式怎么证
固定元素 x 后,属于并集对应析取,属于交集对应合取。把命题逻辑的恒等式应用于每个元素的成员条件,就能得到相应的集合恒等式。
对集合 A、B、C:
- A∪∅=A
- A∪B=B∪A
- A∪(B∪C)=(A∪B)∪C
- A∪A=A
- A∩(B∪C)=(A∩B)∪(A∩C)
- A∪(B∩C)=(A∪B)∩(A∪C)
- (A∪B)c=Ac∩Bc
- (A∩B)c=Ac∪Bc
- (Ac)c=A
- A∩Ac=∅
- A∪Ac=E
- A⊂B 当且仅当 A∪B=B
- A⊂B 当且仅当 A∩B=A
- A⊂B 当且仅当 Bc⊂Ac
任取元素 x,把成员关系翻译成逻辑条件。证明包含关系时,从 x 属于左边出发,推出它属于右边;证明相等则须保证两个方向都成立。例如:
x∈A∩(B∪C)⟺x∈A 且 (x∈B 或 x∈C)
等价于
(x∈A 且 x∈B) 或 (x∈A 且 x∈C),
所以又等价于
x∈(A∩B)∪(A∩C).
证明:为什么 A⊂B 会推出 A∪B=B
假设 A⊂B。
要证 A∪B=B,只需证两个包含。
先证 A∪B⊂B:如果 x∈A∪B,那么 x∈A 或 x∈B。若 x∈A,由 A⊂B 得 x∈B。所以无论哪种情况,都有 x∈B。
再证 B⊂A∪B:如果 x∈B,那当然 x∈A∪B。
因此 A∪B=B。
证明:一个有条件的分配恒等式
命题
(A∩B)∪C=A∩(B∪C)
成立,当且仅当 C⊂A。
先证充分性。假设 C⊂A。若 x 属于左边,那么或者
x∈A∩B,或者 x∈C。后一种情况下,由 C⊂A
可得 x∈A,所以两种情况下都有 x∈A 且
x∈B∪C。因此左边包含于右边。反过来,若
x∈A∩(B∪C),则 x∈A,并且或者 x∈B,或者
x∈C。前一种情况下 x∈A∩B,后一种情况下 x∈C,所以 x 属于左边。这证明了两个集合相等。
再证必要性。假设等式成立,任取 c∈C。因为
c∈(A∩B)∪C,由等式可知 c∈A∩(B∪C),特别地 c∈A。因此 C 的每个元素都在 A 中,即 C⊂A。等价地,若存在 c∈C∖A,它会属于左边而不属于右边,从而直接反驳该等式。
证明:对称差满足结合律
定义
A△B=(A∖B)∪(B∖A)
对每个元素 x,
x∈A△B⟺(x∈A 且 x∈/B) 或 (x∈/A 且 x∈B)
所以 x 属于对称差,当且仅当 A、B 中恰有一个包含 x。再次应用这个规则可知,x 属于 (A△B)△C
当且仅当 x∈A、x∈B、x∈C 这三个命题中恰有奇数个为真:第一次对称差记录前两个命题的奇偶性,第二次在 x∈C 时翻转它。改变括号得到的 A△(B△C) 也正好由同一个奇偶条件刻画。因此
(A△B)△C=A△(B△C)
这是逐元素证明,不依赖某一幅特定的 Venn 图。
证明:补集反转包含方向
设 A,B⊆E 且 A⊆B。对 x∈E∖B,若 x∈A,包含关系会推出 x∈B,矛盾。所以 x∈E∖A,即 Bc⊆Ac。共同全集 E 保证两个补集比较的是同一范围内的元素。
反例模式
并集不能直接消去
A⊆B⇒A∪C⊆B∪C 成立,但逆命题失败。取 A={1}、B=∅、C={1},两个并集都等于 {1},却有 A⊈B。加入 C 遮住了见证 1。一种正确修补是再假设 A∩C=∅:任意 x∈A 属于 B∪C 却不属于 C,因此属于 B。
其他常见构造
集合运算选择或合并已有的元素。进一步的构造则把有序对、元组和子集本身视为对象,供函数和关系使用。
笛卡儿积
A×B 是所有有序对 (a,b) 的集合,其中 a∈A 而 b∈B。顺序是有意义的:(a,b) 和 (b,a) 通常不同。
如果 ∣A∣=5 且 ∣B∣=3,那么 ∣A×B∣=15。
R×R=R2 就是平面。
有限次积
An 表示 A 和自己做 n 次笛卡儿积,也就是所有 n-tuple。
幂集
P(A) 是 A 的所有子集所组成的集合。
如果 A 有 n 个元素,那么 P(A) 有 2n 个元素。另一个很有用的理解方式是 indicator function:每个子集都可以对应到一个 A→{0,1} 的函数。
例如
P({a,b})={∅,{a},{b},{a,b}}.
不交并
有时两个集合在原始写法上可能有重叠,但我们又想保留每个元素的来源。不交并就是通过标签记住每个元素最初属于哪个集合。
一种具体构造是
A⊔B=(A×{1})∪(B×{2}).
即使某个元素同时属于 A 和 B,它的两个带标签的副本仍然不同。
反例:乘积分配不一定成立
在任意集合上,不一定存在
A∪(B×C)与(A∪B)×(A∪C)
之间的双射。取 A={0,1} 且 B=C=∅。左边就是 A,有两个元素;右边是 A×A,有四个有序对。基数不同,所以这个例子中不存在双射。
怎样仔细证明集合恒等式
到了这里,集合恒等式应该被理解成“属元条件相同”的命题,而不是只靠图形去记。
标准证明方法通常是:
- 任取一个元素 x;
- 把 x∈ 两边集合翻译成逻辑条件;
- 逐步化简,直到两边变成同一句话。
例题 2.1.5
(证明 A∩(B∖C)=(A∩B)∖C)
从
x∈A∩(B∖C)出发,就表示:
- x∈A,
- x∈B,
- x∈/C。
而这三个条件合起来,正是
x∈(A∩B)∖C的意思。
由于推理可以反向读回去,所以两边集合相等。
这种逐元素追踪的方法,后面还会再次出现在德摩根律、关系,以及数系构造中。
怎样正确阅读 Venn 图
Venn 图适合用来整理情况,但证明仍然要回到成员条件。图形可以提示某个区域为空、包含在另一个区域里,或被切成几部分;正式文字则要说明这对应哪个包含关系、不交条件或计数等式。
对三个集合来说,A⊂(B∪C) 表示 A 的每个元素都至少落在 B
或 C 之一。它不表示 A⊂B,也不表示 A⊂C。能否分清这些可能性,是检查自己是否真正用逻辑方式阅读图形的好方法。
例题 2.1.6
(把四种 Venn 图条件翻译成区域语言)
假设 A、B、C 都是非空集合。以下常见练习条件,最好先读成区域指令,而不是只凭图形印象处理。
第四行最容易被误读。它不只是说 A 同时碰到 B 和 C;它还说 A 完全被 B 和 C 覆盖,但又不能只由其中一个集合单独覆盖。
有限集合怎样计数
集合语言不只用来分类,也直接控制计数。
如果 A、B 都是有限集合,那么:
- ∣A×B∣=∣A∣∣B∣;
- ∣P(A)∣=2∣A∣;
- ∣A∪B∣=∣A∣+∣B∣−∣A∩B∣。
并集公式之所以要减交集,是因为交集中的元素如果直接相加,会被算两次。
假设 ∣A∣=6、∣B∣=5、∣A∩B∣=2。
那么
∣A∪B∣=6+5−2=9再设 S={a,b,c}。每个元素都只有两种选择:放进某个子集,或者不放进。所以总共有
2⋅2⋅2=23=8个子集。因此 ∣P(S)∣=8。
例题 2.1.8
(不用画图也能完成的 Venn 图计数)
十位学生去远足。七位使用防晒,六位戴帽,两位没有任何防晒保护。
设 S 是使用防晒的集合,H 是戴帽的集合。由于两位学生不在这两个集合里,
∣S∪H∣=10−2=8.由 inclusion-exclusion,
∣S∩H∣=∣S∣+∣H∣−∣S∪H∣=7+6−8=5.所以五位学生同时使用防晒并戴帽。
常见错误
当 A⊆E 时,补集 Ac=E∖A 是“在指定全集 E 内、但不属于 A 的部分”。而 A∖B 是“属于 A、但不属于 B 的部分”。因此,补集是以全集为左操作数的差集,不是全集以外的部分。
如果你写补集,一定要知道你是在哪个全集里做运算。否则 c 是含糊的。
A×B 和 B×A 一般包含不同的有序对。这就是为什么函数和关系要用积集语言。
小检查
快速检查
(为什么在未指定全集之前,Ac 不够清楚?)
解答 · 答案
快速检查
(如果 A⊂B,那么 A∪B 和 A∩B 会简化成什么?)
解答 · 答案
A∪B=B,而 A∩B=A。
快速检查
(假设 A⊂(B∪C),但 A 不是 B 的子集,也不是 C 的子集。A 的哪两个部分必须非空?)
解答 · 答案
必须至少有一个 A 的元素在 C∖B,并且至少有一个 A 的元素在
B∖C。条件 A⊂(B∪C) 则排除了 A 有元素同时不在
B 和 C 的可能。
从有序对到数系
笛卡儿积提供有序对,关系则规定哪些对象相联系。函数与关系
将说明等价关系如何把集合分成类。整数构造
把这一方法用于自然数对;有理数构造
再用等价类把同一个数的不同表示合并。每个阶段证明集合相等时,都要回到同一个问题:两边分别包含哪些元素?
互动 · 探索
切换隶属,读集合运算
点选任一集合的元素以切换隶属,读出目前的并集、交集及有方向的差集。
全集 U 中的隶属关系| U | A | B |
|---|
| 1 | ∈ A | ∉ B |
|---|
| 2 | ∈ A | ∈ B |
|---|
| 3 | ∉ A | ∈ B |
|---|
| 4 | ∈ A | ∈ B |
|---|
| 5 | ∉ A | ∉ B |
|---|
- A
- {1, 2, 4}
- B
- {2, 3, 4}
- 并集
- {1, 2, 3, 4}
- 交集
- {2, 4}
- 差集 A \ B
- {1}
成立:交集包含于并集
同时属于 A 与 B 的元素,必定至少属于其中一个集合。画板与三个结果使用相同的隶属判断。
要留意A∖B 保留属 A 而不属 B 的元素;对调 A、B 可以改变结果。{} 表示空集。画板列出全集内每个元素的隶属关系。