集合给了我们谈论对象的语言。关系和函数进一步回答一个问题:对象之间怎样相连,怎样比较,怎样对应。
本章把“对应”拆成两层。第一层是关系,它允许一个元素连向零个、一个或多个元素。第二层是函数,它是更受约束的关系:每个输入必须有且只有一个输出。等价关系、偏序关系、单射、满射、双射都不是额外的名字游戏,而是在说这些连接满足哪些可检查的条件。
设 和 是集合。一个从 到 的二元关系是笛卡尔积 的一个子集:
如果 ,常写作 ,读作“ 与 有关系 ”。这里的“关系”很宽。它可以表示“学生选了某门课”“整数 整除整数 ”“网页 链向网页 ”,也可以表示“两个数模 同余”。
关系本身只记录哪些有序对被选中。它不要求每个左边元素都出现,也不要求一个左边元素只能对应一个右边元素。函数会在后面加入这些额外限制。

当 时,我们说 是集合 上的关系。许多重要关系都属于这一类。例如,在整数集合上, 是一个关系;在一个课程集合上,“课程 是课程 的先修课”也是一个关系。
关系的几个基本问题是:
后面的定义都围绕这些问题展开。
如果 和 都是有限集合,关系可以被写成矩阵。设
关系 的矩阵 是一个 的 - 矩阵:
矩阵适合做计算。有向图适合看结构。若 是 上的关系,我们把 的元素画成点;若 ,就从 画一条箭头到 。若 ,箭头就是从 指回自己的自环。

这种双重表示很有用。矩阵让我们能逐格检查;有向图让我们一眼看到自环、双向箭头和路径。
下面的交互把这两种表示放在一起。点击矩阵中的格子,可以立刻看到有向图和性质判断怎样变化。
本节只讨论集合 上的关系,也就是 。
关系 是自反的,意思是每个元素都和自己有关:
在有向图中,自反意味着每个点都有自环。在矩阵中,自反意味着主对角线上的元素全是 。
关系 是对称的,意思是关系可以反向:
对称不是说所有点之间都互相连接,而是说只要出现一条 的箭头,就必须同时出现 。
关系 是反对称的,意思是两个不同元素不能互相指向:
这个定义容易被误读。反对称不是“不是对称”。例如等号 在任何集合上既是对称的,也是反对称的:若 且 ,那当然只能是同一个元素。
关系 是传递的,意思是两步可以合成一步:
在有向图中,如果有 和 ,传递性要求也有 。注意,传递性只在前两条箭头都存在时提出要求。若其中一条不存在,就没有需要检查的三元组。

判断关系性质时,不要只看一个漂亮的例子。定义里的量词通常是“对所有元素”。只要找到一个违反条件的元素组,性质就失败。
下面用整数上的“小于等于”关系练一次。
先判断自反性。任意整数 都满足 ,所以 在整数集合上是自反的。
再判断对称性。 成立,但 不成立,所以 不是对称的。
练习:在集合 上定义 当且仅当 整除 。判断 是否自反、对称、反对称、传递。
自反成立,因为每个数都整除自己。对称不成立,例如 ,但 。反对称成立,因为在正整数中,若 且 ,则 。传递成立,因为若 且 ,则 。
等价关系用来表达“属于同一类”。一个集合 上的关系 若同时满足自反、对称、传递,就叫作等价关系。
等价关系的三个条件各有作用:
设 是 上的等价关系。元素 的等价类定义为
等价类把集合 分成若干块。每个元素落在某一块里;两块要么完全相同,要么没有交集。这种把集合拆成不重叠非空子集的方式叫作划分。
反过来,任何划分也能定义一个等价关系:若两个元素落在同一块中,就规定它们等价。于是有一个很重要的对应:

一个标准例子是模 同余。在整数集合上定义
当且仅当 整除 。这个关系把所有整数按除以 的余数分成 个等价类。
自反性来自 。因为 整除 ,所以 。
下面的交互可以改变模数,观察等价类怎样随余数重新分组。
遇到“分类”“同余”“同构前的粗略相同”“拥有同一个不变量”这类问题时,可以先问:这里是否有一个等价关系?如果有,真正的对象常常不是单个元素,而是等价类。
练习:在平面点集上定义 当且仅当 。这个关系是不是等价关系?等价类是什么?
这是等价关系。自反性来自每个点的纵坐标等于自己;对称性来自等号可以反向;传递性来自等号传递。一个点 的等价类是所有纵坐标等于 的点,也就是水平直线 。
偏序关系用来表达“可比较的次序”,但它不要求任意两个元素都能比较。集合 上的关系 若同时满足自反、反对称、传递,就叫作偏序关系。配备了偏序关系的集合写作 ,叫作偏序集。
常见偏序包括:
偏序里有一个新现象:不可比。若既没有 ,也没有 ,就说 和 不可比。例如在整除偏序中, 和 都整除 ,但 且 ,所以 与 不可比。

