本节对应原书 PDF 第 131–137 页。定义、定理、公式、例题及其原解答逐字取自原书;解释性文字为 AI 通俗化改写;标有「解读」的引用块为 AI 补充的额外直觉。

函数是极其重要的数学概念,它与二元关系有着密切的联系. 本章首先从关系的概念出发引入函数的定义,然后讨论函数的单射、满射和双射的性质,最后介绍与函数相关的复合与求逆运算.

5.1.1 函数的定义

函数是一种特殊的二元关系. 先给出函数的定义.

定义 5.1 设 f 是二元关系,如果对于任意 x \in \operatorname{dom} f,都存在唯一的 y \in \operatorname{ran} f,使得 xfy 成立,则称 f 为函数(或者映射). 这时也称 y 为 f 在 x 的值,记作 y = f(x).

注意在上述定义中,符号 y = f(x) 既反映了 y 与 x 的对应关系,也反映了对应的唯一性. 与此不同的是,在关系 R 中,如果与 x 对应的有 y 和 z,y \neq z,那么为了表示 y 与 x 的对应关系,只能写 \langle x, y \rangle \in R 或者 xRy,不能写 y = f(x).

函数是一种特殊的关系,关系又是集合,因此函数的相等可以用集合的相等来定义.

定义 5.2 设 f,g 为函数,则

f = g \Leftrightarrow f \subseteq g \wedge g \subseteq f

根据上述定义,如果两个函数 f 和 g 相等,一定满足下面两个条件:

(1)\operatorname{dom} f = \operatorname{dom} g.

(2)\forall x \in \operatorname{dom} f = \operatorname{dom} g 都有 f(x) = g(x).

例如,函数 f 与 g 的对应关系分别是:f(x) = (x^2 - 1)/(x + 1),g(x) = x - 1,那么 f 与 g 不相等,因为 \operatorname{dom} f 是不等于 -1 的实数构成的集合,而 \operatorname{dom} g 是实数集合.

在所有函数中,从一个集合到另一个集合的函数是一类非常重要的函数. 后面讨论的函数基本上都是这类函数.

定义 5.3 设 A,B 为集合,如果

f \text{ 为函数},\ \operatorname{dom} f = A,\ \operatorname{ran} f \subseteq B

则称 f 为从 A 到 B 的函数,记作 f: A \rightarrow B.

解读:定义 5.1 里「唯一」二字是函数与一般二元关系的唯一分界。定义 5.3 又把 \operatorname{dom} f = A 写死,所以「从 A 到 B」要求 A 中每个元素都有值,而 B 中元素可以没有原像(这才有后面的满射概念)。

例 5.1 下面是一些函数的例子.

(1)f: \mathbf{N} \rightarrow \mathbf{N},f(x) = x + 1 是从 \mathbf{N} 到 \mathbf{N} 的函数.

(2)g: \mathbf{R} \rightarrow \mathbf{R},g(x) = x^2 + 2x - 1 是从 \mathbf{R} 到 \mathbf{R} 的函数.

(3)h: A \rightarrow P(A),h(x) = \{x\} 是从集合 A 到幂集 P(A) 的函数.

(4)设 V = \{a_1, a_2, \cdots, a_n\} 是 n 项任务的集合,其中每项任务的执行时间都是正整数. 函数 t: V \rightarrow \mathbf{N} 表示一个调度方案,对于任务 a_i,t(a_i) = t_i,i = 1, 2, \cdots, n. 其中 t_i 是第 i 项任务的开始时间.

下面考虑对 f: A \rightarrow B 函数的计数. 设 |A| = m,|B| = n,m, n > 0,那么有多少个不同的从 A 到 B 的函数呢?考虑某个从 A 到 B 的函数 f,f 应该具有下述形式:

f = \{\langle a_1, b_{i_1} \rangle, \langle a_2, b_{i_2} \rangle, \cdots, \langle a_m, b_{i_m} \rangle\}

其中 m 个有序对的第二元素选自 B 集合,每个有 n 种不同的选择,每一种选法对应了一个函数,总共有 n^m 种选法,因此有 n^m 个不同的函数. 使用 B^A 的符号表示所有函数的集合,那么有下述定义.

定义 5.4 所有从 A 到 B 的函数的集合记作 B^A,符号化表示为

B^A = \{f \mid f: A \rightarrow B\}

若 |A| = m,|B| = n,m, n \neq 0,则 |B^A| = n^m.

