抽象废话的直观入门 - LessWrong
与John Wentworth的实用范畴论介绍不同,本文针对好奇其无用表现者,通过“恢复标签”游戏提供快速直觉。
The arcade machine
该“游戏”在一台拥有三个屏幕的街机上进行。

Left screen
透过左侧屏幕,我们能看到各种集合,每个集合在二维背景中占据特定位置。游戏允许我们滚动并查看其他位置的集合。集合是事物的无序列表,每个集合都能通过滚动找到。例如,我们有“北美洲国家”集合,也可以写作{加拿大,美国,墨西哥},还有包含两个网站的集合{LessWrong, AstrologyToday},以及更典型的集合,如所有自然数、所有实数等。此外,还存在一些特殊集合,比如除12以外的所有自然数,或包含“加拿大”、“AstrologyToday”以及所有大于13的实数的集合。
左侧屏幕不仅显示集合,还显示集合之间的函数。两个集合A和B之间的函数是一种规则,将A中的每个元素精确分配给B中的一个元素。例如,我们可以想象在今年的不同日子里,LessWrong或AstrologyToday是加拿大、美国和墨西哥最受欢迎的网站。如果列出一个列表,显示某一天这三个国家中每个国家最受欢迎的网站,就定义了一个函数。
我们也可以定义反向的函数:设想某些日子,LessWrong和AstrologyToday的主页都有一篇关于加拿大、美国或墨西哥的报道(但只涉及其中一个国家!)。如果列出每个网站当天报道的国家,就定义了一个函数。
留给读者的练习:证明第一种函数只有8个,第二种只有9个。
就像每个集合都能通过滚动找到一样,任意两个集合之间的每个可能函数也都显示在左侧屏幕上。函数被表示为一种平行线束,每条线从一个集合的元素开始(无重复),并终止于另一个集合的元素(允许重复)。同一束线共享相同颜色,且没有其他束重复使用该颜色。
Central screen
透过中央屏幕,我们看到从左侧屏幕生成的东西:每个集合被压缩成一个无维度的点,同时保持其相对于其他集合的位置。点上添加了标签,标识其来源集合。例如,有标记为“自然数”、“实数”和“2026年7月LessWrong帖子”的点。不过,大多数标签只是列出原始集合的元素,如{LessWrong, AstrologyToday}或{唐纳德·特朗普, 7, 香蕉}。
每个函数(即两个集合元素之间的平行线束)也被压缩成一条箭头。由于没有元素,两个集合之间的不同函数被压缩成起点和终点都相同的箭头。为了区分它们,左侧屏幕中底层线束的颜色被保留在中央屏幕上,作为识别箭头的标签。因此,我们看到了带有标签的点,以及从一个点到另一个点的彩色箭头。与左侧屏幕一样,每种颜色只用于一个箭头。
Right screen
透过右侧屏幕,我们看到集合的范畴。它由中央屏幕生成:我们看到了完全相同的点和箭头配置,但没有任何标签或颜色。
因此,三个屏幕展示的内容各不相同:左侧屏幕是带有元素和线束的集合,中央屏幕是带有标签的点和彩色箭头,右侧屏幕是未标记的点和箭头。然而,这三个网络在某种意义上是一样的:每个屏幕中的每个对象都对应另两个屏幕中的唯一一个对象,对象之间的每个连接也是如此。
Scrolling, dragging, syncing
当我们滚动任意一个屏幕时,其他屏幕也会朝相同方向和相同范围滚动,因此它们始终保持同步(即左侧屏幕始终显示与左侧屏幕所见集合对应的点,没有其他点)。
在每个屏幕中,我们也可以选择一个项目(集合或点)并拖动它。拖动时,连接它的函数或箭头也会被拖动。这会改变对象和连接的“星座”形状,但直观上不会改变网络,即每个对象仍然与之前连接的对象相同,无论我们拉多远。
当我们以这种方式变形三个星座之一时,其他两个屏幕上的星座也会同步变形,通过拖动相应对象并保持相同距离和范围。因此,三个星座可以任意变化,但始终保持同步。
The game: Recover the Labels
该“游戏”在以下约束条件下进行:
- 维持屏幕同步的机制已损坏。
- 有人已经搅乱屏幕很久,以不同方式滚动每个屏幕并变形每个星座。
- 中央屏幕已损坏。
游戏的任务是尽可能将左侧和右侧星座重新同步。这个谜题有一个部分解决方案,无需额外信息,因此建议读者在继续阅读前尝试寻找,特别是因为范畴论有一个特点:事后看来似乎微不足道。
Solution
Finding a special point
要建立连接,我们需要在右侧区域无数未标记的点中找到一两个“特殊点”。这些点没有标签,因此无法区分……除了它们之间的箭头。所以,我们需要找到一个在箭头方面特殊的点。但箭头本身是相同的,因此只有两件事可能不同:箭头的数量和方向(进入或离开)。因此,我们需要寻找有助于识别点的数字。哪些数字可能是特殊的?0、1和无穷大看起来是显而易见的候选。
在尝试其他数字和方向失败后,人们会发现唯一可行的方法是寻找只有一个进入箭头的点。方法如下:
The singleton as terminal point
单元素集是只有一个元素的集合。对于每个集合X,到单元素集只有一个函数,即将单元素集的唯一元素分配给X的每个元素。
范畴中的终端点是一个点,它从每个其他点接收唯一的箭头。
根据这些定义,左侧屏幕上的每个单元素集在右侧屏幕上被描绘为终端点,而右侧屏幕上的每个终端点都来自左侧屏幕上的单元素集。
因此,我们找到了一个连接左右屏幕的通道:我们知道单元素集和终端点是“相同的”。此外,我们是在没有查看中央屏幕(约束3)以及没有使用任何预先建立的同步(约束1和2)的情况下做到这一点的。这应该让你品尝到范畴论那种模糊的感觉:一个对象的信息(在这种情况下,一个集合只包含一个元素)应该包含在其与其他对象的关系中,这种感觉既令人兴奋又微不足道。
The price: the difference between singletons is lost
我们发现单元素集和终端点是等价的。我们能确定哪个单元素集具体对应哪个终端点吗?答案是否定的:终端点只是一个从每个其他对象接收一个进入箭头的点,因此没有东西能区分两个终端点。
范畴论的语言没有能力区分两个终端点,因此出于所有实际目的,所有终端点都是相同的,只有一个终端点。
Syncing the rest of the left screen
如何同步其余星座?同样,我们不需要任何额外信息,因此建议读者在继续阅读前解决这个问题。即使他们在前一步失败,第二步也应该容易得多。
我们应该使用已经知道其身份的点来识别其余部分。怎么做?通过意识到单元素集有一个特殊性质。如果我们考虑从单元素集到集合{1,2}的函数,显然只有两个:要么单元素集的唯一元素被映射到1,要么被映射到2。类似地,从单元素集到集合{1,2,3}有三个函数。更一般地:从单元素集到一个集合的函数数量告诉我们该集合有多少个元素。
这可以应用于点和集的识别:每个有n个元素的集合显示一个从终端点接收n个进入箭头的点。每个有可数无限个元素的集合对应一个从终端点接收可数无限个进入箭头的点,以此类推。
以典型的微不足道/令人兴奋的方式,尽管右侧星座没有显示集合和元素,但我们能恢复每个集合包含多少个元素的信息。更进一步,我们可以决定将“来自终端集的进入箭头”重新命名为“元素”,因为我们意识到我们可能想用元素做的事情都可以用这些箭头来完成。
与第一步一样,代价是拥有相同元素数量的两个集合之间的差异丢失了。集合{1, 2}和{3,4}之间的差异不在于可以从单元素集定义的函数数量(两者都是两个),也不在于可以定义到任何其他集合的函数数量(对于任何集合,都是该集合元素数量的平方);差异在于元素的标签。范畴论没有语言来描述标签,因此在右侧屏幕上,这两个集合被表示为相同的点,从终端集接收两个元素箭头,并且到任何其他点的箭头数量相同。
Collapsing parallel sections
强调一下正在发生的事情可能有益。右侧屏幕保留了左侧屏幕的所有信息,除了标签。因此,当左侧屏幕上的事物除了标签外完全相同时,我们在右侧屏幕上得到相同的事物。
让我们进一步推动这个想法:两个带有不同标签的事物能有多相似?想象左侧屏幕的一部分,包含我们提到的一些集合:自然数、实数、{加拿大, 美国, 墨西哥}、{LessWrong, AstrologyToday}、{唐纳德·特朗普, 7, 香蕉, 灯}。
现在,想象另一部分左侧屏幕,包含非常相似的集合,但每个元素的标签都包含“黄色”:{黄色加拿大, 黄色美国, 黄色墨西哥}, {黄色LessWrong, 黄色AstrologyToday}, {黄色唐纳德·特朗普, 黄色7, 黄色香蕉, 黄色灯}, {黄色1, 黄色2, 黄色3...}以及黄色实数。
直观上,黄色克隆(左侧屏幕中不同的子部分)仍然是结构克隆:每个集合有黄色对应物,每个元素有黄色对应物,每个函数有黄色对应物。如果我们已经穷尽了关于原始部分所能学到的一切,那么关于黄色部分我们什么也学不到。在右侧屏幕上,这两个子部分不仅仅是结构克隆:它们是无法区分的。
这个想法能走多远?答案:我们可以创建两个平行的“宇宙”,每个包含所有“相关不同”的集合,但标签不同。如前所述,使集合“相关不同”的唯一因素是它们包含的元素数量。如果左侧屏幕的一部分每个可能的元素数量都有一个集合,那么左侧屏幕的其余部分只是该部分的副本。
当事物仅在标签上不同时,它们被称为同构。因此,更精确地说:如果左侧屏幕的一部分每个可能的元素数量都有一个集合,那么左侧屏幕的其余部分只是该部分的同构副本。在右侧屏幕上,这些副本是相同的:右侧屏幕(以及一般的范畴论)将同构折叠为同一性。
本游戏展示了范畴论通过关系识别对象的本质,为理解抽象概念提供直观基础,并引出后续的Yoneda引理探索。
- ^
或者,如果你觉得更直观,集合可以在三维空间中占据位置。无论如何,认真对待游戏的设定很快就会遇到问题,所以我们不必太认真。
- ^
因为这是识别由任意元素组成的集合唯一方法。
- ^
读者有无限时间,滚动无限屏幕没有问题。他们应该再次避免过于认真对待设定,否则会出现问题。
- ^
由于右侧屏幕显示了一个范畴,箭头实际上不是相同的,因为它们包含关于组合的信息。但这里展示的游戏不需要这个。
- ^
如同抽象废话中常见,无穷大其实不是一个选项,因为存在不同种类的无穷大。
- ^
另一种框架:你被传送到右侧屏幕内部(即集合的范畴)。与另一个合作者会面的谢林点是什么?
- ^
包括单元素集本身。
- ^
包括它自己。
- ^
更技术地说:在唯一同构的意义上。
- ^
即在我们的设定中,没有查看中央屏幕或使用同步机制。
- ^
等价地,找出哪些点对应于左侧显示的集合。等价地,不断滚动两个屏幕直到它们同步。
- ^
所以,再次强调,这不是人类能以任何相关方式感知的东西。但抽象废话并非为人类量身定做。
- ^
正如抽象废话中常见,左侧区域当然是无限的,不是我们能在物理宇宙中构建的东西。