分类课程智能体AI
文章
订阅
分类课程AI导师
文章
价格
课程进度
5 / 18
上一节谓词逻辑与量词下一节关系与函数
自在学

© 2025 - 2026 株洲市自在学教育科技有限公司 版权所有

公网安备湘公网安备43020302000292号 | 湘ICP备2025148919号-1

关于我们隐私政策使用条款

© 2025 - 2026 株洲市自在学教育科技有限公司 版权所有

公网安备湘公网安备43020302000292号湘ICP备2025148919号-1

数学离散数学与证明 I:逻辑、集合、归纳、计数与图论入门集合语言与集合证明

集合语言与集合证明

集合把“哪些对象被放在一起”说清楚。它看起来只是一些符号,但后面的关系、函数、计数、图论都会用它做底层语言。本章的目标不是背一串运算名称,而是学会把集合语句翻译成元素条件,再用这些条件写证明。

在前几章里,我们已经会用命题逻辑和量词表达数学断言。集合证明正好把这两条线接起来:x∈Ax \in Ax∈A 是一个关于元素 xxx 的命题,A⊆BA \subseteq BA⊆B 则是带全称量词的断言。

本章默认所有集合都放在某个固定论域 UUU 里讨论。只要出现补集 AcA^cAc,就必须先知道补的是谁:是相对于整数、实数、全体学生,还是某个具体数据表。

论域 U 中包含集合 A、集合 B 和若干元素,部分元素位于集合内,部分元素只在论域内。
论域、集合与元素的关系示意图。

集合先从论域说起

集合是由一些确定对象组成的整体。对象叫作元素。写 x∈Ax \in Ax∈A 表示“xxx 是集合 AAA 的元素”,写 x∉Ax \notin Ax∈/A 表示“xxx 不是集合 AAA 的元素”。

“确定”不是说集合必须很小,也不是说元素必须能全部列出来。它的意思是:给定一个对象,原则上能判断它在不在集合里。比如“本班身高超过 170 厘米的学生”是集合,“本班比较高的学生”如果没有明确标准,就暂时不是一个数学上清楚的集合。

集合常见有两种写法。列举法直接列出元素,例如

A={2,4,6,8}.A=\{2,4,6,8\}.A={2,4,6,8}.

描述法说明元素满足的条件,例如

B={x∈Z∣x 是偶数且 0<x<10}.B=\{x\in \mathbb{Z}\mid x \text{ 是偶数且 } 0<x<10\}.B={x∈Z∣x 是偶数且 0<x<10}.

这两个集合其实相等。集合不关心列出的顺序,也不关心同一个元素写了几次,所以

{2,4,6,8}={8,6,4,2,2}.\{2,4,6,8\}=\{8,6,4,2,2\}.{2,4,6,8}={8,6,4,2,2}.

集合的元素可以是数字、点、字符串、学生、网页、数据记录,也可以是另一个集合。真正要看的是当前对象的层级:你是在问某个元素是否属于集合,还是在问一个集合是否包含在另一个集合里。

例题:设

A={1,2,{1,2}}.A=\{1,2,\{1,2\}\}.A={1,2,{1,2}}.

判断下面四个断言的真假。

  1. 1∈A1\in A1∈A
  2. {1,2}∈A\{1,2\}\in A{1,2}∈A
  3. {1,2}⊆A\{1,2\}\subseteq A{1,2}⊆A
  4. {1}∈A\{1\}\in A{1}∈A

1∈A1\in A1∈A 为真,因为 111 是列出的元素之一。{1,2}∈A\{1,2\}\in A{1,2}∈A 也为真,因为这个集合本身被当作一个元素列在 AAA 里。{1,2}⊆A\{1,2\}\subseteq A{1,2}⊆A 为真,因为它的两个元素 111 和 222 都在 AAA 中。{1}∈A\{1\}\in A{1}∈A 为假,因为 AAA 里没有把 {1}\{1\}{1} 作为一个单独元素列出。


子集、空集与幂集

如果 AAA 的每个元素也都是 BBB 的元素,就说 AAA 是 BBB 的子集,记作 A⊆BA\subseteq BA⊆B。这句话展开成量词就是

A⊆B⟺∀x(x∈A→x∈B).A\subseteq B \quad \Longleftrightarrow \quad \forall x(x\in A\rightarrow x\in B).A⊆B⟺∀x(x∈A→x∈B).

如果 A⊆BA\subseteq BA⊆B 且 A≠BA\ne BA=B,就说 AAA 是 BBB 的真子集,常写作 A⊂BA\subset BA⊂B。不同教材对 ⊂\subset⊂ 的使用习惯略有差异;本章用 ⊆\subseteq⊆ 表示“允许相等的子集”,需要强调不相等时会写“真子集”。

