关系与函数:把集合中的元素连起来
上一章里,我们已经会用集合收纳对象,也会用笛卡尔积 A×B 列出“一个来自 A、一个来自 B”的所有有序对。现在往前走一步:如果我们只从这些有序对中挑出一部分,会得到什么?
答案是关系。它可以记录“谁选了哪门课”“哪个整数整除哪个整数”“哪项任务必须先于哪项任务”。如果再要求每个输入恰好对应一个输出,关系就收紧成了函数。
这两个概念真正难的地方不在符号,而在量词。自反、对称、反对称、传递,单射、满射、双射,每个名字背后都是一句带“任意”或“存在”的完整判断。学习本章时,我们会把这些判断逐句拆开,也会把证明前的思路直接写出来:要证明什么?该任取谁?反例又要找什么?
二元关系就是一批被选中的有序对
设 A、B 是集合。从 A 到 B 的二元关系 R 是笛卡尔积 A×B 的一个子集:
R⊆A×B
若 (a,b)∈R,我们常写成 aRb,读作“a 与 b 满足关系 R”。这里的“关系”没有附带日常语言里的亲近感,它只是在回答一个是非问题:有序对 有没有被放进 ?
例如,令
A={a,b,c},B={1,2,3}
并规定
R={(a,1),(a,3),(b,2),(c,2)}
那么 aR1、aR3 和 cR2 都成立,bR1 不成立。注意,a 可以同时连向 1 和 , 与 也可以共同连向 。关系允许一个左侧元素连向零个、一个或多个右侧元素。
同一个关系可以写成有序对集合,也可以画成矩阵或箭头图。
定义域、值域与像
说“R 是从 A 到 B 的关系”时,A、B 是我们事先指定的两侧集合。真正至少发出一条关系箭头的元素组成关系的有效定义域:
Dom(R)={a∈A∣∃b∈B, aRb}
真正至少接到一条箭头的元素组成关系的值域:
Ran(R)={b∈B∣∃a∈A, aRb}
给定 S⊆A,从 S 中任意元素出发能到达的所有右侧元素,叫作 S 在 R 下的像:
R[S]={b∈B∣∃a∈S, aRb}
在上面的例子里,R[{a,c}]={1,2,3}。这里的关键是“存在一个 a∈S”,所以要把从 a 和 c 发出的箭头终点合在一起。
逆关系与关系复合
把每条箭头反向,就得到逆关系 R−1:
R−1={(b,a)∈B×A∣(a,b)∈R}
因此,bR−1a 当且仅当 aRb。逆关系永远存在,因为反转有序对不会要求“唯一对应”。这一点和后面讲的反函数很不一样:函数只有在双射时才有反函数。
关系也可以接力。若 R⊆A×B,S⊆B×C,那么
S∘R={(a,c)∈A×C∣∃b∈B, aRb
读这个式子时从右向左:先沿 R 从 a 到某个 b,再沿 S 从 b 到 c。中间的 b 只要存在一个就够了,不必唯一。函数复合会沿用完全相同的顺序。
一个关系不能只靠已经列出的箭头确定全部性质。比如要判断“每个 A 中元素是否都发出箭头”,我们必须知道完整的集合 A,不能只看关系中的有序对。
用矩阵和有向图看关系
关系写成有序对最精确,但元素一多就不容易看出结构。有限关系常用另外两种表示。
设
A={a1,a2,…,a
关系 R⊆A×B 的关系矩阵 MR 是一个 m×n 的 0- 矩阵:
(MR)ij=
矩阵的第 i 行管左侧元素 ai,第 j 列管右侧元素 bj。格子里出现 1,就表示箭头 存在。
当 A=B 时,R 叫作 A 上的关系。这时可以把 A 的元素画成顶点,把 xRy 画成从 x 指向 的有向边;若 ,就画一条从 回到自己的自环。
矩阵和有向图各有擅长的事:
- 矩阵适合逐格检查、计数和运算。
- 有向图适合观察自环、双向边与两步路径。
- 有序对集合适合严谨地写出关系本身。
三种表示可以互相翻译。真正要避免的是只凭“图看着差不多”就下结论;性质的判断最终仍要回到定义。
下面的交互页把矩阵、有向图和性质判断连在一起。点击任意格子,就是在加入或删除一个有序对;观察一条箭头怎样改变四个性质。
四个性质:先把量词翻成检查任务
从这里开始,R 都是集合 A 上的关系,也就是 R⊆A×A。四个基本性质看起来只差几处符号,实际问的是四件不同的事。
自反检查自环,对称检查返回箭头,反对称禁止不同点互相指向,传递检查两步是否能直达。
自反:每个元素都要认自己
R 是自反的,意思是每个元素都和自己有关:
∀x∈A, xRx
在矩阵中,主对角线必须全是 1;在有向图中,每个顶点都必须有自环。只找到几个自环不能证明自反,因为定义要求覆盖 A 中所有元素。反过来,要否定自反,只需找到一个没有自环的元素。
对称:去得了,也要回得来
R 是对称的,意思是每一条箭头都必须配有反向箭头:
∀x,y∈A, xRy⇒yRx
例如,“和……同岁”是对称关系。若甲和乙同岁,那么乙也和甲同岁。矩阵中,对称关系满足 MR=MRT,也就是主对角线两侧互为镜像。
反对称:不同元素不能互相压住
R 是反对称的,意思是:若两条相反方向的箭头同时存在,那么两端其实只能是同一个元素。
∀x,y∈A, (xRy∧yRx)⇒x=y
等价地说,对任意两个不同元素 x=y,不允许 xRy 与 yRx 同时成立。自环不违反反对称,因为定义只禁止不同元素之间的双向关系。
第一次见到“反对称”,最容易把它读成“不对称”。这是错的。我们把三句话摆在一起:
- 对称要求:有 xRy,就必须有 yRx。
- 反对称要求:若 x=y 且有 xRy,就不能有 。
所以,对称与反对称不是简单的正反面。等号 = 既对称又反对称:x=y 可以反向,而两个不同元素绝不会互相相等。空关系在非空集合上既不是自反的,却同时是对称、反对称和传递的,因为根本没有箭头能构成反例。
“反对称”里的“反”针对的是不同元素之间不能双向,不是说把“对称”的真假倒过来。判断时直接盯住条件 xRy∧yRx:如果它发生,能不能推出 x=y?
传递:两步走得通,就要允许一步直达
R 是传递的,意思是:只要 x 到 y、y 到 z 都成立,x 到 z 也必须成立。
∀x,y,z∈A, (xRy∧yRz)⇒xRz
传递性检查的是所有长度为 2 的关系链。若前提中的两条箭头没有同时出现,就没有义务补第三条箭头。要否定传递性,必须凑齐一个完整反例:xRy 和 yRz 成立,但 xRz 不成立。
用同一套步骤判断性质
考虑整数集合上的关系 ≤。证明前先想清楚:自反、反对称、传递要任取元素后推导;否定对称只需一个反例。
任取整数 x,都有 x≤x,所以 ≤ 是自反的。
取 和 。虽然 ,但 不成立,所以 不是对称的。一个反例已经足够。
练习:在 A={1,2,3,4,6,12} 上定义 aRb 当且仅当 a∣b。判断四个性质。
自反成立,因为任取 a∈A,都有 a=a⋅1,所以 a∣a。对称不成立,例如 2∣6,但 。反对称成立:若正整数 且 ,则存在正整数 使 、,于是 ;因为 ,得到 ,从而 ,所以 。传递成立:若 且 ,则 ,所以 。
等价关系把集合分成互不重叠的类
如果我们想表达“虽然不是同一个对象,但在当前标准下可以看成同一类”,需要的正是自反、对称和传递。
集合 A 上的关系 ∼ 若满足下面三条,就叫作等价关系:
自反+对称+传递
三条各自管一件事。自反保证每个元素有归属;对称保证“同类”不依赖叙述方向;传递保证类别不会沿着一条关系链裂开。
等价类不是随手圈出来的一组元素
给定 a∈A,与 a 等价的所有元素组成 a 的等价类:
[a]={x∈A∣x∼a}
等价类的代表元不是唯一的。同一个类里任何元素都可以给这个类命名。如果 a∼b,那么 [a]=[b];如果 a∼b,那么 。
这不是一个需要死记的结论。我们把“两个等价类一旦碰到就完全相同”证明一遍。
假设 [a]∩[b]=∅,从交集中取一个元素 z。于是 且 。
等价关系与划分是一件事的两种说法
集合 A 的一个划分,是一组非空子集,满足:
- 每个 A 中元素都落入某一块。
- 任意两块要么相同,要么没有公共元素。
- 所有块的并集正好是 A。
等价关系的所有不同等价类恰好构成 A 的一个划分。为什么每个元素都有归属?因为自反性给出 a∼a,所以 a∈[a]。为什么两块不重叠?刚才已经证明,两类一旦有公共元素就必须完全相同。
反过来也成立。先把 A 划成若干块,再规定“x∼y 当且仅当 x、y 在同一块”,这个关系一定自反、对称、传递。因此:
等价关系⟷集合的划分
图中截取 −3 到 6 作有限展示;完整整数集合中,每个整数仍恰好落入一个等价类。
模 n 同余:最值得吃透的例子
在整数集合上定义
a≡b(modn)
当且仅当 n∣(a−b),其中 n 是正整数。证明它是等价关系时,不要只写“显然”。每个性质都能从整除定义推出。
自反:a−a=0=n⋅0,所以 n∣(a−,即 。
下面可以改变模数,观察有限窗口里的整数怎样重新归类。窗口虽然只显示一段整数,但每个等价类在完整整数集合中都会无限延伸。
还有一种很实用的等价关系来源。若 f:A→B 是函数,定义
x∼fy⟺f(x)=f(y)
那么 ∼f 一定是等价关系,因为等号本身自反、对称、传递。每个等价类收集了所有“被 f 看成同一个输出”的输入。以后遇到“按某个特征分类”,可以先试着把特征写成函数,再比较函数值是否相等。
偏序把元素组织成层次,而不强迫它们排成一列
等价关系在回答“谁和谁属于同一类”,偏序关系在回答“谁在谁之前、谁包含于谁、谁整除谁”。
集合 A 上的关系 ⪯ 若同时满足自反、反对称、传递,就叫作偏序关系;(A,⪯) 叫作偏序集。
自反+反对称+传递
典型例子包括数集上的 ≤、集合族上的 ⊆、正整数上的整除关系,以及任务之间的“必须不晚于”关系。
“偏”字意味着允许不可比
偏序不要求任意两个元素都能比较。若既没有 x⪯y,也没有 y⪯x,就说 x 与 y 不可比。
例如在整除偏序中,4∣12、6∣12,但 4∤6 且 6∤4,所以 4 和 不可比。它们都在 的下方,却没有谁必须排在谁前面。
若偏序中任意两个不同元素都可比,这种更强的偏序叫作全序或线序。整数上的 ≤ 是全序,幂集上的 ⊆ 通常不是全序,因为 {a} 与 {b} 互不包含。
严格偏序与非严格偏序
从非严格偏序 ⪯ 中去掉相等情形,可以定义
x≺y⟺x⪯y∧x=y
关系 ≺ 是传递且反自反的,也就是不存在 x≺x。反过来,给定严格偏序 ≺,把相等情形补回来,就得到非严格偏序。< 与 ≤、⊊ 与 ⊆,就是这两种写法的成对例子。
Hasse 图为什么可以删掉那么多边
有限偏序若按完整有向图来画,会充满自环和由传递性推出的边。Hasse 图只保留不能再压缩的“紧邻层级”。
若 x≺y,并且不存在 z 使
x≺z≺y
就说 y 覆盖 x。Hasse 图只连接覆盖关系,并约定较大的元素画在上方,因此不用箭头。
自环由自反性默认,跨层边由传递性恢复,因此图中只保留覆盖边。
在 A={1,2,3,4,6,12} 上画整除偏序,可以按下面的思路做。
先确认这是偏序:每个正整数整除自己;互相整除的两个正整数必相等;整除关系可以沿乘法传递。
列出严格整除关系。例如 1∣4、1∣6、 都成立,但先不要急着全部画线。
极小元不一定是最小元
偏序中,“没有谁严格在我下面”和“我在所有人下面”不是一回事。
- m 是极小元:不存在 x 满足 x≺m。
- m 是最小元:对所有 x∈A,都有 m⪯。
极小元或极大元可以有多个;最小元或最大元若存在,只能有一个。最小元一定是极小元,但极小元可能因为和另一条分支不可比,无法成为最小元。
例如在集合 {2,3,4,6,12} 的整除偏序中,2 与 3 都是极小元,却没有最小元:2∤3,3∤。图的底部出现两个互不相连的起点,正好把这种差别画了出来。
函数是每个输入恰好一条箭头的关系
关系允许一个输入没有输出,也允许一个输入连向多个输出。函数把这两扇门都关上。
本教程采用常见约定:函数 f:A→B 必须给每个 a∈A 指定唯一的 b∈B。写成量词就是
∀a∈A, ∃!b∈B, f(a)=b
∃! 读作“存在唯一”。它包含两半:
- 存在性:每个输入至少有一个输出。
- 唯一性:每个输入至多有一个输出。
有些资料把只满足“至多一个输出”的关系叫作部分函数,再把处处有定义的函数叫作全函数。无论采用哪套术语,看到 f:A→B 时都要先确认当前约定。本教程后文的“函数”都指每个 A 中元素恰好有一个输出的全函数。
定义域、陪域和值域不能混在一起
在 f:A→B 中:
- A 是定义域,列出允许输入的全部元素。
- B 是陪域,列出声明允许输出的全部元素。
- 真正出现的输出组成值域,也叫 A 在 f 下的像:
f[A]={f(a)∣a∈A}
一定有 f[A]⊆B,但不一定相等。公式本身不能完整确定一个函数,定义域和陪域也是函数的一部分。例如同样写 f(x)=x2,若定义域是 R,1 有两个原像 与 ;若定义域是 , 只有一个原像。若陪域从 改成 ,满射性也会改变。
给定 S⊆A,其像是
f[S]={f(x)∣x∈S}
给定 T⊆B,其原像是
f−1[T]={x∈A∣f(x)∈T}
原像对任何函数、任何 T⊆B 都有定义。这里的 f−1[T] 是集合记号,不表示 f 已经有反函数。
判断箭头图是不是函数,只检查定义域一侧:每个输入是否恰好发出一条箭头。陪域元素可以暂时没人命中,也可以接到多条箭头;这两种情况分别影响满射与单射,却不影响它是否为函数。
单射、满射与双射在检查不同方向
设 f:A→B 是函数。单射盯着“不同输入会不会撞车”,满射盯着“陪域有没有空位”,双射要求两边都刚刚好。
单射限制每个输出最多接一箭,满射要求每个陪域元素至少接一箭,双射要求恰好一箭。
单射:输出相同就能追回输入相同
f 是单射,若
∀x,y∈A, f(x)=f(y)⇒x=y
这一定义最适合证明。做题时任取 x,y,假设 f(x)=f(y),再通过代数或结构推到 x=y。
它的逆否命题更接近箭头图:
x=y⇒f(x)=f(y)
要否定单射,只要找到两个不同输入 x=y,却有 f(x)=f(y)。
满射:从任意目标倒着构造输入
f 是满射,若
∀b∈B, ∃a∈A, f(a)=b
证明满射的标准动作是:任取陪域中的 b,根据方程 f(a)=b 倒着构造一个合法的 a∈A。只写“令 a=f”通常不合格,因为反函数是否存在正是尚未证明的事。
要否定满射,则找一个明确的 b∈B,证明不存在 a∈A 使 f(a)=b。
双射:每个输出恰好对应一个输入
函数既单射又满射,就叫双射。换成箭头语言:定义域中每个点恰好发出一箭,陪域中每个点恰好接到一箭。于是双射建立了两个集合之间的一一对应。
下面用 f:Z→Z,f(n)=2n+1 练习完整判断。
证明单射。任取 m,n∈Z,假设 f(m)=f(n),则 ,化简得 。所以 是单射。
有限集合的基数给出快速判断
设 A、B 是有限集合。
- 若存在单射 f:A→B,必有 ∣A∣≤∣B∣。
- 若存在满射 f:A→B,必有 。
第一条就是抽屉原理的函数版本:输入比输出位置多时,至少两个输入必撞到同一输出。第二条也很直观:每个输入只有一个输出,若输入比陪域位置少,就不可能覆盖所有位置。
当 A、B 有相同的有限元素个数时,情况更紧:任意单射 A→B 自动是满射,任意满射也自动是单射。无限集合不能照搬这个结论。例如 f:Z≥0→, 是单射,却漏掉 ,所以不是满射。
函数复合:把两步对应接成一步
若 f:A→B、g:B→C,先做 f 再做 g,得到复合函数
g∘f:A→C
定义为
(g∘f)(a)=g(f(a))
符号顺序从右向左读:g∘f 是“先 f,后 g”。这个顺序不能靠字母表猜,只要盯住括号 g(f(a)) 就不会反。
复合前先检查集合能否接上
复合要求 f 的输出能成为 g 的合法输入。写成函数类型,就是中间的集合要对接:
AfBg
若只知道 f:A→B 与 g:C→D,而没有 f[A]⊆C,那么 可能没有意义,不能贸然写 。
复合满足结合律。若还有 h:C→D,那么
h∘(g∘f)=(h∘g)∘f
证明不需要移动符号。任取 a∈A,分别计算两边:
(h∘(g∘f))(a)=h(g(f(a)))
((h∘g)∘f)(a)=h(g(f(a)))
两个函数定义域相同,且对每个输入取值相同,所以它们是同一个函数。
单射和满射怎样穿过复合
复合保留一些性质:
- 若 f、g 都是单射,则 g∘f 是单射。
- 若 f、g 都是满射,则 g∘ 是满射。
证明第一条时,假设 (g∘f)(x)=(g∘f)(y)。先用 g 的单射性从 推出 ,再用 的单射性推出 。证明顺序和函数执行顺序相反,像沿箭头一步步往回消去。
还有两个常用结论:若 g∘f 是单射,那么 f 必是单射;若 g∘f 是满射,那么 g 必是满射。但不能据此断言 g 必单射或 必满射,因为复合可能只观察了 的一部分。
反函数:只有一一对应才能真正倒着走
设 f:A→B。若存在函数 f−1:B→A,使
f−1∘f=idA
并且
f∘f−1=idB
那么 f−1 叫作 f 的反函数。恒等函数 idA 不改变输入:
idA(a)=a
两个复合等式分别保证:从 A 出发走过去再回来,回到原输入;从 B 出发倒着走再回来,也回到原目标。少任何一边都可能不够。
为什么可逆一定推出双射
先别直接背“可逆当且仅当双射”,看证明怎样从两条复合等式长出来。
证明单射。假设 f(x)=f(y)。在等式两边作用 f−1,得到 。由 ,可化为 。
为什么双射一定能造出反函数
现在反过来假设 f 是双射。对任意 b∈B,满射性保证至少有一个 a∈A 满足 f(a)=b;单射性保证这样的 a 至多一个。因此,这个 存在且唯一,可以放心定义
f−1(b)=a
这样定义出来的 f−1 对每个 b 都有唯一输出,确实是从 B 到 A 的函数,而且两个复合自然都是恒等函数。因此:
f 可逆⟺f 是双射
这里把存在性和唯一性分给满射、单射,正是证明的核心。以后遇到“定义一个逆操作”,都可以照这个顺序问:每个目标找得到原对象吗?找到了会不会有两个?
求反函数时别忘了核对定义域
设 f:R→R,f(x)=3x−5。令 y=3x−,解得
x=3y+5
所以候选反函数是
f−1(y)=3y+5
最后要核对两边:
f−1(f(x))=3(3x−5)+5=
f(f−1(y))=3⋅3y+5−
若换成 f(x)=x2,仅仅“交换 x,y 再开方”会漏掉问题:在 R→R 上它既不单射也不满射,没有反函数;限制为 后才成为双射,反函数是 。反函数不是纯粹的代数变形,定义域与陪域决定它是否存在。
从定义出发组织证明
这一章出现的定义很多,但证明动作其实很稳定。与其背结论,不如把量词翻译成开场方式。
证明一个全称性质
自反、对称、反对称、传递、单射都以“任取”开头。不要挑一个顺眼的数代进去,而应任取定义要求的元素,再把前提写全。
例如证明反对称,骨架是:
任取 x,y∈A,假设 xRy 且 yRx,推出 x=y
证明传递,骨架是:
任取 x,y,z∈A,假设 xRy 且 yRz,推出 xRz
把骨架写对,后面才是在具体关系中代入“整除”“包含”“同余”等含义。
否定性质时找最小反例
否定一个全称命题,不需要讨论所有情况,只需给出一组完整见证:
- 不是自反:找 x 使 xRx 不成立。
- 不是对称:找 x,y 使 xRy 成立而 yRx 不成立。
- 不是反对称:找不同的 ,使 与 同时成立。
反例必须同时满足“前提成立、结论失败”。只说“图上缺了一条边”并不能自动否定传递;还要指出这条缺边前面有哪两步路径。
证明存在唯一时拆成两半
函数定义和反函数证明都会遇到 ∃!。最稳妥的写法是分开证明:
- 存在:构造一个对象,并验证它满足条件。
- 唯一:假设有两个对象都满足条件,再证明它们相等。
双射之所以能产生反函数,恰好就是满射负责“存在”,单射负责“唯一”。这条联系把关系、函数和证明方法接在了一起。
综合练习
关系性质与等价类
在 A={1,2,3} 上定义
R={(1,1),(2,2),(3,3),(1,2),(2,1)}
判断 R 是否为等价关系;若是,写出不同的等价类。
R 是等价关系。三个自环都在 R 中,所以自反。唯一涉及不同元素的箭头是 1→2 与 2→1,它们成对出现,所以对称。传递性可按两个小块检查:1、2 之间的所有两步路径都能在 内直达, 只和自己相关,因此没有传递反例。不同等价类是 与 。
偏序与极小元
在 A={2,3,4,6,8,12,24} 上用整除关系作偏序。找出所有极小元,并判断是否存在最小元。
极小元是 2 和 3。集合中没有不同于 2 的元素整除 2,也没有不同于 3 的元素整除 3。不存在最小元,因为最小元必须整除集合中每个元素;2∤3,而 ,两位极小元彼此不可比。
单射、满射与陪域
设 f:Z→Z,f(n)=n+5。证明 f 是双射,并写出反函数。
任取 m,n∈Z,若 f(m)=f(n),则 m+5=n+,所以 ,单射成立。任取 ,令 ,则 且 ,满射成立。因此 是双射。由 解得 ,所以 ;代入可验证两个方向的复合都是恒等函数。
复合函数的性质
设 f:A→B、g:B→C,并且 g∘f 是单射。证明 是单射。
任取 x,y∈A,假设 f(x)=f(y)。对等式两边应用 g,得到 ,也就是 。由于 是单射,所以 。因此 是单射。注意,这个证明没有要求 本身是单射。