函数不只是一个公式:输入集合、输出集合和对应规则共同决定了关于它的陈述是什么意思。本篇把定义、单射、满射、复合和逆函数放在一起,因为它们围绕同一个映射逐步提出问题。阅读前先掌握朴素集合论,之后就能把序列理解为带指标的函数 [1][1] T. Button, Set Theory. Open Logic Project, 2026. Fall 2021 course text, revised July 2026. https://builds.openlogicproject.org/courses/set-theory/settheory-screen.pdf。

指明定义域、陪域和规则

定义函数

函数 f:A→Bf:A\to B 为每个 a∈Aa\in A 恰好指定一个 f(a)∈Bf(a)\in B。AA 是定义域,BB 是陪域。像集或值域为 f[A]={f(a):a∈A}f[A]=\{f(a):a\in A\},它是 BB 的子集。

对 f:Z→Zf:\mathbb Z\to\mathbb Z、f(n)=n2f(n)=n^2,陪域是全部整数,像集却是 {0,1,4,9,…}\{0,1,4,9,\ldots\}。这里把函数视为带类型的映射:相等要求定义域、陪域以及各输入的输出都相同。因此,同一公式换一个声明的陪域,映射性质也可能改变。

从 ∅\varnothing 到任意集合 BB 恰有一个函数,即空函数;从非空集合 AA 到 ∅\varnothing 则没有函数。这些结论直接来自定义,不必在函数定义里排除空集合。

函数图像是有序对 (a,f(a))(a,f(a)) 组成的集合。作为 A×BA\times B 的子集,它必须为每个输入恰好配一个输出。一般关系可能配多个或不配输出,所以不是每个关系都是函数。关系的系统理论放在关系与序中。

写出的规则必须真的定义函数

x↦1/xx\mapsto1/x 不能定义全函数 R→R\mathbb R\to\mathbb R,但在 R∖{0}\mathbb R\setminus\{0\} 上可以。声明相同定义域和陪域时,1/x1/x 与 x−1x^{-1} 给出的规则完全一样。后面用 f−1f^{-1} 表示逆函数,是上标的另一种用法。

规则还必须独立于输入的表示方式。例如,“把有理数 a/ba/b 映到分子 aa”并不良定义,因为 1/2=2/41/2=2/4 会让同一个有理数得到不同输出。若输入是等价类或具有多种表示的对象,就要检查所有允许表示是否给出相同结果。

集合的像与原像

对 S⊆AS\subseteq A、T⊆BT\subseteq B,定义

f[S]={f(x):x∈S},f[S]=\{f(x):x\in S\}, f−1[T]={x∈A:f(x)∈T}.f^{-1}[T]=\{x\in A:f(x)\in T\}.

前者把子集向前映射,后者收集输出落在指定子集中的输入。每个函数都可以取集合的原像,不要求逆函数存在。

对平方函数 f:R→Rf:\mathbb R\to\mathbb R,{−1,0,2}\{-1,0,2\} 的像是 {0,1,4}\{0,1,4\},{1,4}\{1,4\} 的原像是 {−2,−1,1,2}\{-2,-1,1,2\}。不同输入可以产生相同像元素,而集合中只列一次。

命题像保持并集

对 C,D⊆AC,D\subseteq A,

f[C∪D]=f[C]∪f[D].f[C\cup D]=f[C]\cup f[D].
证明

若 y∈f[C∪D]y\in f[C\cup D],取 x∈C∪Dx\in C\cup D 使 f(x)=yf(x)=y。输入至少属于 C,DC,D 之一,所以 y∈f[C]∪f[D]y\in f[C]\cup f[D]。反过来,若 yy 属于任一个像集,就有一个见证输入属于 C∪DC\cup D,因此也属于其像。两个包含关系得到等式。

所以这里不存在“不相等”的反例。交集的情况不同:

f[C∩D]⊆f[C]∩f[D].f[C\cap D]\subseteq f[C]\cap f[D].

对平方函数,取 C={−1}C=\{-1\}、D={1}D=\{1\},左边为空集,右边为 {1}\{1\}。两个像集中的成员资格可以由不同输入分别见证。

原像同时保持并集、交集,以及相对于声明集合的补集:

f−1[B∖T]=A∖f−1[T].f^{-1}[B\setminus T]=A\setminus f^{-1}[T].

例如,左边的成员条件是 x∈Ax\in A 且 f(x)∉Tf(x)\notin T,正好也是右边的条件。原像检查始终围绕同一个输入 xx,因此不需要单射假设。

单射、满射与双射

性质含义怎样证明
单射输出相同迫使输入相同假设 f(x)=f(y)f(x)=f(y),推出 x=yx=y
到 BB 的满射陪域每个元素都能达到任取 b∈Bb\in B,构造 a∈Aa\in A 使 f(a)=bf(a)=b
双射同时单射与满射分别完成两项要求

反驳单射,要找不同输入产生相同输出;反驳满射,要找一个没有原像的陪域元素。每个输入都有输出,本来就是函数的要求,不是满射的定义。

映射覆盖陪域的三种方式。箭头分别展示输入是否发生碰撞,以及陪域中是否存在未被映到的元素。

