Evanalysis
2.1预计阅读时间: 22 分钟

2.1 集合与集合运算

建立成员关系、子集证明,以及标准集合构造的语言,为后续章节反复使用的概念打底。

课程目录

集合是用来描述一批对象的基础语言。在这门课里,集合不是旁支, 而是逻辑、函数、关系,以及后续数系构造共同依赖的语言。

如果你现在觉得符号有些陌生,这是正常的。这一单元的目标就是把这套语言 变得足够精确,好让后面的章节可以直接使用。

集合、属于、相等

定义

集合

集合是一批对象所组成的整体。

如果 xx 是集合 AA 的元素,我们写 x∈Ax \in A;如果不是,就写 x∉Ax \notin A。

例子:

  • {1,2,3}\{1, 2, 3\} 是集合。
  • {香港岛、九龙、新界} 是集合。
  • ∅\varnothing 是空集合,也就是没有任何元素的集合。

同一个集合可以有不同写法,但集合本身只由元素决定。

定理

外延性

两个集合相等,当且仅当它们拥有完全相同的元素。

符号上写成:

A=B  ⟺  ∀x (x∈A↔x∈B).A = B \iff \forall x\, (x \in A \leftrightarrow x \in B).

所以证明集合相等的标准方法是先证两个包含关系:

  1. 证明 A⊂BA \subset B
  2. 证明 B⊂AB \subset A

常见错误

不要把集合相等和描述相等混淆

{1,2,3}\{1, 2, 3\} 和 {3,2,1}\{3, 2, 1\} 是同一个集合,因为元素完全一样。列出的顺序并不重要。

常见错误

子集符号要注意本地约定

本课程用 A⊂BA \subset B 表示“AA 的每个元素都在 BB 里”。有些书会用 A⊆BA \subseteq B 表示这个意思,而把 A⊂BA \subset B 留给 strict subset。 读书时要先确认约定。

集合列式和有界谓词

学过谓词逻辑之后,最常见的定义集合方式,是先指定一个已知集合,再保留其中 满足某个条件的元素:

{x∈S∣P(x)}.\{x \in S \mid P(x)\}.

这个记号要仔细读。竖线前面的部分说明变量允许在哪个集合里取值;竖线后面的 谓词说明哪些元素会被留下。例如

{n∈Z∣n is even}\{n \in \mathbb{Z} \mid n \text{ is even}\}

就是所有偶整数的集合。

常见错误

不要忽略所在集合

{x∣P(x)}\{x \mid P(x)\} 有时是方便的简写,但严谨版本应该把变量限制在某个已知集合 里。这样做可以避免把任何文字描述都当成自动产生良好数学对象。

常见错误

集合不是 multiset

集合只记录某个对象是否出现,不记录它在列表里出现多少次。因此 {1,1,2,3}\{1,1,2,3\} 和 {1,2,3}\{1,2,3\} 描述同一个集合;如果讨论 multiset,二者才会不同。

建立新集合

知道了一些集合之后,我们通常会想造出更多集合。标准运算就是用来做这件事的。

运算符号定义
并集A∪BA \cup B属于 AA 或 BB 的元素
交集A∩BA \cap B同时属于 AA 和 BB 的元素
差集A∖BA \setminus B属于 AA 但不属于 BB 的元素
补集AcA^c在所选全集内,不属于 AA 的元素

补集一定要先指定全集 EE。在这一单元里,我们通常默认所有集合都在某个 固定 EE 里面,所以 AcA^c 就是 E∖AE \setminus A。

例题

追踪元素如何经过几个运算

设

A={1,2,4},B={2,3,4},A = \{1, 2, 4\}, \qquad B = \{2, 3, 4\},

而全集取为

E={1,2,3,4,5}.E = \{1, 2, 3, 4, 5\}.

那么:

  • A∪B={1,2,3,4}A \cup B = \{1, 2, 3, 4\}
  • A∩B={2,4}A \cap B = \{2, 4\}
  • A∖B={1}A \setminus B = \{1\}
  • B∖A={3}B \setminus A = \{3\}
  • Ac={3,5}A^c = \{3, 5\}
  • (A∪B)c={5}(A \cup B)^c = \{5\}

