当数学开始谈论自己:范畴论作为一种语言

合集【数学如隐喻】第 4 期 | v1.0(2026-10-26) | 约 4300 字

一、一个为了说清「自然」而造的词

1945 年,Eilenberg 和 Mac Lane 发表了一篇 64 页的论文。他们本来想做的事很具体:给代数拓扑里那个天天在用、却说不清楚的词——自然——一个严格定义。

数学家说「这个同构是自然的」,意思是它不需要任何额外选择,是"自动"的。可"自动"是什么?没定义。

他们为了回答这个问题,造了两样东西:范畴和函子。然后才把"自然变换"定义出来。

结果,那篇论文成了范畴论的起点。

这件事本身值得记一句:范畴论不是为了一统天下而生的,它是为了给一个形容词下定义而生的。一个形容词,最后长成了一门语言。


二、它不描述对象,只描述箭头

先看范畴的定义。一共四样东西:

组成是什么
对象一堆东西,不需要有内部结构
态射(箭头)对象之间的映射,每个有确定的源和靶
复合两个接得上的箭头,能接成一个
恒等每个对象上有一个"什么都不做"的箭头

外加两条规矩:复合要结合,恒等要中性。

就这些。没有"元素",没有"属于",没有"内部"。

一个最省事的例子:偏序集就是范畴。对象是元素,从 $x$ 到 $y$ 有一个箭头当且仅当 $x \le y$。

取 $a < b < c$ 三个对象,全部态射是六个:$(a,a),(a,b),(a,c),(b,b),(b,c),(c,c)$。

我们验过:恒等齐备、复合封闭、结合律成立。

注意这里发生了什么:$a$ 是什么?不知道。$a$ 内部有什么?没有。$a$ 只知道三件事——它到 $a$ 有箭头,到 $b$ 有箭头,到 $c$ 有箭头。

对象被清空了,只剩下它指向谁、谁指向它。

上一篇讲 Yoneda 时说的是"对象由关系决定"。这里更狠:在这个语言里,对象压根就没有"内部"这个位置。


三、后果:数学第一次能谈论自己

有了范畴,就能定义范畴之间的映射——函子。函子把对象送到对象,把箭头送到箭头,并且保持复合和恒等。

有了函子,就能定义函子之间的映射——自然变换。它是"一族箭头",满足每个方块都交换。

于是出现了一个以前没有的层级:

对象  →  范畴  →  函子  →  自然变换
        (对象的家)  (范畴之间的映射)  (函子之间的映射)

这是数学史上第一次,数学有了一门语言,可以谈论"所有数学结构"而不必逐个谈。

不是"这个群"和"那个群",是"所有群构成的范畴";不是"拓扑空间之间的连续映射",是"拓扑空间范畴到群范畴的函子"。

而且这层抬升可以一直往上:范畴构成范畴(记作 $\mathbf{Cat}$),函子构成范畴,自然变换是那些范畴里的箭头。

函子长什么样:一个能算的例子

光说「映射」太虚。看一个真在用的。

取拓扑空间范畴(对象是空间,箭头是连续映射)与群范畴(对象是群,箭头是同态)。基本群 $\pi_1$ 是一个函子:

函子要做什么基本群怎么做
对象送到对象空间 $X$ 送到群 $\pi_1(X)$
箭头送到箭头连续映射 $f \colon X \to Y$ 送到同态 $f_* \colon \pi_1(X) \to \pi_1(Y)$
保持恒等$(\mathrm{id}_X)_* = \mathrm{id}_{\pi_1(X)}$
保持复合$(g \circ f)_* = g_* \circ f_*$

四条都对,所以它真是个函子。

它有什么用? 把「两个空间是否同胚」这个几何问题,翻译成「两个群是否同构」这个代数问题。翻译之后可以算。

但翻译会丢东西。 不同的空间可以有同构的基本群——这时候你无法从群反推空间。

这个「丢」不是缺陷,是函子的本性:它保证「同构的空间有同构的群」,但不保证反过来。所以得到的是必要条件,不是充分条件。

这一点第五节还要用到:范畴论的自由,恰恰来自它允许你选择「丢多少」。

「自然」到底是什么:双重对偶

回到开头那个问题。Eilenberg 和 Mac Lane 要定义的「自然」,用这个例子一看就懂。

设 $V$ 是向量空间,$V^*$ 是它的对偶空间。有两个做法都能把 $V$ 映到某个「对偶」上:

做法一:$V \to V^*$。要给出一个具体映射,你必须选一组基——选了基才有坐标去配对。换一组基,映射就变了。这叫不自然。

做法二:$V \to V^{**}$,定义为 $v \mapsto (f \mapsto f(v))$。这里没有任何选择:给你一个 $v$、给你一个 $f$,就把 $f$ 作用在 $v$ 上。换成什么基都一样。

做法二就是「自然」的。

所以 Eilenberg–Mac Lane 的「自然」,精确地说是:不依赖任何选择、能对所有对象同时给出的映射族。这就是自然变换。

顺便一个冷知识:$V \to V^{**}$ 在有限维时是同构,无限维时只是单射。是否同构,恰好接上上一篇那个「自反」的问题。