映射覆盖陪域的三种方式。箭头分别展示输入是否发生碰撞,以及陪域中是否存在未被映到的元素。

例陪域改变满射性

x↦x2x\mapsto x^2 从 R\mathbb R 到 R\mathbb R 时既非单射也非满射:−1,1-1,1 输出相同,且达不到 −1-1。从 R\mathbb R 到 [0,∞)[0,\infty) 时为满射,仍非单射。再把定义域也限制为 [0,∞)[0,\infty),才成为双射。

证明给出明确见证的双射证明

设 f:R→Rf:\mathbb R\to\mathbb R,f(x)=3x−2f(x)=3x-2。若 f(x)=f(y)f(x)=f(y),则 3x−2=3y−23x-2=3y-2,所以 x=yx=y,单射成立。任取 b∈Rb\in\mathbb R,选择 a=(b+2)/3a=(b+2)/3,它是实数且满足 f(a)=bf(a)=b,因此满射成立。故 ff 为双射。

有限且大小相同的定义域、陪域之间,单射与满射等价,因为不重复地选取输出就会用尽全部可用输出。这个结论不能直接搬到无限集合。n↦n+1n\mapsto n+1 从 N\mathbb N 到自身是单射,却漏掉了 00。

用映射比较集合的势

朴素集合论中的“一一配对”,现在可以准确表述为双射 f:A→Bf:A\to B,它证明 ∣A∣=∣B∣|A|=|B|。若存在单射 A→BA\to B,就能把 AA 的不同元素放到 BB 的不同位置上;这就是一般集合中 ∣A∣≤∣B∣|A|\le|B| 的含义。

若 BB 可数,且存在单射 A→BA\to B,则 AA 也可数。BB 有限时,可用位置只有有限个;BB 可数无限时,沿着它的一个枚举依次检查,只保留单射实际用到的位置。这样每个 AA 中的元素至多出现一次,并且不会遗漏。

另一个结论与数列直接相关:非空集合 AA 可数,当且仅当存在满射 N→A\mathbb N\to A。有限的非空列表可以通过重复其中一个元素延长为无限列表;反过来,对一个满射列表,只保留各值首次出现的位置,就得到不重不漏的有限或可数无限列表。空集也可数,但不存在从 N\mathbb N 到空集的函数,所以这里必须写“非空”。

这些结论首先讨论映射是否存在。“保留首次出现”说明数学上如何安排列表;若数据或相等性判断不能计算,并不保证这个过程能写成可执行的枚举算法。

复合及其能保证的性质

若 f:A→Bf:A\to B、g:B→Cg:B\to C,则复合 g∘f:A→Cg\circ f:A\to C 定义为 (g∘f)(a)=g(f(a))(g\circ f)(a)=g(f(a)),右边的函数先作用。复合满足结合律,但通常不满足交换律。恒等映射满足 id⁡B∘f=f=f∘id⁡A\operatorname{id}_B\circ f=f=f\circ\operatorname{id}_A。

例如,在实数上令 f(x)=x+1f(x)=x+1、g(x)=2xg(x)=2x,则 (g∘f)(x)=2x+2(g\circ f)(x)=2x+2,(f∘g)(x)=2x+1(f\circ g)(x)=2x+1。逐点相乘得到的却是 (fg)(x)=2x(x+1)(fg)(x)=2x(x+1)。即使两个函数共用数值定义域,这些运算也不是一回事。

证明单射或满射的复合

若 f,gf,g 都是单射,且 g(f(x))=g(f(y))g(f(x))=g(f(y)),先由 gg 的单射性得到 f(x)=f(y)f(x)=f(y),再由 ff 的单射性得到 x=yx=y。

若 f,gf,g 都是满射,任取 c∈Cc\in C,先选 b∈Bb\in B 使 g(b)=cg(b)=c,再选 a∈Aa\in A 使 f(a)=bf(a)=b,便有 (g∘f)(a)=c(g\circ f)(a)=c。因此双射的复合仍是双射。

反向能得到的结论较弱:g∘fg\circ f 单射可以推出 ff 单射,g∘fg\circ f 满射可以推出 gg 满射。但复合为双射,不意味着两个组成函数都为双射,后面的练习会给出反例。

逆函数与原像运算

f:A→Bf:A\to B 的双侧逆,是满足下式的函数 h:B→Ah:B\to A:

h∘f=id⁡A,f∘h=id⁡B.h\circ f=\operatorname{id}_A, \qquad f\circ h=\operatorname{id}_B.

双侧逆存在,当且仅当 ff 为双射。若 ff 为双射,每个 b∈Bb\in B 恰有一个原像,把它指定为输出就定义了 hh。反过来,第一个恒等式保证 ff 单射,第二个保证 ff 满射。逆函数唯一,记作 f−1f^{-1}。

对 f(x)=3x−2f(x)=3x-2,逆函数为 f−1(b)=(b+2)/3f^{-1}(b)=(b+2)/3,不是 1/(3b−2)1/(3b-2)。单射 f:A→Bf:A\to B 总可以在把陪域缩为 f[A]f[A] 后求逆;但若 BB 中有未达到的元素,就不能因此说它在整个 BB 上可逆。