空集 ∅\varnothing∅ 是没有元素的集合。它不是“什么都没有”这种含糊说法,而是一个确定的集合对象。由于没有任何元素能违反“如果 x∈∅x\in \varnothingx∈∅,那么 x∈Ax\in Ax∈A”,所以

∅⊆A\varnothing\subseteq A∅⊆A

对任意集合 AAA 都成立。

子集、真子集、空集以及元素与单元素集合关系的集合示意图
子集与属于的区别:元素属于集合,单元素集合可以作为子集;空集是任何集合的子集。

最常见的错误是把 ∈\in∈ 和 ⊆\subseteq⊆ 混用。a∈Aa\in Aa∈A 说的是“对象 aaa 是 AAA 的元素”;{a}⊆A\{a\}\subseteq A{a}⊆A 说的是“单元素集合的每个元素都在 AAA 中”。这两句话经常同时为真,但它们不是同一句话。

幂集把层级再往上推一层。集合 SSS 的幂集记作 P(S)\mathcal{P}(S)P(S),它的元素是 SSS 的所有子集:

P(S)={A∣A⊆S}.\mathcal{P}(S)=\{A\mid A\subseteq S\}.P(S)={A∣A⊆S}.

如果 S={a,b,c}S=\{a,b,c\}S={a,b,c},那么 P(S)\mathcal{P}(S)P(S) 有 8 个元素:

∅,{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}.\varnothing,\{a\},\{b\},\{c\},\{a,b\},\{a,c\},\{b,c\},\{a,b,c\}.∅,{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}.

这里每一个“元素”本身都是集合。比如 {a,b}∈P(S)\{a,b\}\in \mathcal{P}(S){a,b}∈P(S),同时 {a,b}⊆S\{a,b\}\subseteq S{a,b}⊆S。这两个符号分别站在不同层级上。

以 S={a,b,c} 为例,通过取与不取的选择树展示幂集 P(S) 是所有子集的集合。
幂集包含原集合的所有子集。

每个元素在构造子集时都有两个选择:取,或不取。因此若 SSS 有 nnn 个元素,P(S)\mathcal{P}(S)P(S) 有 2n2^n2n 个元素。


并、交、补、差

集合运算最稳妥的读法,是把每个运算都翻译成关于元素的条件。设 AAA、BBB 是论域 UUU 中的集合。

x∈A∪B⟺x∈A 或 x∈B.x\in A\cup B \quad \Longleftrightarrow \quad x\in A \text{ 或 } x\in B.x∈A∪B⟺x∈A 或 x∈B. x∈A∩B⟺x∈A 且 x∈B.x\in A\cap B \quad \Longleftrightarrow \quad x\in A \text{ 且 } x\in B.x∈A∩B⟺x∈A 且 x∈B. x∈A−B⟺x∈A 且 x∉B.x\in A-B \quad \Longleftrightarrow \quad x\in A \text{ 且 } x\notin B.x∈A−B⟺x∈A 且 x∈/B. x∈Ac⟺x∈U 且 x∉A.x\in A^c \quad \Longleftrightarrow \quad x\in U \text{ 且 } x\notin A.x∈Ac⟺x∈U 且 x∈/A.

并集对应“至少在一个集合里”,交集对应“同时在两个集合里”,差集对应“在前一个集合里但不在后一个集合里”,补集对应“在论域中但不在这个集合里”。

四联维恩图,对比集合的并集、交集、差集和补集区域。
集合运算中的并集、交集、差集与补集。

例题:某课程平台上,AAA 表示完成了逻辑测验的学生,BBB 表示提交了集合练习的学生。用集合语言表达下面三类学生。

  1. 至少完成一项任务的学生。
  2. 两项任务都完成的学生。
  3. 完成逻辑测验但没有提交集合练习的学生。

“至少完成一项任务”表示学生在 AAA 中,或者在 BBB 中,所以集合是 A∪BA\cup BA∪B。

“两项任务都完成”表示学生同时在 AAA 和 BBB 中,所以集合是 A∩BA\cap BA∩B。

“完成逻辑测验但没有提交集合练习”表示学生在 AAA 中且不在 BBB 中,所以集合是 A−BA-BA−B。

这种语言也出现在数据库里。查询两个结果表的并、交、差时,实际处理的就是“记录是否在某个结果集合中”。在真实数据里,论域通常是某个数据库、某张表或某次查询的候选记录;一旦论域换了,补集的意思也会跟着换。


笛卡尔积与有序对

并、交、差处理的是“同一类对象是否在集合里”。笛卡尔积处理的是“从两个集合各取一个对象,并按顺序配成一对”。

集合 AAA 与 BBB 的笛卡尔积定义为

A×B={(a,b)∣a∈A 且 b∈B}.A\times B=\{(a,b)\mid a\in A \text{ 且 } b\in B\}.A×B={(a,b)∣a∈A 且 b∈B}.