数学开始谈论自己了。


四、代价:谈论自己会撞墙

但这件事不是免费的。

$\mathbf{Cat}$ ——所有小范畴构成的范畴——它自己不是小范畴。

道理不难看:如果 $\mathbf{Cat}$ 是小范畴,它的对象就是一个集合,装着所有小范畴。那么可以按分离原则挑出"那些不包含自身的小范畴",用它们造一个新范畴——然后问它是否包含自身。

这就是 1901 年那个悖论,换了一身衣服。

所以范畴论必须一生下来就分大小:小范畴(对象和箭头都是集合)、大范畴(不是)。$\mathbf{Cat}$ 是大范畴。

一门能谈论所有数学结构的语言,不能无代价地谈论"自己的全体"。

这不是技术瑕疵,是结构性的。凡是足够强到能谈论自己的语言,都要在这里划一条线。数学在这里,和逻辑、和自然语言一样,撞上了同一堵墙。


五、最深的自由:你可以选择什么叫「一样」

到这里该说本期真正想说的事。

在集合论里,相等是给定的。两个集合要么相等,要么不等,由外延公理判定:元素一样就相等。

在范畴论里,"一样"是可以选的。至少有三档:

档次名字要求
最严严格相等对象完全相同
中等同构存在一对互逆的箭头
最松等价存在一个满忠实且本质满的函子

前两档在集合论里也有,第三档是全新的。

而且第三档给出的答案常常出人意料。举个能算的例子:

范畴 C:只有一个对象 $\ast$,只有一个箭头 $\mathrm{id}_\ast$。

范畴 D:两个对象 $A, B$,四个箭头——$\mathrm{id}_A$、$\mathrm{id}_B$,以及一对互逆的 $f \colon A \to B$、$g \colon B \to A$(满足 $g \circ f = \mathrm{id}_A$,$f \circ g = \mathrm{id}_B$)。

C 和 D 一样吗?

  • 同构?不。范畴同构要求对象之间有双射:1 个对 2 个,做不到。
  • 等价?是。取函子 $F$ 把 $\ast$ 送到 $A$。它满忠实(两边 Hom 集都是 1 元集),而且本质满($B$ 与 $A$ 同构)。

所以:不等价吗?不,等价。一样吗?不一样。

这不是文字游戏。它的意思是:范畴论允许你把"两个对象、彼此同构"和"一个对象"当成同一件事来看。

为什么这是「自由」

因为选择用哪一档,是你自己定的。

如果你在写算法、要实现数据结构,你多半要"同构"甚至"严格相等"——你需要具体的东西。如果你在做分类、在找结构的不变量,你要的是"等价"——具体是哪个实例不重要。

这是自由,但不是随便的自由。一旦你选了"等价",你就必须只使用那些在等价下不变的性质。你不能一边说"它们一样",一边又拿"对象个数"作论据。

选哪一档是自由的,选完要守规矩是必须的。

这和上一篇是同一件事的两面:Yoneda 说"对象由关系决定",这里说"那关系之间的'一样',也由你自己定义"。自由度不是没有了,是往上挪了一层。


六、回到自由

这一期讲的是语言层的自治。

前几期的自由,是在已有的语言里选:选公理(第 2 期)、选用哪套关系描述对象(第 3 期)。

这一期的自由更深一层:你可以选"什么叫一样"。这是给语言本身立法。

但代价也更深:

  • 你造了一门能谈论所有数学结构的语言($\mathbf{Cat}$)
  • 它立刻撞上"不能无代价谈论自己"的墙
  • 你必须选一档"一样",然后一辈子只用这一档

自由越大,要守的规矩越硬。这句话到这里是第三次出现了,而且一次比一次硬。


三个小自测

1. 为什么偏序集能当范畴?它甚至连"映射"都没有。

因为 $x \le y$ 就是一条箭头。只要有源、有靶、能复合($x \le y$ 且 $y \le z$ 就给 $x \le z$)、有恒等($x \le x$),范畴的四样东西就齐了。箭头不一定是函数。

2. 如果我用"等价"来看两个范畴,我还能问"这个范畴有几个对象"吗?

不能当不变量用。等价允许对象个数改变(上面 1 个和 2 个的例子)。能问的是"它有几个同构类"——那才是等价不变的。

3. 为什么 $\mathbf{Cat}$ 不能是小范畴?这个限制能绕开吗?

绕不开。凡是能表达"所有小范畴"的集合都会重新生成那个自指结构。可以绕的只有一种方式:换一个更弱的基础(比如不用集合论而用类型论),但那不是绕开,是把墙挪到别处。


最后一句

范畴论的野心,是让数学用一门语言谈论自己。

它做到了,但做到的方式很有意思:它不是给数学拍一张全景照,而是给数学造了一套描述"怎么连"的语法。

而语法有一个特点:它能说的,永远比它说出来的多。这就是为什么到了这一步,数学还需要别的东西——下一步要谈的,是那件东西在翻译中丢掉的部分。

如果你只记住一句:范畴论的自由,在于它允许你重新定义什么叫「一样」。这是它给数学最大的一份礼物,也是最难守住的一份。