例 5.2 设 A = \{1, 2, 3\},B = \{a, b\},求 B^A.

解 B^A = \{f_0, f_1, \cdots, f_7\},其中

f_0 = \{\langle 1, a \rangle, \langle 2, a \rangle, \langle 3, a \rangle\}
f_1 = \{\langle 1, a \rangle, \langle 2, a \rangle, \langle 3, b \rangle\}
f_2 = \{\langle 1, a \rangle, \langle 2, b \rangle, \langle 3, a \rangle\}
f_3 = \{\langle 1, a \rangle, \langle 2, b \rangle, \langle 3, b \rangle\}
f_4 = \{\langle 1, b \rangle, \langle 2, a \rangle, \langle 3, a \rangle\}
f_5 = \{\langle 1, b \rangle, \langle 2, a \rangle, \langle 3, b \rangle\}
f_6 = \{\langle 1, b \rangle, \langle 2, b \rangle, \langle 3, a \rangle\}
f_7 = \{\langle 1, b \rangle, \langle 2, b \rangle, \langle 3, b \rangle\}

下面给出一些重要函数的实例.

定义 5.5 (1)设 f: A \rightarrow B,如果存在 c \in B 使得对所有的 x \in A 都有 f(x) = c,则称 f: A \rightarrow B 是常函数.

(2)称 A 上的恒等关系 I_A 为 A 上的恒等函数,对所有的 x \in A 都有 I_A(x) = x.

(3)设 \langle A, \preccurlyeq \rangle,\langle B, \preccurlyeq \rangle 为偏序集,f: A \rightarrow B,如果对任意的 x_1,x_2 \in A,x_1 \prec x_2,就有 f(x_1) \preccurlyeq f(x_2),则称 f 为单调递增的;如果对任意的 x_1,x_2 \in A,x_1 \prec x_2,就有 f(x_1) \prec f(x_2),则称 f 为严格单调递增的. 类似地也可以定义单调递减和严格单调递减的函数.