这里 (a,b)(a,b)(a,b) 是有序对。一般来说,(a,b)(a,b)(a,b) 与 (b,a)(b,a)(b,a) 不同,除非两个坐标刚好相同。顺序之所以重要,是因为第一坐标和第二坐标承担不同角色。

笛卡尔积 A×B 的 2×3 网格示意图,展示集合 A={红,蓝} 与 B={1,2,3} 组成的有序对。
笛卡尔积把第一坐标和第二坐标按顺序配成有序对,顺序不同结果可能不同。

如果 A={红,蓝}A=\{\text{红},\text{蓝}\}A={红,蓝},B={1,2,3}B=\{1,2,3\}B={1,2,3},那么 A×BA\times BA×B 有 6 个有序对。若 AAA 有 mmm 个元素,BBB 有 nnn 个元素,则 A×BA\times BA×B 有 mnmnmn 个元素。

笛卡尔积是后面学习关系和函数的入口。一个“学生选择课程”的关系,可以看作“学生集合 ×\times× 课程集合”的某个子集;函数也可以看作满足额外条件的有序对集合。


集合恒等式

集合恒等式是对所有相关集合都成立的等式。它们和命题逻辑的等价式很像,因为集合运算本质上会变成元素条件中的“且、或、非”。

一些常用恒等式如下:

名称恒等式
交换律A∪B=B∪AA\cup B=B\cup AA∪B=B∪A,A∩B=B∩AA\cap B=B\cap AA∩B=B∩A
结合律(A∪B)∪C=A∪(B∪C)(A\cup B)\cup C=A\cup(B\cup C)(A∪B)∪C=A∪(B∪C),(A∩B)∩C=A∩(B∩C)(A\cap B)\cap C=A\cap(B\cap C)(A∩B)∩C=A∩(B∩C)
分配律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∪B)c=Ac∩Bc(A\cup B)^c=A^c\cap B^c(A∪B)c=Ac∩Bc,(A∩B)c=Ac∪Bc(A\cap B)^c=A^c\cup B^c(A∩B)c=Ac∪Bc
差集改写A−B=A∩BcA-B=A\cap B^cA−B=A∩Bc

这些式子不应该只靠形状记忆。比如分配律里 A∩(B∪C)A\cap(B\cup C)A∩(B∪C) 先要求元素在 AAA 中,再要求元素在 BBB 或 CCC 中;这等价于“元素在 AAA 和 BBB 中,或者在 AAA 和 CCC 中”。

证明集合恒等式时,最可靠的做法是把左右两边都翻译成关于任意元素 xxx 的条件。如果两个条件逻辑等价,两个集合就相等。


元素追踪法

要证明 A⊆BA\subseteq BA⊆B,就证明任意一个属于 AAA 的元素也属于 BBB。要证明 A=BA=BA=B,通常证明两个包含:

A⊆B且B⊆A.A\subseteq B \quad \text{且} \quad B\subseteq A.A⊆B且B⊆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).

先证明从左到右的包含。任取 x∈A∩(B∪C)x\in A\cap(B\cup C)x∈A∩(B∪C)。根据交集定义,x∈Ax\in Ax∈A 且 x∈B∪Cx\in B\cup Cx∈B∪C。

展开并集条件,得到 x∈Bx\in Bx∈B 或 x∈Cx\in Cx∈C。如果 x∈Bx\in Bx∈B,那么 x∈A∩Bx\in A\cap Bx∈A∩B;如果 x∈Cx\in Cx∈C,那么 x∈A∩Cx\in A\cap Cx∈A∩C。

两种情况都说明 x∈(A∩B)∪(A∩C)x\in (A\cap B)\cup(A\cap C)x∈(A∩B)∪(A∩C)。所以 A∩(B∪C)⊆(A∩B)∪(A∩C)A\cap(B\cup C)\subseteq (A\cap B)\cup(A\cap C)A∩(B∪C)⊆(A∩B)∪(A∩C)。

再证明从右到左的包含。任取 x∈(A∩B)∪(A∩C)x\in (A\cap B)\cup(A\cap C)x∈(A∩B)∪(A∩C)。那么 x∈A∩Bx\in A\cap Bx∈A∩B 或 x∈A∩Cx\in A\cap Cx∈A∩C。

若 x∈A∩Bx\in A\cap Bx∈A∩B,则 x∈Ax\in Ax∈A 且 x∈Bx\in Bx∈B,因此 x∈B∪Cx\in B\cup Cx∈B∪C,从而 x∈A∩(B∪C)x\in A\cap(B\cup C)x∈A∩(B∪C)。若 x∈A∩Cx\in A\cap Cx∈A∩C,同理也得到 x∈A∩(B∪C)x\in A\cap(B\cup C)x∈A∩(B∪C)。

