好的,我们这次来讲解 “范畴论”(Category Theory)。
我会从直观背景开始,逐步深入到基本定义、例子和核心思想,尽量保持由浅入深、逻辑连贯。
1. 为什么需要范畴论?
在 20 世纪中期,数学家发现许多数学分支(如集合论、群论、拓扑学、代数几何等)的研究中反复出现一些共同的结构模式。比如:
- 集合之间有映射。
- 群之间有同态。
- 拓扑空间之间有连续映射。
- 向量空间之间有线性映射。
这些不同分支的“对象”和它们之间的“映射”在形式上非常类似,而且很多定理可以在这种“对象+映射”的框架下平行地推广。
于是,数学家就想建立一种统一的语言来描述这些结构以及它们之间的关系——这就是范畴论的起源。
2. 范畴的基本定义
一个范畴(Category) \(\mathcal{C}\) 由以下组成:
-
对象(Objects):一类数学对象的收集,记作 \(\mathrm{Ob}(\mathcal{C})\)。
例如:所有集合构成的对象类,所有群构成的对象类等。 -
态射(Morphisms):
对任意两个对象 \(A, B \in \mathrm{Ob}(\mathcal{C})\),有一集合 \(\mathrm{Hom}_{\mathcal{C}}(A, B)\),其中的元素称为从 \(A\) 到 \(B\) 的态射(可以理解为箭头 \(A \to B\))。
态射记作 \(f : A \to B\),\(A\) 是定义域(domain),\(B\) 是值域(codomain)。 -
态射的复合:
如果有 \(f : A \to B\) 和 \(g : B \to C\),则存在复合态射 \(g \circ f : A \to C\)。 -
结合律:
对 \(f : A \to B,\ g : B \to C,\ h : C \to D\),有
\[ (h \circ g) \circ f = h \circ (g \circ f). \]
- 单位态射:
对每个对象 \(A\),存在单位态射 \(\mathrm{id}_A : A \to A\),使得对任意 \(f : A \to B\) 有
\[ f \circ \mathrm{id}_A = f, \quad \mathrm{id}_B \circ f = f. \]
3. 一些例子
例 1:集合范畴 \(\mathbf{Set}\)
- 对象:所有集合。
- 态射:集合之间的映射(函数)。
- 复合:函数的复合。
- 单位态射:恒等映射。
例 2:群范畴 \(\mathbf{Grp}\)
- 对象:所有群。
- 态射:群同态。
- 复合与单位类似。
例 3:拓扑空间范畴 \(\mathbf{Top}\)
- 对象:拓扑空间。
- 态射:连续映射。
例 4:一个偏序集构成的范畴
- 对象:偏序集 \((P, \le)\) 的元素。
- 态射:如果 \(a \le b\),则存在唯一态射 \(a \to b\);否则没有。
- 复合:由传递性 \(a \le b,\ b \le c \implies a \le c\) 给出。
- 单位态射:由自反性 \(a \le a\) 给出。
4. 范畴论的核心思想:关注态射和关系
范畴论不关心对象的“内部结构”,而是关心对象之间的态射以及它们如何交互。
比如在集合论中,我们可以问一个集合有多少元素;但在范畴论中,我们更关注“如何通过态射与其他对象联系”。
这种“外部观点”使得很多概念可以定义在任意范畴中,而不依赖于具体分支。
5. 函子(Functor)
范畴之间的“映射”就是函子。
一个(协变)函子 \(F : \mathcal{C} \to \mathcal{D}\) 包含:
- 对象映射:将 \(\mathcal{C}\) 的对象 \(A\) 映为 \(\mathcal{D}\) 的对象 \(F(A)\)。
- 态射映射:将 \(f : A \to B\) 映为 \(F(f) : F(A) \to F(B)\)。
- 保持单位:\(F(\mathrm{id}_A) = \mathrm{id}_{F(A)}\)。
- 保持复合:\(F(g \circ f) = F(g) \circ F(f)\)。
例子:
- 遗忘函子 \(U : \mathbf{Grp} \to \mathbf{Set}\) 将群映到它的底层集合,群同态映到底层函数。
- 自由群函子 \(F : \mathbf{Set} \to \mathbf{Grp}\) 将集合映到它生成的自由群。
6. 自然变换(Natural Transformation)
有时我们需要比较两个函子 \(F, G : \mathcal{C} \to \mathcal{D}\)。
一个自然变换 \(\eta : F \Rightarrow G\) 是一族 \(\mathcal{D}\) 的态射 \(\eta_A : F(A) \to G(A)\)(对每个 \(A \in \mathcal{C}\)),使得对任意 \(f : A \to B\),下面的图交换:
\[\begin{CD} F(A) @>{\eta_A}>> G(A) \\ @V{F(f)}VV @VV{G(f)}V \\ F(B) @>>{\eta_B}> G(B) \end{CD} \]
即 \(G(f) \circ \eta_A = \eta_B \circ F(f)\)。
自然变换是“态射的态射”,是范畴论中定义概念之间自然性的精确工具。
7. 泛性质(Universal Property)
范畴论中很多重要概念(如积、余积、极限、拉回等)不是通过构造定义的,而是通过泛性质描述的。
泛性质说:某个对象连同一些态射,使得它与其它所有类似对象相比,存在唯一的态射使得某个图表交换。
例如乘积的泛性质:
在范畴 \(\mathcal{C}\) 中,对象 \(A\) 与 \(B\) 的乘积是一个对象 \(P\) 加上态射 \(p_1 : P \to A\) 和 \(p_2 : P \to B\),使得对任意对象 \(Q\) 与态射 \(q_1 : Q \to A,\ q_2 : Q \to B\),存在唯一态射 \(u : Q \to P\) 使得 \(p_1 \circ u = q_1\) 且 \(p_2 \circ u = q_2\)。
在 \(\mathbf{Set}\) 中,这就是笛卡尔积;在 \(\mathbf{Grp}\) 中,这就是群的直积。
8. 范畴论的意义
范畴论提供了:
- 统一语言:在不同数学分支间翻译结果。
- 抽象框架:将证明中的“集合元素”推理转化为“箭头”的图表推理,有时更简洁。
- 深层联系:例如,通过范畴的等价揭示不同理论的本质相似性。
- 应用于计算机科学:类型理论、函数式编程中的 Monad 等概念都来自范畴论。
希望这个循序渐进的讲解能帮你初步理解范畴论的基本内容和哲学。如果你想深入某个具体概念(如函子、自然变换、极限、伴随函子等),我可以继续展开。