AcA^c 不是 AA 自身的绝对性质。在不同 universe 里,同一个集合的补集可以完全不同。 所以一定要先知道当前讨论的是哪个全集。

这些等式怎么证

本单元的集合恒等式不是靠死记,而是靠逐个元素追踪来证明。

定理

基本集合代数

对集合 AA、BB、CC:

  • A∪∅=AA \cup \varnothing = A
  • A∪B=B∪AA \cup B = B \cup A
  • A∪(B∪C)=(A∪B)∪CA \cup (B \cup C) = (A \cup B) \cup C
  • A∪A=AA \cup A = A
  • A∩(B∪C)=(A∩B)∪(A∩C)A \cap (B \cup C) = (A \cap B) \cup (A \cap C)
  • A∪(B∩C)=(A∪B)∩(A∪C)A \cup (B \cap C) = (A \cup B) \cap (A \cup C)
  • (A∪B)c=Ac∩Bc(A \cup B)^c = A^c \cap B^c
  • (A∩B)c=Ac∪Bc(A \cap B)^c = A^c \cup B^c
  • (Ac)c=A(A^c)^c = A
  • A∩Ac=∅A \cap A^c = \varnothing
  • A∪Ac=EA \cup A^c = E
  • A⊂BA \subset B 当且仅当 A∪B=BA \cup B = B
  • A⊂BA \subset B 当且仅当 A∩B=AA \cap B = A
  • A⊂BA \subset B 当且仅当 Bc⊂AcB^c \subset A^c

核心证明法是 element chasing。比如:

x∈A∩(B∪C)  ⟺  x∈A 且 (x∈B 或 x∈C)x \in A \cap (B \cup C) \iff x \in A \text{ 且 } (x \in B \text{ 或 } x \in C)

等价于

(x∈A 且 x∈B) 或 (x∈A 且 x∈C),(x \in A \text{ 且 } x \in B) \text{ 或 } (x \in A \text{ 且 } x \in C),

所以又等价于

x∈(A∩B)∪(A∩C).x \in (A \cap B) \cup (A \cap C).

证明:为什么 A⊂BA \subset B 会推出 A∪B=BA \cup B = B

假设 A⊂BA \subset B。

要证 A∪B=BA \cup B = B,只需证两个包含。

先证 A∪B⊂BA \cup B \subset B:如果 x∈A∪Bx \in A \cup B,那么 x∈Ax \in A 或 x∈Bx \in B。 若 x∈Ax \in A,由 A⊂BA \subset B 得 x∈Bx \in B。所以无论哪种情况,都有 x∈Bx \in B。

再证 B⊂A∪BB \subset A \cup B:如果 x∈Bx \in B,那当然 x∈A∪Bx \in A \cup B。

因此 A∪B=BA \cup B = B。

证明:一个有条件的分配恒等式

命题

(A∩B)∪C=A∩(B∪C)(A \cap B) \cup C = A \cap (B \cup C)

成立,当且仅当 C⊂AC \subset A。

先证充分性。假设 C⊂AC \subset A。若 xx 属于左边,那么或者 x∈A∩Bx \in A \cap B,或者 x∈Cx \in C。后一种情况下,由 C⊂AC \subset A 可得 x∈Ax \in A,所以两种情况下都有 x∈Ax \in A 且 x∈B∪Cx \in B \cup C。因此左边包含于右边。反过来,若 x∈A∩(B∪C)x \in A \cap (B \cup C),则 x∈Ax \in A,并且或者 x∈Bx \in B,或者 x∈Cx \in C。前一种情况下 x∈A∩Bx \in A \cap B,后一种情况下 x∈Cx \in C, 所以 xx 属于左边。这证明了两个集合相等。