两个方向的包含都成立,所以两个集合相等。

再看一个更短的例题:证明差集改写

A−B=A∩Bc.A-B=A\cap B^c.A−B=A∩Bc.

任取元素 xxx。由差集定义,x∈A−Bx\in A-Bx∈A−B 当且仅当 x∈Ax\in Ax∈A 且 x∉Bx\notin Bx∈/B。由补集定义,x∉Bx\notin Bx∈/B 当且仅当 x∈Bcx\in B^cx∈Bc。所以 x∈A−Bx\in A-Bx∈A−B 当且仅当 x∈Ax\in Ax∈A 且 x∈Bcx\in B^cx∈Bc,也就是 x∈A∩Bcx\in A\cap B^cx∈A∩Bc。因此 A−B=A∩BcA-B=A\cap B^cA−B=A∩Bc。

写集合证明时,不要从“显然图上一样”直接跳到结论。维恩图可以帮你猜到等式,但证明要说明任意元素在左右两边的归属条件相同。


用反例处理错误等式

不是所有看起来像分配律的式子都成立。比如下面这个式子是错的:

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

右边的 CCC 没有被 AAA 限制住。如果某个元素在 CCC 中但不在 AAA 中,它会落入右边,却不会落入左边。

用反例元素 x 推翻错误集合等式的并列教学图
反例元素在集合 C 中但不在集合 A 中,因此右边包含它,左边不包含它。

给出一个具体反例。令

A={1},B=∅,C={2}.A=\{1\},\quad B=\varnothing,\quad C=\{2\}.A={1},B=∅,C={2}.

左边是

A∩(B∪C)={1}∩{2}=∅.A\cap(B\cup C)=\{1\}\cap\{2\}=\varnothing.A∩(B∪C)={1}∩{2}=∅.

右边是

(A∩B)∪C=∅∪{2}={2}.(A\cap B)\cup C=\varnothing\cup\{2\}=\{2\}.(A∩B)∪C=∅∪{2}={2}.

左右不相等,所以原等式不成立。

推翻一个全称集合等式,只需要找一组集合让它失败。反例越小越好,通常一两个元素就够用。好的反例会指出“哪个元素在一边,不在另一边”。

练习:判断下面等式是否总成立。如果不成立,给出一个反例。

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

这个等式不总成立。取 A={1}A=\{1\}A={1},B=∅B=\varnothingB=∅,C=∅C=\varnothingC=∅。左边 A∪(B∩C)={1}∪∅={1}A\cup(B\cap C)=\{1\}\cup\varnothing=\{1\}A∪(B∩C)={1}∪∅={1},右边 (A∪B)∩C={1}∩∅=∅(A\cup B)\cap C=\{1\}\cap\varnothing=\varnothing(A∪B)∩C={1}∩∅=∅,左右不相等。


维恩图的边界

维恩图适合观察两三个集合的关系。它能帮助你看到哪些区域被包含、哪些区域被排除,也能帮助你设计反例。但维恩图有边界。

第一,维恩图默认每个区域都“可能有元素”,但实际集合中某些区域可能为空。第二,补集必须依赖论域;图外面的区域如果没有论域边框,就无法判断它是不是补集的一部分。第三,集合变多时,图形会越来越难读,甚至会遮住真正需要检查的逻辑条件。

三集合维恩图连接到边界情况表格,说明图像帮助观察,证明检查所有情况。
维恩图能提示集合关系的直觉,但边界元素仍要通过元素条件逐项证明。

所以,维恩图适合放在证明之前,用来猜结论、找反例、检查思路。正式证明时,还是要回到元素条件。

可以用下面的检查表收尾:

  1. 先写清论域 UUU,尤其在出现补集时。
  2. 区分 ∈\in∈ 和 ⊆\subseteq⊆,不要混淆元素与集合。
  3. 把每个集合运算翻译成“且、或、非”的元素条件。
  4. 证明包含时从任意元素出发;证明相等时做两个方向。
  5. 反驳集合等式时给出具体集合,并指出某个元素只在一边。

学完本章后,你已经可以把集合语句拆成逻辑语句。下一章进入关系与函数时,很多定义都会写成集合、笛卡尔积和有序对的语言;本章的元素追踪法会继续派上用场。

  • 集合先从论域说起
  • 子集、空集与幂集
  • 并、交、补、差
  • 笛卡尔积与有序对
  • 集合恒等式
  • 元素追踪法
  • 用反例处理错误等式
  • 维恩图的边界

目录

  • 集合先从论域说起
  • 子集、空集与幂集
  • 并、交、补、差
  • 笛卡尔积与有序对
  • 集合恒等式
  • 元素追踪法
  • 用反例处理错误等式
  • 维恩图的边界