形式陈述
设 f : A → B 是函数 理路 函数 Function · Map · Mapping 由定义域、陪域和单值图共同组成,并把每个输入送到唯一输出的映射。 。若它同时是单射 理路 单射 Injective function · One-to-one function 不同输入必有不同输出的函数。 和满射 理路 满射 Surjective function · Onto function 陪域中每个元素都有至少一个原像的函数。 ,就称 f 为双射,也称一一对应。两项要求合并后可写成
∀ b ∈ B ∃ ! a ∈ A : f ( a ) = b . 符号 ∃ ! 表示“存在且唯一”。也就是说,每个声明的输出位置都恰好有一个输入与之配对:满射保证至少一个,单射保证至多一个。等价地,每个纤维 f − 1 [ { b } ] 都是单元素集。
双射还可以用往返操作刻画。记 id A ( a ) = a 为恒等函数,g ∘ f 表示先 f 后 g 的复合 理路 函数复合 Function composition · Composition of maps 按先 f 后 g 的次序把映射串联为 g∘f。 。双射等价于存在函数 g : B → A ,使
g ∘ f = id A , f ∘ g = id B . 此时 g 唯一,称为 f 的逆函数,记作 f − 1 。这里是同一个 函数在两个方向上都把复合还原成恒等映射;只验证一个等式还不够。
直觉
想象将两组对象配对。单射禁止两个输入挤到同一个输出,满射禁止某个输出无人对应;双射则让两边每个对象恰好出现在一对中。因此,双射建立的不只是“可以从左边走到右边”,还有“到右边以后知道唯一应该怎样回来”。
例如 f : Z → 2 Z ,f ( n ) = 2 n ,把每个整数配给唯一的偶数;反向规则是 f − 1 ( m ) = m / 2 。虽然偶数是整数的真子集,两者仍能一一配对。这说明无限集合的“相同大小”不能只靠是否真包含来判断,而可以由双射精确表达。
双射依赖整个映射的定义域和陪域。x ↦ e x 从 R 到 R 不是满射;把陪域换成 ( 0 , ∞ ) ,它就成为以 log 为逆的双射。改变陪域不是修改同一个结论的说法,而是在改变所讨论的带类型映射。
例子与边界
逆函数为什么恰好刻画双射
先设 f 是双射。对每个 b ∈ B ,把唯一满足 f ( a ) = b 的 a 定为 g ( b ) 。唯一性使这个规则确实定义一个函数。按构造,f ( g ( b ) ) = b ;而 f ( a ) 的唯一原像就是 a ,所以 g ( f ( a ) ) = a 。
反过来,若 g 满足两个复合等式,当 f ( a ) = f ( a ′ ) 时,对两边应用 g 即得 a = a ′ ,因此 f 单射;对任意 b ∈ B ,等式 f ( g ( b ) ) = b 又给出了一个原像,因此 f 满射。若 h 也是逆,则
g = g ∘ ( f ∘ h ) = ( g ∘ f ) ∘ h = h , 所以逆不可能有两个。
这里不需要选择公理:每个 b 对应的原像已经唯一,不存在“从若干候选中任选一个”的步骤。
单侧可逆还不够
取 N 0 = { 0 , 1 , 2 , … } ,令
f ( n ) = n + 1 , g ( n ) = max { n − 1 , 0 } . 有 g ( f ( n ) ) = n ,但 f ( g ( 0 ) ) = 1 ≠ 0 。因此 g 是 f 的左逆,却不是双侧逆。这个例子同时显示:自映射即使能够无损地撤销一次前向操作,也可能漏掉陪域中的某些值。
若 A , B 都有 n 个元素,单射使 n 个输入占据 n 个不同输出,因而不会剩下未覆盖的目标。反过来,若满射却有两个输入碰撞,n 个输入最多占据 n − 1 个输出,与覆盖全部 n 个目标矛盾。因此,同样大小的有限集之间,单射与满射等价。空集情形两者都成立;无限集则不能使用上述有限位置计数,后继映射就是反例。
从 ∅ 到 ∅ 的唯一函数是双射。若仅一边为空,另一边非空,则不可能有双射;这与“每个成员都恰好配对一次”完全一致。
双射不自动保留额外结构
f : R → R ,f ( x ) = x 3 是双射,但 f ( 1 + 1 ) = 8 ≠ f ( 1 ) + f ( 1 ) = 2 ,所以它不是加法群的同构。对某种结构谈同构,还要检查映射和逆映射是否满足该结构要求。
这种双向检查在拓扑中特别清楚。映射
f : [ 0 , 2 π ) → S 1 , f ( t ) = ( cos t , sin t ) 连续且双射,却不是同胚:取 t n = 2 π − 1 / n (n ≥ 1 ),则 f ( t n ) → ( 1 , 0 ) = f ( 0 ) ,但逆像序列 t n 不趋于 0 。集合层面的唯一配对,没有保证反向映射连续。
另一个较细的基础区别是:“已有一个单射 A → B ,另有一个满射 A → B ”不等于“同一个映射同时满足两项性质”。在采用选择公理 理路 选择公理 Axiom of choice · AC 把任意集合族中逐个存在的元素同时汇成一个选择函数的公理。 的通常背景下,可以从那个满射选出右逆 B → A ,再用Cantor–Schröder–Bernstein 定理 理路 康托–施罗德–伯恩斯坦定理 Cantor–Schröder–Bernstein theorem 若 A 可单射到 B 且 B 可单射到 A,则 A 与 B 之间存在双射。 得到双射;不采用选择公理时,这一步不能不加说明地使用。双射自身的逆则始终由唯一性直接决定。
推论与应用
若 f : A → B 与 g : B → C 都是双射,则 g ∘ f 也是双射,并且
( g ∘ f ) − 1 = f − 1 ∘ g − 1 . 撤销组合操作时顺序反转:先撤销最后一步 g ,再撤销 f 。把这个候选逆分别放在复合两侧,就能用结合性和单位律验证结论。
在有限计数中,双射把“直接数起来困难的对象”变成“容易计数的编码”。例如先给一个 n 元集的元素固定顺序 a 1 , … , a n ,再把子集编码成长为 n 的 0 –1 串:第 i 位为 1 当且仅当选入 a i 。若顺序为“红、绿、蓝”,子集 红 蓝 { 红 , 蓝 } 编为 101 ;从 101 又恰好选回红和蓝。
一般地,编码后再解码保留了每个元素是否属于子集的信息,解码后再编码也逐位恢复原串。这两次往返证明了双射。每一位独立有两个选择,串数为 2 n ,故子集数也是 2 n 。当 n = 0 时,空集只有一个子集,对应唯一的空串,公式仍给出 2 0 = 1 。
更一般地,双射可以把定义或结构从一组对象搬到另一组对象上。例如通过双射 f : A → B ,可以把 A 上的运算 ∗ 搬成 b ⋆ c = f ( f − 1 ( b ) ∗ f − 1 ( c ) ) 。这样得到的结构保留相应代数规律,是因为它按双向还原的方式被定义;任意已有的 B 上运算则未必与之相容。
参考资料
Oscar Levin,Discrete Mathematics: An Open Introduction ,第 3 版,2019,§0.4 Functions :一一对应、可逆性及有限计数。
Daniel J. Velleman,How to Prove It: A Structured Approach ,第 3 版,Cambridge University Press,2019,第 5–6 章:逆函数、双射与无限集合的基数。
James R. Munkres,Topology ,第 2 版,Prentice Hall,2000,§18:连续函数与同胚,特别是连续双射和同胚的区别。