Hasse 图是有限偏序的简化画法。它遵守三条规则:
用整除关系在 上构造 Hasse 图,可以这样做。
先列出所有整除关系。例如 整除所有元素, 整除 , 整除 , 和 都整除 。
偏序中还要区分几类“端点”。最小元是没有比它更小的元素;最大元是没有比它更大的元素。最小元和最大元可以有多个。若某个元素小于等于所有元素,它叫最小元素;若某个元素大于等于所有元素,它叫最大元素。最小元素或最大元素若存在,必定唯一。
“最小元”和“最小元素”不是同一个说法。最小元只要求没有元素严格在它下面;最小元素要求它能和所有元素比较,并且小于等于所有元素。
练习:在幂集 上用 作偏序。写出所有元素,并判断是否有最小元素和最大元素。
幂集的元素是 。在包含关系下, 是最小元素,因为它包含于每个子集; 是最大元素,因为每个子集都包含于它。
函数可以看成一种特殊的二元关系。设 和 是集合。函数 是 的子集,并且满足:
符号 表示“存在唯一”。这句话包含两个要求:
第一个要求排除“没有定义”的输入。第二个要求排除“同一个输入指向多个输出”的情况。输出集合 叫作陪域。真正被命中的输出组成像集:
像集一定是 的子集,但不一定等于 。
判断一个箭头图是不是函数,只看左边每个元素是否恰好发出一条箭头。右边元素可以没人指向,也可以被多个左边元素指向。那些情况会影响单射和满射,但不影响“是不是函数”。
设 是函数。
函数 是单射,意思是不同输入不会撞到同一个输出:
等价地说,若 ,则 。
函数 是满射,意思是陪域 中的每个元素都被命中:
函数 是双射,意思是它既是单射又是满射。双射建立的是一一对应。

有限集合上,元素个数能帮助我们快速排除不可能的情况。若 ,函数 不可能是单射,因为输入比输出多,必有两个输入落到同一个输出。若 ,函数 不可能是满射,因为输出位置比输入多,至少有一个陪域元素没人命中。
满射必须相对于指定的陪域判断。同一个公式,若换了陪域,满射性可能改变。例如 不是满射;若写成 ,它就是满射。
下面的交互把函数、单射、满射、双射、复合放在同一张工作台中。
练习:设 ,且 。判断 是否为单射、满射、双射。
不是单射,因为 和 是不同输入,但都映到 。 不是满射,因为陪域中的 和 没有被命中。它也不是双射,因为双射必须同时是单射和满射。
若 ,,就可以先用 把 中元素送到 ,再用 把结果送到 。这个新函数叫作 与 的复合,写作 :
复合的顺序要从右向左读。 是“先 后 ”。如果 ,,但 的输出不在 的输入集合中, 就没有定义。
复合满足结合律。若 、、,则
两边对任意 的输出都是 。
反函数更严格。函数 若存在函数 ,满足
且
就说 是 的反函数。这里 是 上的恒等函数,即 。
若 有反函数,先说明 是单射。假设 ,两边同时作用 ,得到 ,所以 。
所以,函数可逆当且仅当它是双射。
处理函数题时,先确认“是不是函数”,再问“是否单射或满射”,最后再谈“是否有反函数”。这个顺序能避免把关系、函数和可逆函数混在一起。
练习一:在集合 上,关系
是不是等价关系?如果是,写出所有等价类;如果不是,指出失败的性质。
它是等价关系。自反性成立,因为三个自环都在 中。对称性成立,因为 与 同时出现,其余非自环不存在。传递性也成立,因为 和 只在同一个小块中互相连接, 只和自己连接。等价类是 和 。
练习二:在集合 上用整除关系作偏序。哪些元素是最小元?是否有最小元素?
最小元是 和 。没有其他集合内元素能整除 ,也没有其他集合内元素能整除 。但不存在最小元素,因为最小元素必须整除集合中的所有元素; 不整除 , 不整除 。
练习三:设 ,。判断 是否为双射,并写出反函数。
是双射。若 ,则 ,所以 ,单射成立。任取 ,取 ,则 ,满射成立。反函数是 。
练习四:设 ,。判断 是否单射、满射、双射。
不是单射,因为 。 不是满射,因为负整数没有整数原像,例如不存在整数 使 。因此 不是双射。
接着判断反对称性。若 且 ,整数的大小关系迫使 ,所以 是反对称的。
最后判断传递性。若 且 ,则 ,所以 是传递的。
对称性来自符号反向。若 ,则 ,所以 ,于是 。
传递性来自差的相加。若 且 ,则 且 ,所以 。
三个条件都成立,因此模 同余是整数集合上的等价关系。
删去自环,例如 、 这些边不画。
再删去传递边。例如 可以由 和 推出,所以 Hasse 图不画 到 的边。
最后按层摆放元素。 在底部, 和 在其上, 和 再往上, 在顶部。
再说明 是满射。任取 ,令 。由 可知 被 命中。
因此,有反函数的函数必须是双射。反过来,若 是双射,每个 恰好来自一个 ,把这个唯一的 定义为 ,就得到反函数。