再证必要性。假设等式成立,任取 c∈Cc \in C。因为 c∈(A∩B)∪Cc \in (A \cap B) \cup C,由等式可知 c∈A∩(B∪C)c \in A \cap (B \cup C), 特别地 c∈Ac \in A。因此 CC 的每个元素都在 AA 中,即 C⊂AC \subset A。 等价地,若存在 c∈C∖Ac \in C \setminus A,它会属于左边而不属于右边, 从而直接反驳该等式。

证明:对称差满足结合律

定义

A△B=(A∖B)∪(B∖A)A \mathbin{\triangle} B=(A\setminus B)\cup(B\setminus A)

对每个元素 xx,

x∈A△B  ⟺  (x∈A 且 x∉B) 或 (x∉A 且 x∈B)x\in A\mathbin{\triangle}B \iff (x\in A\text{ 且 }x\notin B)\text{ 或 }(x\notin A\text{ 且 }x\in B)

所以 xx 属于对称差,当且仅当 AA、BB 中恰有一个包含 xx。 再次应用这个规则可知,xx 属于 (A△B)△C(A\mathbin{\triangle}B)\mathbin{\triangle}C 当且仅当 x∈Ax\in A、x∈Bx\in B、x∈Cx\in C 这三个命题中恰有奇数个为真: 第一次对称差记录前两个命题的奇偶性,第二次在 x∈Cx\in C 时翻转它。 改变括号得到的 A△(B△C)A\mathbin{\triangle}(B\mathbin{\triangle}C) 也正好由同一个 奇偶条件刻画。因此

(A△B)△C=A△(B△C)(A\mathbin{\triangle}B)\mathbin{\triangle}C =A\mathbin{\triangle}(B\mathbin{\triangle}C)

这是逐元素证明,不依赖某一幅特定的 Venn 图。

证明:补集反转包含方向

设 A,B⊆EA,B\subseteq E 且 A⊆BA\subseteq B。对 x∈E∖Bx\in E\setminus B,若 x∈Ax\in A,包含关系会推出 x∈Bx\in B,矛盾。所以 x∈E∖Ax\in E\setminus A,即 Bc⊆AcB^c\subseteq A^c。共同全集 EE 保证两个补集比较的是同一范围内的元素。

反例模式

并集不能直接消去

A⊆B⇒A∪C⊆B∪CA\subseteq B\Rightarrow A\cup C\subseteq B\cup C 成立,但逆命题失败。取 A={1}A=\{1\}、B=∅B=\varnothing、C={1}C=\{1\},两个并集都等于 {1}\{1\},却有 A⊈BA\nsubseteq B。加入 CC 遮住了见证 1。一种正确修补是再假设 A∩C=∅A\cap C=\varnothing:任意 x∈Ax\in A 属于 B∪CB\cup C 却不属于 CC,因此属于 BB。

其他常见构造

这门课后面还会反复用到下面几种集合构造。

笛卡儿积

A×BA \times B 是所有有序对 (a,b)(a, b) 的集合,其中 a∈Aa \in A 而 b∈Bb \in B。 顺序是有意义的:(a,b)(a, b) 和 (b,a)(b, a) 通常不同。

如果 ∣A∣=5|A| = 5 且 ∣B∣=3|B| = 3,那么 ∣A×B∣=15|A \times B| = 15。

R×R=R2R \times R = R^2 就是平面。

有限次积

AnA^n 表示 AA 和自己做 nn 次笛卡儿积,也就是所有 nn-tuple。

幂集

P(A)P(A) 是 AA 的所有子集所组成的集合。

如果 AA 有 nn 个元素,那么 P(A)P(A) 有 2n2^n 个元素。另一个很有用的理解方式 是 indicator function:每个子集都可以对应到一个 A→0,1A \to {0,1} 的函数。

例如

P({a,b})={∅,{a},{b},{a,b}}.P(\{a, b\}) = \{\varnothing, \{a\}, \{b\}, \{a, b\}\}.

不交并

有时两个集合在原始写法上可能有重叠,但我们又想保留每个元素的来源。 不交并就是通过标签记住每个元素最初属于哪个集合。

直观上,A⊔BA \sqcup B 就是“加了标签 1 的 AA”和“加了标签 2 的 BB”。

