Skip to content

定义Definition

函数复合

Function composition · Composition of maps

按先 f 后 g 的次序把映射串联为 g∘f。

形式陈述 ​

给定两个函数

f:A→B,g:B→C,

则复合函数

g∘f:A→C

定义为

(g∘f)(a)=g(f(a)).

这个规则确实给出函数:每个 a 先有唯一的 f(a)∈B,它又有唯一的 g(f(a))∈C,因此不存在漏掉输入或输出含糊的问题。

更一般地,只要实际像 f[A]={f(a):a∈A} 落在 g 的定义域内就可逐点复合;在本库的有类型函数约定下,通常直接要求 f 的陪域与 g 的定义域匹配。

复合满足结合律。若

f:A→B,g:B→C,h:C→D,

则对每个 a∈A,

((h∘g)∘f)(a)=h(g(f(a)))=(h∘(g∘f))(a).

两侧的定义域同为 A、陪域同为 D,又在所有输入处同值,才据此得到函数相等。因此可无歧义写成 h∘g∘f。恒等函数 idA:A→A 把 a 送回自身;它满足

idB∘f=f,f∘idA=f.

书写顺序与执行顺序相反:g∘f 表示先用 f,再用 g。

直觉

函数复合是“把输出接到下一步输入”的类型安全流水线。能否复合先由定义域与陪域决定,而不是由公式看起来能否代入决定。

结合律说明多阶段过程可以改变括号而不改变结果;它不说明顺序可以交换。交换两个阶段往往改变类型,甚至让表达式失去定义。

例子与边界

令

f(x)=x+1,g(x)=x2.

则

(g∘f)(x)=(x+1)2,(f∘g)(x)=x2+1,

这里把两个函数都取为 R→R,所以两个方向都合法;在 x=1 处,前者为 4,后者为 2,足以证明复合不交换。证明函数相等必须检查每个输入,证明不等只需一个反例输入。

令 f:R→[0,∞) 为 f(x)=x2, g:[0,∞)→R 为 g(y)=y。这里特意取陪域为 R,使两个方向的带类型复合都匹配;其实际像仍为 [0,∞)。则

g∘f=|⋅|,f∘g=id[0,∞).

因此 g 是 f 的右逆,却不是左逆;一侧复合得到恒等函数不自动推出双射。

若 f:A→B、g:C→D 且 B≠C,不能只因某些 f(a) 偶然属于 C 就把 g∘f 当成总函数 A→D。应缩小定义域、修改陪域或显式证明 f(A)⊆C。

部分函数的复合还要追踪定义域:

dom(g∘f)={a∈dom(f):f(a)∈dom(g)}.

例如 f(x)=x−1 对所有实数有定义,而 g(y)=1/y 在 y=0 处没有定义。复合公式是 1/(x−1),但其定义域是 R∖{1}:输入 1 在第一步仍合法,第二步才失败。因此必须追踪中间值,不能仅取两个原定义域的交集。

推论与应用

把集合看成对象、集合间的函数看成箭头,就得到一个范畴:相邻箭头能复合,恒等函数充当单位,复合满足结合律。这里不必先学习范畴论;前面的三个事实已给出了这个例子的全部复合规则。逆函数由

f−1∘f=idA,f∘f−1=idB

共同刻画。

坐标变换、线性映射、群同态和确定的状态转移,都可以按上述规则串联。微积分的链式法则进一步计算复合后的导数;程序语义中的组合性则要求整个程序的含义由各阶段的含义及其组合方式决定。概率核也有类似的结合结构,不过它的复合需要对中间状态积分,不能直接当作普通函数代入。

参考资料
  • Paul R. Halmos, Naive Set Theory, Dover, 2017, §10.
  • Daniel J. Velleman, How to Prove It, 3rd ed., Cambridge University Press, 2019, Chapter 5.
  • Saunders Mac Lane, Categories for the Working Mathematician, 2nd ed., Springer, 1998, Chapter I.
  • Jeremy Avigad 等,Logic and Proof,在线版 3.18.4,2026 年访问,第 15 章 Functions:复合次序、结合律与单侧逆。
关系图谱66 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系