范畴论中的自然变换
-
基础概念回顾与动机
在范畴论中,一个范畴由对象和对象间的箭头(态射)构成。函子则是范畴间的映射:若 \(\mathcal{C}\) 和 \(\mathcal{D}\) 是范畴,函子 \(F: \mathcal{C} \to \mathcal{D}\) 将每个 \(\mathcal{C}\)-对象映射为 \(\mathcal{D}\)-对象,每个 \(\mathcal{C}\)-态射映射为 \(\mathcal{D}\)-态射,并保持恒等态射和复合运算。
自然变换的动机:考虑两个平行函子 \(F, G: \mathcal{C} \to \mathcal{D}\)。我们想描述如何从 \(F\) 到 \(G\) 的转换,且这种转换需与范畴结构协调。例如,在向量空间范畴中,一个线性变换的自然性需与基的选择无关。 -
自然变换的严格定义
一个自然变换 \(\eta: F \Rightarrow G\) 由以下构成:- 对每个 \(\mathcal{C}\)-对象 \(X\),一个 \(\mathcal{D}\)-态射 \(\eta_X: F(X) \to G(X)\)(称为 \(\eta\) 在 \(X\) 处的分量)。
- 对每个 \(\mathcal{C}\)-态射 \(f: X \to Y\),需满足自然性条件:
\[ G(f) \circ \eta_X = \eta_Y \circ F(f) \]
即下图交换:
\[ \begin{array}{ccc} F(X) & \xrightarrow{\eta_X} & G(X) \\ F(f) \downarrow & & \downarrow G(f) \\ F(Y) & \xrightarrow{\eta_Y} & G(Y) \end{array} \]
-
具体例子:列表与双函子
- 例1(列表的逆转):设 \(\mathcal{C} = \mathbf{Set}\)(集合范畴),函子 \(F = \mathrm{Id}\)(恒等函子),\(G(X) = X^*\)(所有有限列表的集合)。定义 \(\eta_X: X \to X^*\) 为将元素映射为单元素列表。对任意函数 \(f: X \to Y\),有 \(\eta_Y \circ f = (f^*) \circ \eta_X\),其中 \(f^*\) 映射列表的每个元素。这是自然变换。
- 例2(行列式):考虑函子 \(\mathrm{GL}_n, (-)^\times: \mathbf{CRing} \to \mathbf{Grp}\)(从交换环范畴到群范畴)。行列式 \(\det: \mathrm{GL}_n \Rightarrow (-)^\times\) 是自然变换,因对环同态 \(f: R \to S\),有 \(f(\det(M)) = \det(f(M))\)。
-
自然同构与泛性质
若每个分量 \(\eta_X\) 是同构态射,则 \(\eta\) 是自然同构。此时函子 \(F\) 与 \(G\) 等价。
自然变换与泛性质紧密相关:例如,若 \(F\) 是遗忘函子,\(G\) 是自由群函子,单位自然变换 \(\eta: \mathrm{Id} \Rightarrow F \circ G\) 体现了自由群的泛性质。 -
高阶范畴视角
所有小范畴构成范畴 \(\mathbf{Cat}\),其态射是函子。但 \(\mathbf{Cat}\) 实为2-范畴:对象是范畴,1-态射是函子,2-态射是自然变换。自然变换的垂直复合与水平复合满足交换律,形成严格2-范畴结构。 -
在计算与逻辑中的应用
- 程序变换:在函数式编程中,自然变换对应多态函数的协调性(如
map f . reverse = reverse . map f)。 - 类型论:自然变换模型多态函数,确保参数化类型的操作与类型参数无关。
- 数据库理论:模式迁移可通过函子建模,自然变换表示迁移间的数据转换一致性。
- 程序变换:在函数式编程中,自然变换对应多态函数的协调性(如