反例:乘积分配不一定成立

在任意集合上,不一定存在

A∪(B×C)与(A∪B)×(A∪C)A \cup (B \times C) \quad\text{与}\quad (A \cup B) \times (A \cup C)

之间的双射。取 A={0,1}A = \{0,1\} 且 B=C=∅B=C=\varnothing。左边就是 AA, 有两个元素;右边是 A×AA \times A,有四个有序对。基数不同,所以这个例子 中不存在双射。

怎样仔细证明集合恒等式

到了这里,集合恒等式应该被理解成“属元条件相同”的命题,而不是只靠图形 去记。

标准证明方法通常是:

  1. 任取一个元素 xx;
  2. 把 x∈x \in 两边集合翻译成逻辑条件;
  3. 逐步化简,直到两边变成同一句话。

例题

证明 A∩(B∖C)=(A∩B)∖CA \cap (B \setminus C) = (A \cap B) \setminus C

从

x∈A∩(B∖C)x \in A \cap (B \setminus C)

出发,就表示:

  • x∈Ax \in A,
  • x∈Bx \in B,
  • x∉Cx \notin C。

而这三个条件合起来,正是

x∈(A∩B)∖Cx \in (A \cap B) \setminus C

的意思。

由于推理可以反向读回去,所以两边集合相等。

这种逐元素追踪的方法,后面还会再次出现在德摩根律、关系,以及数系构造中。

怎样正确阅读 Venn 图

Venn 图适合用来整理情况,但证明仍然要回到成员条件。图形可以提示某个区域 为空、包含在另一个区域里,或被切成几部分;正式文字则要说明这对应哪个 包含关系、不交条件或计数等式。

对三个集合来说,A⊂(B∪C)A \subset (B \cup C) 表示 AA 的每个元素都至少落在 BB 或 CC 之一。它不表示 A⊂BA \subset B,也不表示 A⊂CA \subset C。能否分清这些 可能性,是检查自己是否真正用逻辑方式阅读图形的好方法。

例题

把四种 Venn 图条件翻译成区域语言

假设 AA、BB、CC 都是非空集合。以下常见练习条件,最好先读成区域指令, 而不是只凭图形印象处理。

条件图中必须呈现的意思
A⊂BA \subset B、C⊂BC \subset B,且 A∩C=∅A \cap C = \varnothingAA 和 CC 都在 BB 里面,但二者互不相交。BB 仍然可以有不属于 AA 或 CC 的元素。
A∩B≠∅A \cap B \ne \varnothing、A∩C≠∅A \cap C \ne \varnothing、B∩C≠∅B \cap C \ne \varnothing,且 A∩B∩C=∅A \cap B \cap C = \varnothing每两个集合都有交集,但三者共同交集为空。因此三个 pairwise overlap 必须是分开的区域。
A⊂(B∩C)A \subset (B \cap C),且 B⊂CB \subset C因为 B⊂CB \subset C,所以 B∩CB \cap C 其实就是 BB。于是 AA 在 BB 里面,而 BB 又在 CC 里面。
A⊂(B∪C)A \subset (B \cup C)、并非 A⊂BA \subset B、并非 A⊂CA \subset CAA 没有元素落在 B∪CB \cup C 外面,但 AA 必须至少有一个元素在 C∖BC \setminus B,也至少有一个元素在 B∖CB \setminus C。

第四行最容易被误读。它不只是说 AA 同时碰到 BB 和 CC;它还说 AA 完全 被 BB 和 CC 覆盖,但又不能只由其中一个集合单独覆盖。

有限集合怎样计数

集合语言不只用来分类,也直接控制计数。

如果 AA、BB 都是有限集合,那么:

  • ∣A×B∣=∣A∣ ∣B∣|A \times B| = |A|\,|B|;
  • ∣P(A)∣=2{∣A∣}|P(A)| = 2^\{|A|\};
  • ∣A∪B∣=∣A∣+∣B∣−∣A∩B∣|A \cup B| = |A| + |B| - |A \cap B|。

并集公式之所以要减交集,是因为交集中的元素如果直接相加,会被算两次。