即使逆函数不存在,f−1[T]f^{-1}[T] 仍然表示集合的原像。ff 为双射时,它与通过逆函数得到的 TT 的像一致。写清括号和定义域,可以避免混淆两个含义。

限制、偏函数与全函数

对 D⊆AD\subseteq A,限制 f∣D:D→Bf|_D:D\to B 在较小定义域上保留原输出,它对自己声明的定义域 DD 是全函数。偏函数 p:A⇀Bp:A\rightharpoonup B 则保留 AA 作为环境输入集合,实际定义域为 D⊆AD\subseteq A,其中某些环境输入可以没有输出。

倒数规则在环境集合 R\mathbb R 上是偏函数,但作为 R∖{0}→R\mathbb R\setminus\{0\}\to\mathbb R 的映射就是全函数。若要编码无输出状态,可以加入新符号 ⊥∉B\bot\notin B,定义全函数 p∗:A→B∪{⊥}p^*:A\to B\cup\{\bot\},在 DD 上与 pp 一致,在其他位置返回 ⊥\bot。这明确改变了陪域,并不是证明原规则本来就处处有输出。

练习

练习检查输入的类型

某映射的定义域是 {0,1}×P(Z)\{0,1\}\times\mathcal P(\mathbb Z),陪域是 N\mathbb N。说明为什么 (1,{−3,6})(1,\{-3,6\}) 是合法输入、99 是合法输出值,而 (8,−7)(8,-7) 不是合法输入。

查看解析
解

第一分量必须属于 {0,1}\{0,1\},第二分量必须是整数集的子集。第一个有序对同时满足要求,第二个的第一分量不合法,第二分量也只是整数而非整数子集。知道 99 属于陪域,并不能确定哪个输入会映到它,甚至不能保证它被达到。

练习修正定义域或规则

x↦xx\mapsto\sqrt x 与关系 y2=xy^2=x 是否定义了函数 R→R\mathbb R\to\mathbb R?通过适当限制给出一个准确的函数。

查看解析
解

实平方根规则在负输入上无定义;关系 y2=xy^2=x 对正输入还允许两个输出。要求 x≥0x\ge0 并选择非负根,得到函数 [0,∞)→[0,∞)[0,\infty)\to[0,\infty)、x↦xx\mapsto\sqrt x。根的存在性和唯一性来自实数的性质,不是写下关系就自动得到了。

练习从整数对到整数的满射

对 f:Z2→Zf:\mathbb Z^2\to\mathbb Z、f(m,n)=2m−nf(m,n)=2m-n,判断单射性与满射性。

查看解析
解

它是满射:任取整数 zz,选 (m,n)=(0,−z)(m,n)=(0,-z) 即可。它不是单射,因为 (0,0)(0,0) 和 (1,2)(1,2) 都映到 00。各个见证都属于声明的乘积定义域。

练习复合双射不迫使每个因子双射

取 A=C={0}A=C=\{0\}、B={0,1}B=\{0,1\}。令 f:A→Bf:A\to B 把 00 映到 00,g:B→Cg:B\to C 把两个输入都映到 00。分别检查 g∘fg\circ f、ff 与 gg。

查看解析
解

复合是单元素集合上的恒等映射,因此为双射。但 ff 漏掉 11,不是满射;gg 合并两个不同输入,不是单射。这反驳了“复合双射就意味着两个因子都是双射”的说法。

练习像何时保持交集

证明单射 ff 满足 f[C∩D]=f[C]∩f[D]f[C\cap D]=f[C]\cap f[D],并指出哪一步使用了单射性。

查看解析
解

正向包含对任意函数成立。反向任取 y=f(c)=f(d)y=f(c)=f(d),其中 c∈Cc\in C、d∈Dd\in D,单射性给出 c=dc=d,所以共同输入属于 C∩DC\cap D,见证了左边的成员资格。正文中的平方函数反例说明,没有单射性时等号可能失败。

练习计算逆函数与原像

对 f:[0,∞)→[0,∞)f:[0,\infty)\to[0,\infty)、f(x)=x2f(x)=x^2,求逆函数和 f−1[T]f^{-1}[T],其中 T=[1,4]T=[1,4]。把定义域改成全部实数后,再计算这个原像。

查看解析
解

在非负定义域上,逆函数为 y↦yy\mapsto\sqrt y,区间 [1,4][1,4] 的原像为 [1,2][1,2]。定义域改为全部实数后,原像变成 [−2,−1]∪[1,2][-2,-1]\cup[1,2],此时函数虽然不再单射、没有双侧逆,仍然可以取原像。这就是原像运算与逆函数的区别。

接下来阅读数列与级数。初等实函数的详细性质见微积分系列,建立这里的映射概念不需要先展开完整函数目录。

参考文献

  1. [1] T. Button, Set Theory. Open Logic Project, 2026. Fall 2021 course text, revised July 2026. https://builds.openlogicproject.org/courses/set-theory/settheory-screen.pdf ↩