范畴论 (数学)
范畴论是抽象地处理数学结构以及结构之间联系的一门数学理论。有些人开玩笑的称之为“抽象的胡说”.
背景
所谓一个范畴就是试图抓住一类数学对象(比如群论中的群)的本质的数学结构。传统的作法是要集中注意力于这些数学对象(比如群)本身,范畴论的作法则是要强调数学对象间保持对象结构不变的映射。以群论为例,保持对象结构不变的映射就是所谓的群同态。不同的范畴可以用函子相联系。函子是一般化了的函数。函子把一个范畴中的对象和另一个范畴中的对象联系起来,同时把前一个范畴中的映射和后一个范畴中的映射也联系起来。许多时候一些“自然构造”,比如拓扑空间的基本群,可以用函子来表达。更进一步,这些构造“自然的发生联系”。这就引出了自然变换的概念。所谓自然变换,就是把一个函子映射为另一个函子。数学中经常会遇到“自然同构”,自然同构的两个数学对象(本质上)是正则相关的。自然同构的概念可以精确的描述这一现象。
历史注记
范畴,函子和自然变换是由萨缪尔·艾伦堡和桑德斯·麦克兰在1945年引进的。这些概念最初出现在拓扑学,尤其是代数拓扑学里,在同态(具有几何直观)转化成同调论(公理化方法)的过程中起了重要作用。乌拉姆说,在1930年代的后期,波兰学派中曾出现类似的想法。
艾伦堡和麦克兰说,他们的目的在于理解自然映射;为此,必须定义函子;为了定义函子,就自然地要引进范畴。
同调代数由于计算上的需要而使用范畴论,这对范畴论起到了推进作用;此后范畴论又在代数几何的公理化过程中得到发展。代数几何与罗素-怀特海德的关于数学统一性基础的观点相抵触。广义范畴论-更容纳了语意灵活性和高阶逻辑等多种新特征的泛代数-随后产生,现在被运用到数学的所有分支。
特殊范畴拓扑斯甚至可以代替公理集合论作为数学的基础。然而范畴论对这些范围广泛的基础应用还是有争议的;但作为构造性数学的基础或注释,范畴论被研究的相当透彻。尽管如此,可以说,尤其是公理集合论,至今仍然是数学家们的通用语言,并没有被范畴论的注释所取代。将范畴论引入大学程度的教学(在《伯克霍夫-麦克兰》和《麦克兰-伯克霍夫》这两本抽象代数的教科书的区别上可以印证)还是遭到了相当的反对。
范畴逻辑是直觉逻辑中类型理论的一个被明确定义的分支,在计算机学科的功能性编程和语域理论中均有应用,并且都是在笛卡尔闭范畴中对兰姆达演算的非句法性描述。至少,用范畴论可以精确地描述在这些相关的领域里什么是共同的(在抽象的意义上)。
范畴
定义
一个“范畴”包括下列3个组成部分
- 一个“对象”的类
- 对任意两个对象 A 和 B,存在一个从 A 到 B 的映射集合 Mor(A,B)。如果 f 属于 Mor(A,B),则记为 f : A → B (有些作者将映射集记为 Hom(A,B) )
- 对任意三个对象 A, B 和 C,存在一个二元运算 Mor(A,B) × Mor(B,C) → Mor(A,C),称此为“复合映射”;由 f : A → B 和 g : B → C 复合而成,记为 g·f,或者 gf(有些作者将此记为 fg )。
以上组成部分若满足如下两条公理,则称为范畴:
- (结合性)如果有 f : A → B, g : B → C 和 h : C → D,则 h·(g·f) = (h·g)·f;
- (等价性)对任意对象 X,存在一个映射 idX : X → X,称为“X的恒等映射”,使得对任何映射 f : A → B,都有 idB·f = f = f·idA。
从以上公理出发可以得到,一个对象的恒等映射是唯一的。有些作者将对象本身用恒等映射来定义,这在本质上是相同的。
如果对象的类确实是个集合,那么这种范畴就被称为“小范畴”。许多重要的范畴不是小范畴。
范畴中的映射有时又称为“箭头”,这种叫法来自于交换图表。
范畴举例
每一范畴都由其对象,映射,和复合映射来表述。为了方便起见,以下的“函数”即是指映射,不再一一说明。
- Set 是所有集合和它们彼此之间所有的函数映射构成的范畴
- 任何拟序集 (P, ≤) 构成一个小范畴,其对象是 P 的要素,其映射是从 x 指向 y 的箭头,其中 x ≤ y。
- 任何以单一对象 x (x为任意固定集合)为基础的独异点构成一个小范畴。独异点的任意元素通过二元运算给出一个从 x 到 x 的映射,所有这些映射恰好是范畴的所有映射;范畴的复合映射也正好是独异点的二元运算。事实上,范畴可以看成独异点的推广;关于独异点的定义和定理有一些可以推广到范畴。
- 任何有向图对应于一个小范畴:其对象是图的顶点,其映射是图的路径,其复合映射是路径的连接。称此范畴为有向图的“自由范畴”。
- 设 I 是个集合,“I上的离散范畴”是一个小范畴,以 I 的元素为对象,以 I 的恒等映射为其唯一的映射。
- 任何范畴 C 可以在另一种看法下成为一个新的范畴:它具有相同的对象,然而所有映射都是反方向的。称此为“对偶”或者“反范畴”,记作 Cop (op 来自英文的 oppisite)。
- 设 C 和 D 是范畴,则它们的“直积范畴”C × D 被定义为:其对象为取自 C 的一个对象和取自 D 的一个对象的有序对,其映射亦为取自 C 的一个映射和取自 D 的一个映射的有序对,其复合映射则由其分量分别复合。
映射分类
映射 f : A → B 称为
- 单射,如果 fg1 = fg2 ,则有 g1 = g2 ,此关系对所有映射 g1 , g2 : X → A 成立。
- 满射,如果 g1f = g2f , 则有 g1 = g2 ,此关系对所有映射 g1 , g2 : B → X 成立。
- 同构,如果存在逆映射 g : B → A 使得 fg = idB 并且 gf = idA。
- 自同构,如果 f 是同构映射,并且有 A = B 。
- 自同态,如果 A = B 。
映射之间的关系(比如 fg = h )在大多数情形下可用更直观的交换图表来表示,在此图表中对象被表示成顶点,映射被表示为箭头。
函子
函子是范畴之间保持结构的映射。它们可以被看成以所有(小)范畴为成员的范畴中的映射。
一个从范畴 C 到范畴 D 的(协变)函子 F 被定义为:
- 对 C 中任意对象 X ,都有一个 D 中相应的对象 F(X) 与其对应;
- 对 C 中任意映射 f : X → Y ,都有一个 D 中相应的映射 F(f) : F(X) → F(Y) 与其对应
并使下列性质成立:
- 对 C 中任意的对象 X ,都有 F(idX) = idF(X) 。
- 对 C 中任意两个映射 f : X → Y 和 g : Y → Z,都有 F(g · f) = F(g) · F(f) 。
一个从范畴 C 到范畴 D 的反变函子 F 不同于函子的地方仅在于将 D 中的映射箭头倒过来。比如说 f : X → Y 是 C 中任一映射,则有 F(f) : F(Y) → F(X) 。定义反变函子的最简捷的方法是作为 C 的反范畴 Cop 到 D 上的函子。
有关函子的具体例子和性质请详见函子条目。
自然和自然同构
一个“自然变换”是两个函子之间的一个关系。函子通常用来描述“自然构造”,而自然变换则用来描述两个构造之间的“自然同态”。有时候,两个截然不同的构造具有“相同的”结果;这正可以用两个函子之间的自然同构关系来表述。
详细请见自然变换条目。