例题

计算一个并集和幂集

假设 ∣A∣=6|A| = 6、∣B∣=5|B| = 5、∣A∩B∣=2|A \cap B| = 2。

那么

∣A∪B∣=6+5−2=9|A \cup B| = 6 + 5 - 2 = 9

再设 S={a,b,c}S = \{a,b,c\}。每个元素都只有两种选择:放进某个子集,或者不放进。 所以总共有

2⋅2⋅2=23=82 \cdot 2 \cdot 2 = 2^3 = 8

个子集。因此 ∣P(S)∣=8|P(S)| = 8。

例题

不用画图也能完成的 Venn 图计数

十位学生去远足。七位使用防晒,六位戴帽,两位没有任何防晒保护。

设 SS 是使用防晒的集合,HH 是戴帽的集合。由于两位学生不在这两个集合里,

∣S∪H∣=10−2=8.|S \cup H| = 10 - 2 = 8.

由 inclusion-exclusion,

∣S∩H∣=∣S∣+∣H∣−∣S∪H∣=7+6−8=5.|S \cap H| = |S| + |H| - |S \cup H| = 7 + 6 - 8 = 5.

所以五位学生同时使用防晒并戴帽。

子集证明检查表

子集证明会反复出现,所以最好让它变成固定套路。

如果要证明 A⊆BA \subseteq B,就从任取 x∈Ax \in A 开始,再用 AA 的定义推出 足够信息,最后证明同一个 xx 其实也在 BB 里面。由于 xx 是任取,结论 就对 AA 的每个元素成立。

这种 direct proof 模式,后面在关系、偏序,以及等价类中都会再次出现。

常见错误

常见错误

补集是相对于全集的差集

当 A⊆EA\subseteq E 时,补集 Ac=E∖AA^c=E\setminus A 是“在指定全集 EE 内、但不属于 AA 的部分”。 而 A∖BA\setminus B 是“属于 AA、但不属于 BB 的部分”。因此,补集是以全集为左操作数的差集, 不是全集以外的部分。

常见错误

没有全集就不能写补集

如果你写补集,一定要知道你是在什么 universe 里做运算。否则 c^c 是含糊的。

常见错误

积集顺序有意义

A×BA \times B 和 B×AB \times A 一般包含不同的有序对。这就是为什么函数和关系要用积集语言。

小检查

思考检查

为什么在未指定全集之前,AcA^c 不够清楚?

想一想补集是“在哪个范围内”取外面。

解答 · 答案

因为同一个集合在不同 universe 里的补集可以完全不同。

思考检查

如果 A⊂BA \subset B,那么 A∪BA \cup B 和 A∩BA \cap B 会简化成什么?

用上面的 absorption laws。

解答 · 答案

A∪B=BA \cup B = B,而 A∩B=AA \cap B = A。

思考检查

假设 A⊂(B∪C)A \subset (B \cup C),但 AA 不是 BB 的子集,也不是 CC 的子集。AA 的哪两个部分必须非空?

把每一个“不是子集”的叙述翻译成存在某个元素。

解答 · 答案

必须至少有一个 AA 的元素在 C∖BC \setminus B,并且至少有一个 AA 的元素在 B∖CB \setminus C。条件 A⊂(B∪C)A \subset (B \cup C) 则排除了 AA 有元素同时不在 BB 和 CC 的可能。

为什么这一单元重要

这一单元是后面数系构造的语言基础。

  • N2N^2 会用来构造整数。
  • 等价类会用来构造有理数。
  • 一个集合上的关系会变成偏序和等价关系的语言。
  • 幂集和笛卡儿积会在后面讲 family、tuple,以及各种构造时再次出现。

边读边试

比较一对集合

这个示范比较 A、B 的元素隶属选择与相应运算结果。

集合 A

集合 B

并集

{1, 2, 3, 4}

交集

{2, 4}

差集 A \ B

{1}

练习

先自行作答,再检查答案。你可以修改后重试。

加载中…

先备知识

这一节可以独立阅读。

本单元重点词汇