(4)设 A 为集合,对于任意的 A' \subseteq A,A' 的特征函数 \chi_{A'}: A \rightarrow \{0, 1\} 定义为

\chi_{A'}(a) = 1 \qquad a \in A'
\chi_{A'}(a) = 0 \qquad a \in A - A'

(5)设 R 是 A 上的等价关系,令

g: A \rightarrow A/R
g(a) = [a] \qquad \forall a \in A

称 g 是从 A 到商集 A/R 的自然映射.

例 5.3 (1)给定偏序集 \langle P(\{a, b\}), R_{\subseteq} \rangle,\langle \{0, 1\}, \leqslant \rangle,其中 R_{\subseteq} 为包含关系,\leqslant 为一般的小于等于关系. 令 f: P(\{a, b\}) \rightarrow \{0, 1\},f(\varnothing) = f(\{a\}) = f(\{b\}) = 0,f(\{a, b\}) = 1,则 f 是单调递增的,但不是严格单调递增的.

(2)设 A = \{a, b, c\},A 的每一个子集 A' 都对应于一个特征函数,不同的子集对应于不同的特征函数. 如

\chi_{\varnothing} = \{\langle a, 0 \rangle, \langle b, 0 \rangle, \langle c, 0 \rangle\}, \chi_{\{a, b\}} = \{\langle a, 1 \rangle, \langle b, 1 \rangle, \langle c, 0 \rangle\}

(3)给定集合 A 和 A 上的等价关系 R,就可以确定一个自然映射 g: A \rightarrow A/R. 不同的等价关系确定不同的自然映射,如果 A = \{1, 2, 3\},对于等价关系 R = \{\langle 1, 2 \rangle, \langle 2, 1 \rangle\} \cup I_A,对应的自然映射是

g: A \rightarrow A/R,\ g(1) = g(2) = \{1, 2\},\ g(3) = \{3\}

而对于恒等关系 I_A,自然映射是

g: A \rightarrow A/I_A,\ g(1) = \{1\},\ g(2) = \{2\},\ g(3) = \{3\}

在算法分析与设计中经常用到定义在正整数集合上的函数 f: \mathbf{Z}^+ \rightarrow \mathbf{Z}^+. 例如二分检索算法最坏情况下的时间复杂度 f(n) = O(\log n)①,插入排序算法最坏情况下的时间复杂度为 O(n^2) 等. 这里的 n 表示输入规模,检索问题中的 n 表示被检索的线性表中的元素个数,排序问题中的 n 则表示被排序的数组中的元素个数. 函数 f(n) 代表算法所做基本运算的次数. 在二分检索和排序中的基本运算是比较运算. 一般说来,对于规模为 n 的各种输入情况,算法所做基本运算的次数是不一样的. 考虑二分检索,如果输入的 n 个元素是 1, 2, \cdots, n,而被检索的元素恰好就是处在中间的那个数,那么通过 1 次比较,算法就结束了,然后输出这个数在数组中的位置. 如果被检索的数是其他数,那么必须通过更多次的比较,才能得到结果. 所谓最坏情况就是对同样长度的数组所做的比较运算次数最多的情况. 对于二分搜索,每比较 1 次,需要检索的数的个数就减少一半,至多经过 \log n + 1 次比较就可以得到结果. 因此,表示基本运算次数的函数的阶是 \log n,使用大 O 记号,记作 O(\log n). 如果基本运算的次数与输入规模 n 无关,是个常数,则记作 O(1). 对于同一个问题可以设计各种不同的算法,排序算法就有插入排序、快速排序、归并排序、堆排序等许多算法. 哪种算法效率更高?这依赖于它们的复杂度函数的阶. 阶越高,效率就越低. 不难看出,当 n 增加时,复杂度函数 n^2 显然比 n\log n 增长得更快. 这意味着插入排序比归并排序在 n 较大时效率要低,因此估计算法复杂度函数的阶在算法分析中是经常要做的工作. 关于这方面的应用将在后面的第 10 章和 13 章给予更详细的介绍.

① 在算法分析中经常使用 \log n 来表示 \log_2 n. 由于 \log n = \ln n/\ln 2,因此有 \log n = \Theta(\ln n). 这个等式的含义是:\log n = O(\ln n) 且 \ln n = O(\log n),即 \ln n 与 \log_2 n 的阶相等.

5.1.2 函数的像与完全原像

函数是特殊的关系,因此关系的各种运算,如并、交、补、求定义域、值域等都适合于函数. 除此之外,对于从 A 到 B 的函数,还可以求集合的像和完全原像.

定义 5.6 设函数 f: A \rightarrow B,A_1 \subseteq A,B_1 \subseteq B.

(1)A_1 在 f 下的像 f(A_1) = \{f(x) \mid x \in A_1\},当 A_1 = A 时,f(A) 称为函数的像.

(2)B_1 在 f 下的完全原像 f^{-1}(B_1) = \{x \mid x \in A \wedge f(x) \in B_1\}.

这里要注意函数的值与函数的像之间的区别,函数值 f(x) \in B,而像 f(A_1) \subseteq B. 一般说来,对于 A_1 \subseteq A,f^{-1}(f(A_1)) \neq A_1,但是 A_1 \subseteq f^{-1}(f(A_1)). 同样地,对于 B_1 \subseteq B,也有 f(f^{-1}(B_1)) \subseteq B_1. 例如,

A = \{1, 2, 3\},B = \{a, b, c\},A_1 = \{1\},B_1 = \{b, c\},f = \{\langle 1, a \rangle, \langle 2, a \rangle, \langle 3, b \rangle\}

那么

f^{-1}(f(A_1)) = f^{-1}(\{a\}) = \{1, 2\}, \quad A_1 \subset f^{-1}(f(A_1))
f(f^{-1}(B_1)) = f(\{3\}) = \{b\}, \quad f(f^{-1}(B_1)) \subset B_1

解读:像与完全原像是两个方向相反的映射:f(A_1) 可能比 A_1 的元素「变少」(多个自变量共用一个值),f^{-1}(B_1) 则可能比 B_1 的元素「变多」。这就是两个包含式都是真包含而非等号的原因。

5.1.3 函数的性质

函数的性质指的是函数 f: A \rightarrow B 的满射、单射、双射的性质. 下面给出这些性质的定义.

定义 5.7 设 f: A \rightarrow B,

(1)若 \operatorname{ran} f = B,则称 f: A \rightarrow B 是满射的.

(2)若 \forall y \in \operatorname{ran} f 都存在唯一的 x \in A 使得 f(x) = y,则称 f: A \rightarrow B 是单射的.

(3)若 f: A \rightarrow B 既是满射又是单射的,则称 f: A \rightarrow B 是双射的.

对于单射函数也有另外一个等价的定义. 设 f: A \rightarrow B,对于 x_1,x_2 \in A,如果 x_1 \neq x_2,则 f(x_1) \neq f(x_2),那么称 f: A \rightarrow B 为单射的. 一般函数从自变量到值的对应规则既允许一对一,也允许多对一;而单射函数只允许一对一的对应,因此单射函数也称作一对一的函数.

解读:满射只看值域是否铺满 B,单射只看不同自变量是否给出不同值,两者互不蕴含。双射要求同时成立,这才能保证存在反函数。

例 5.4 判断下面函数是否为单射、满射、双射的,为什么?

(1)f: \mathbf{R} \rightarrow \mathbf{R},f(x) = -x^2 + 2x - 1.

(2)f: \mathbf{Z}^+ \rightarrow \mathbf{R},f(x) = \ln x,\mathbf{Z}^+ 为正整数集.

(3)f: \mathbf{R} \rightarrow \mathbf{Z},f(x) = \lfloor x \rfloor.

(4)f: \mathbf{R} \rightarrow \mathbf{R},f(x) = 2x + 1.

(5)f: \mathbf{R}^+ \rightarrow \mathbf{R}^+,f(x) = (x^2 + 1)/x,其中 \mathbf{R}^+ 为正实数集.

解 (1)f 在 x = 1 取得极大值 0,因此不是满射的;f(0) = f(2) = -1,因此不是单射的.

(2)f 是单调上升的,是单射的. 但不满射,\operatorname{ran} f = \{\ln 1, \ln 2, \cdots\}.

(3)\operatorname{ran} f = \mathbf{Z},f 是满射的. f 不是单射的,因为 f(1.4) = f(1.1) = 1.

(4)f 是满射、单射、双射的,因为它是单调函数并且 \operatorname{ran} f = \mathbf{R}.

(5)f 有极小值 f(1) = 2,且当 x \rightarrow 0 和 +\infty 时,f(x) 都趋于 +\infty. 因此它既不是单射的也不是满射的.

判断函数 f: A \rightarrow B 是否为满射、单射、双射的依据是定义. 判断满射就是检查 B 中的每个元素是否都是函数值. 如果在 B 中找到不是函数值的元素,那么 f 就不是满射的. 判断单射的方法就是检查不同的自变量是否对应于不同的值. 对于普通的初等函数,可以通过其图像的单调性质来确定. 如果函数图像是严格单调上升(或者严格单调下降),那么函数是单射的.

例 5.5 对给定的 A,B 和 f,判断是否构成函数 f: A \rightarrow B. 如果是,说明 f: A \rightarrow B 是否为单射、满射、双射的;如果不是,请说明理由,并根据要求进行计算.

(1)A = \{1, 2, 3, 4, 5\},B = \{6, 7, 8, 9, 10\},f = \{\langle 1, 8 \rangle, \langle 3, 9 \rangle, \langle 4, 10 \rangle, \langle 2, 6 \rangle, \langle 5, 9 \rangle\}.

(2)A, B 同(1),f = \{\langle 1, 7 \rangle, \langle 2, 6 \rangle, \langle 4, 5 \rangle, \langle 1, 9 \rangle, \langle 5, 10 \rangle\}.

(3)A, B 同(1),f = \{\langle 1, 8 \rangle, \langle 3, 10 \rangle, \langle 2, 6 \rangle, \langle 4, 9 \rangle\}.

(4)A = B = \mathbf{R},f(x) = x^3.

(5)A = B = \mathbf{R}^+,f(x) = x/(x^2 + 1).

(6)A = B = \mathbf{R} \times \mathbf{R},f(\langle x, y \rangle) = \langle x + y, x - y \rangle,令 L = \{\langle x, y \rangle \mid x, y \in \mathbf{R} \wedge y = x + 1\},计算 f(L).

(7)A = \mathbf{N} \times \mathbf{N},B = \mathbf{N},f(\langle x, y \rangle) = |x^2 - y^2|. 计算 f(\mathbf{N} \times \{0\}),f^{-1}(\{0\}).

解 (1)能构成 f: A \rightarrow B,f: A \rightarrow B 既不是单射也不是满射. 因为 f(3) = f(5) = 9,且 7 \notin \operatorname{ran} f.

(2)不能构成 f: A \rightarrow B,因为 f 不是函数. \langle 1, 7 \rangle \in f 且 \langle 1, 9 \rangle \in f,与函数定义矛盾.

(3)不能构成 f: A \rightarrow B,因为 \operatorname{dom} f = \{1, 2, 3, 4\} \neq A.

(4)能构成 f: A \rightarrow B,且 f: A \rightarrow B 是双射的.

(5)能构成 f: A \rightarrow B,f: A \rightarrow B 既不是单射的也不是满射的. 因为该函数在 x = 1 取极大值 f(1) = 1/2. 函数不是单调的,且 \operatorname{ran} f \neq \mathbf{R}^+.

(6)能构成 f: A \rightarrow B,且 f: A \rightarrow B 是双射的. f(L) = \{\langle 2x + 1, -1 \rangle \mid x \in \mathbf{R}\} = \mathbf{R} \times \{-1\}.

(7)能构成 f: A \rightarrow B,f: A \rightarrow B 既不是单射的也不是满射的. 因为 f(\langle 1, 1 \rangle) = f(\langle 2, 2 \rangle) = 0,2 \notin \operatorname{ran} f. 且

f(\mathbf{N} \times \{0\}) = \{n^2 - 0^2 \mid n \in \mathbf{N}\} = \{n^2 \mid n \in \mathbf{N}\}
f^{-1}(\{0\}) = \{\langle n, n \rangle \mid n \in \mathbf{N}\}

例 5.6 设 f_1,f_2,f_3,f_4 \in \mathbf{R}^{\mathbf{R}},且

f_1(x) = \begin{cases} 1 & x \geqslant 0 \\ -1 & x < 0 \end{cases}
f_2(x) = x
f_3(x) = \begin{cases} -1 & x \in \mathbf{Z} \\ 1 & x \notin \mathbf{Z} \end{cases}
f_4(x) = 1

令 E_i 是由 f_i 导出的等价关系,i = 1, 2, 3, 4,即 xE_iy \Leftrightarrow f_i(x) = f_i(y). 令 S 是 4 个划分的集合 \{\mathbf{R}/E_1, \mathbf{R}/E_2, \mathbf{R}/E_3, \mathbf{R}/E_4\},在 S 上如下定义划分之间的加细关系 T:

\langle \mathbf{R}/E_i, \mathbf{R}/E_j \rangle \in T \Leftrightarrow \forall x(x \in \mathbf{R}/E_i \rightarrow \exists y(y \in \mathbf{R}/E_j \wedge x \subseteq y))

即对于 \mathbf{R}/E_i 的任何划分块 x,都存在 \mathbf{R}/E_j 的划分块 y 使得 y 包含 x,那么 \langle \mathbf{R}/E_i, \mathbf{R}/E_j \rangle 属于 T,即划分 \mathbf{R}/E_i 是划分 \mathbf{R}/E_j 的加细. 不难证明 T 是 S 上的偏序.

(1)画出偏序集 \langle S, T \rangle 的哈斯图.

(2)g_i: \mathbf{R} \rightarrow \mathbf{R}/E_i 是自然映射,求 g_i(0),i = 1, 2, 3, 4.

(3)对每个 i,说明 g_i 的性质(单射、满射、双射).

解 (1)因为 E_2 是恒等关系,对应的划分 \mathbf{R}/E_2 具有无数个划分块,每块只含有 1 个元素,是最细的划分,因此在加细关系的偏序集中为最小元. E_4 是全域关系,对应的划分 \mathbf{R}/E_4 只有 1 个划分块,是最粗的划分,因此在加细关系的偏序集中是最大元. E_1 对应的划分 \mathbf{R}/E_1 有 2 个划分块,所有的非负实数构成一块,所有的负数构成另一块. 因此 \mathbf{R}/E_1 比 \mathbf{R}/E_2 粗,比 \mathbf{R}/E_4 细,介于它们之间. 类似地,E_3 对应的划分 \mathbf{R}/E_3 也由两块构成,所有的整数在一块,其他的实数在另一块. 它也介于 \mathbf{R}/E_1 和 \mathbf{R}/E_3 之间. 不难看出,\mathbf{R}/E_1 与 \mathbf{R}/E_3 之间不存在加细关系,它们是不可比的. 因此哈斯图如图 5.1 所示.

(2)g_i(0) 是所有与 0 等价的元素构成的集合,i = 1, 2, 3, 4. 因此

g_1(0) = \{x \mid x \in \mathbf{R} \wedge x \geqslant 0\},\ g_2(0) = \{0\},
g_3(0) = \mathbf{Z},\ g_4(0) = \mathbf{R}

(3)g_1,g_2,g_3,g_4 都是满射的;其中 g_2 是双射的.

原书图5.1 例 5.6 的哈斯图

例 5.7 对于给定的集合 A 和 B 构造双射函数 f: A \rightarrow B.

(1)A = P(\{1, 2, 3\}),B = \{0, 1\}^{\{1, 2, 3\}}.

(2)设 A、B 为实数区间,其中 A = [0, 1],B = [1/4, 1/2].

(3)A = \mathbf{Z},B = \mathbf{N}.

(4)设 A、B 为实数区间,其中 A = [\pi/2, 3\pi/2],B = [-1, 1].

解 (1)A = \{\varnothing, \{1\}, \{2\}, \{3\}, \{1, 2\}, \{1, 3\}, \{2, 3\}, \{1, 2, 3\}\}. B = \{f_0, f_1, \cdots, f_7\},其中

f_0 = \{\langle 1, 0 \rangle, \langle 2, 0 \rangle, \langle 3, 0 \rangle\}
f_1 = \{\langle 1, 0 \rangle, \langle 2, 0 \rangle, \langle 3, 1 \rangle\}
f_2 = \{\langle 1, 0 \rangle, \langle 2, 1 \rangle, \langle 3, 0 \rangle\}
f_3 = \{\langle 1, 0 \rangle, \langle 2, 1 \rangle, \langle 3, 1 \rangle\}
f_4 = \{\langle 1, 1 \rangle, \langle 2, 0 \rangle, \langle 3, 0 \rangle\}
f_5 = \{\langle 1, 1 \rangle, \langle 2, 0 \rangle, \langle 3, 1 \rangle\}
f_6 = \{\langle 1, 1 \rangle, \langle 2, 1 \rangle, \langle 3, 0 \rangle\}
f_7 = \{\langle 1, 1 \rangle, \langle 2, 1 \rangle, \langle 3, 1 \rangle\}

令 f: A \rightarrow B,且满足

f(\varnothing) = f_0,f(\{1\}) = f_1,f(\{2\}) = f_2,f(\{3\}) = f_3,

f(\{1, 2\}) = f_4,f(\{1, 3\}) = f_5,f(\{2, 3\}) = f_6,f(\{1, 2, 3\}) = f_7

(2)令 f: [0, 1] \rightarrow [1/4, 1/2],f(x) = (x + 1)/4.

(3)将 \mathbf{Z} 中元素以下列顺序排列并与 \mathbf{N} 中元素对应:

\begin{array}{cccccccc} \mathbf{Z}: & 0 & -1 & 1 & -2 & 2 & -3 & 3 & \cdots \\ & \downarrow & \downarrow & \downarrow & \downarrow & \downarrow & \downarrow & \downarrow & \\ \mathbf{N}: & 0 & 1 & 2 & 3 & 4 & 5 & 6 & \cdots \end{array}

则这种对应所表示的函数是:

f: \mathbf{Z} \rightarrow \mathbf{N},\ f(x) = \begin{cases} 2x & x \geqslant 0 \\ -2x - 1 & x < 0 \end{cases}

(4)令 f: [\pi/2, 3\pi/2] \rightarrow [-1, 1],f(x) = \sin x.

例 5.8 设

f: \mathbf{R} \times \mathbf{R} \rightarrow \mathbf{R} \times \mathbf{R}
f(\langle x, y \rangle) = \langle x + y, x - y \rangle

证明 f 既是满射的,也是单射的.

证明 任取 \langle u, v \rangle \in \mathbf{R} \times \mathbf{R},存在 \left( \dfrac{u + v}{2}, \dfrac{u - v}{2} \right) 使得

f\left(\left\langle \frac{u+v}{2}, \frac{u-v}{2} \right\rangle\right) = \langle u, v \rangle

因此 f 是满射的.

对于任意的 \langle x, y \rangle,\langle u, v \rangle \in \mathbf{R} \times \mathbf{R},有

f(\langle x, y \rangle) = f(\langle u, v \rangle) \Rightarrow \langle x + y, x - y \rangle = \langle u + v, u - v \rangle
\Rightarrow x + y = u + v, x - y = u - v \Rightarrow x = u, y = v
\Rightarrow \langle x, y \rangle = \langle u, v \rangle

因此 f 是单射的.