今天这篇文章是 集合论 vs 范畴论 = 汇编语言 vs C++ ?|范畴论哲学 I 的续篇。上一篇文章中,我们的目光主要集中在范畴内部,讨论范畴论作为一套数学语言,它如何从物体的关系(使用、功能)的角度从而更加准确地对描述了我们日常对数学结构的理解。换句话说,使用范畴论的语言,我们自然而然地会在同构的意义下理解数学。但同构只是数学研究中等价关系中的一种;对于不同的等价关系,我们需要有一种更为广泛的语言来叙述其性质,这就是范畴论的一个推广——高阶范畴的语言——所提供的。这篇文章从一个更为广泛的等价的概念出发,粗略地介绍高阶范畴的哲学思想和我们理解数学中不同的等价所具有的关联。全文共5000 字左右。
我们以范畴之间的等价性为例。对于知晓一定范畴论的读者想必都会知道,对于两个范畴 C 和 D ,同构并不是它们间最自然的等价概念,而应该考虑的是范畴等价 [categorical equivalence] 的概念。按照我们之前的观点,等价的概念总是与一个范畴紧密联系的。我们便来详细地探讨一下所有范畴之间构成了一个怎样的范畴。
此处稍微离题一些。对于那些对数学基础 [foundation of mathematics] 较为敏感的读者而言,“所有范畴构成的范畴”这个短语可能是不严谨的,因为这样不加限制的全称量词可能会导致和罗素悖论相似的问题。在范畴论的文献中,解决这个问题的办法一般是引入一个“小”和“大”的相对概念。例如,我们说一个范畴 C 是“小”的,当且仅当 C 的物体和态射构成一个集合;若它们不是一个集合而是一个类 [class],则我们称其为一个“大”的范畴。当然,这个分类还可以继续,有“小”“大”“更大”等等。当我们说所有范畴构成的范畴时,可以理解为我们指称的对象是那个所有“小”的范畴构成的“大”范畴。由于一般使用范畴论语言的人都不太关心数学基础的问题,在之后的讨论中我们并不会如此严格地区分“小”和“大”的概念。