范畴论笔记 第1章 范畴 第1.1节 引入 范畴论在某种意义上可以被视为函数的代数学 .
第1.2节 集合的函数 令f 是从集合A 到集合B 的函数, 记为f : A → B . 若用range ⁡ ( f ) 表示f 的值域, 那么range ⁡ ( f ) ⊆ B . 现在设我们还有一个函数g : B → C , 那么我们可以构造复合g ∘ f : A → C , 其由( g ∘ f ) ⁡ ( a ) = g ⁡ ( f ⁡ ( a ) ) , a ∈ A 给定. 函数复合∘ 是结合性的, 即若再有一个函数h : C → D , 那么( h ∘ g ) ∘ f = h ∘ ( g ∘ f ) . 这里的函数相等显然是外延相等 (体现为逐点的函数值相等), 即对于每个a ∈ A 有( ( h ∘ g ) ∘ f ) ⁡ ( a ) = ( h ∘ ( g ∘ f ) ) ⁡ ( a ) = h ⁡ ( g ⁡ ( f ⁡ ( a ) ) ) . 对于任意的集合A , 存在一个恒等函数1 A : A → A , 其由1 A ⁡ ( a ) = a 定义. 恒等函数在某种意义上是函数复合∘ 的单位元, 即f ∘ 1 A = 1 B ∘ f = f . 对于函数的概念进行抽象或许提供了定义范畴的动机.
第1.3节 范畴的定义 定义1.1. 一个
范畴 由以下资料构成:
对象: A , B , C , … 箭头: f , g , h , … 对于每个箭头f , 存在两个(箭头所内蕴的)对象dom ⁡ ( f ) 和 cod ⁡ ( f ) 其被称为f 的定义域 (domain) 和陪域 (codomain). 我们记f : A → B 以指明A = dom ⁡ ( f ) 和B = cod ⁡ ( f ) . 给定箭头f : A → B 和g : B → C , 即cod ⁡ ( f ) = dom ⁡ ( g ) 存在与之对应的箭头g ∘ f : A → C 其被称为f 和g 的复合. 对于每个对象A , 存在与之对应的箭头1 A : A → A 其被称为A 的恒等箭头. 以上这些资料需要满足以下法则.
结合律: 对于所有的f : A → B , g : B → C , h : C → D 有( h ∘ g ) ∘ f = h ∘ ( g ∘ f ) . 单位元: 对于所有的f : A → B 有f ∘ 1 A = 1 B ∘ f = f . 范畴的定义是全然抽象的, 对象不必是集合, 箭头不必是函数.
第1.4节 范畴的例子 另外一类在数学中常见的例子是带结构集合 的范畴, 即带有结构的集合和保持结构的函数, 这些概念在某种意义上是以相对独立的方式确定的. 读者可能熟悉的例子有群和群同态; 向量空间和线性映射; 图和图同态; 实数域ℝ 和连续函数ℝ → ℝ ; 开集U ⊆ ℝ 和定义于其间的连续函数f : U → V ⊆ ℝ ; 拓扑空间和连续映射; 可微流形和光滑映射; 自然数集ℕ 和递归函数ℕ → ℕ , 或者也可以像上面的连续函数的例子一样取定义于子集U ⊆ ℕ 上的部分递归函数; 偏序集和单调函数. 如果你不熟悉其中某些例子, 也不要紧张. 之后我们将更仔细地检视其中一些. 暂时, 让我们讨论一下以上例子中的最后一个. 偏序集即装备了偏序关系的集合, 偏序集之间的箭头即单调映射. 如果m : A → B 是一个从偏序集A 到偏序集B 之间的单调映射, 那么a ≤ A a ′ ⇒ m ⁡ ( a ) ≤ B m ⁡ ( a ′ ) , a , a ′ ∈ A . 那么, 偏序集和单调映射何以成为范畴呢? 我们需要知道1 A : A → A 是单调的, 但这是显然的, 因为a ≤ A a ′ ⇒ a ≤ A a ′ . 我们也需要知道如果f : A → B 和g : B → C 是单调的, 那么g ∘ f : A → C 是单调的. 这当然也是成立的, 因为a ≤ a ′ ⇒ f ⁡ ( a ) ≤ f ⁡ ( a ′ ) ⇒ g ⁡ ( f ⁡ ( a ) ) ≤ g ⁡ ( f ⁡ ( a ′ ) ) ⇒ ( g ∘ f ) ⁡ ( a ) ≤ ( g ∘ f ) ⁡ ( a ′ ) . 因此, 我们有由偏序集和单调函数构成的范畴Pos . 到目前为止我们已经考虑了的范畴是所谓具体范畴 的例子. 不严格地说, 这些范畴的对象是可能装备有某种结构的集合, 而箭头是特定的函数, 比如说保持结构的函数. 我们将在之后看到这个概念并非全然一致的, 见评注1.7. 但是, 理解范畴论的一种方式在于"doing without elements", 将函数替换成箭头. 让我们现在来看看一些例子以明白这种观念并非可选, 而是基础性的. 令Rel 是以下范畴: 取集合为对象, 而取二元关系为箭头. 也就是说, 一个箭头f : A → B 是一个任意的子集f ⊆ A × B . 集合A 上的恒等箭头为恒等关系, 即1 A = { ( a , a ) ∈ A × A | a ∈ A } ⊆ A × A . 给定R ⊆ A × B 和S ⊆ B × C , 我们定义复合S ∘ R 为( a , c ) ∈ S ∘ R 当且仅当 ∃ b . ( a , b ) ∈ R & ( b , c ) ∈ S . 此即S 和R 的"relative product". 我们将验证Rel 在事实上是一个范畴的工作留给读者. (要做什么?) 现在我们要举另一个箭头并非函数的范畴的例子, 令对象是有限集合A , B , C 而箭头F : A → B 是由自然数构成的矩阵F = ( n i , j ) i < a , j < b , 其中a = | A | 且b = | B | , 这个记号的含义是集合的元素个数, 也就是基数或者说势. 箭头的复合即通常的矩阵乘法, 恒等箭头即通常的单位矩阵. 对象在这里的作用仅仅是为了确保矩阵乘法有定义, 但是矩阵并非对象之间的函数. 有限范畴 当然, 范畴的对象不必是集合, 以下是一些非常简单的例子:定义1.2. 一个范畴
C 和
D 之间的
函子 F : C → D 是从对象到对象和从箭头到箭头的映射, 其满足
F ⁡ ( f : A → B ) = F ⁡ ( f ) : F ⁡ ( A ) → F ⁡ ( B ) ;F ⁡ ( 1 A ) = 1 F ⁡ ( A ) ;F ⁡ ( g ∘ f ) = F ⁡ ( g ) ∘ F ⁡ ( f ) .一个预序 是一个装备有满足自反性和传递性的二元关系的集合. 若将集合的元素视为对象, 而两个对象之间存在唯一的箭头当且仅当其满足二元关系, 则预序可以被视为范畴. 拓扑学一例: 令X 是一个拓扑空间, 其开集族为O ⁡ ( X ) . 根据包含关系进行排序, O ⁡ ( X ) 就成了一个poset category. 而且, X 上我们也可以通过specialization 定义一个预序, 即将关系x ≤ y 定义为对于每个开集U ∈ O ⁡ ( X ) , x ∈ U 可以推出y ∈ U . 若X 满足T 1 公理, 那么这个预序只会是平凡的. 但是如果不是, 这个预序可能会是相当有趣的, 代数几何和指称语义中都有这样的空间的例子. 我们将对于以下事实的证明留作练习, T 0 空间在specilization序下实际上是偏序集. [译注: 使用反证法.] 逻辑学一例: 给定一个逻辑演绎系统, 存在一个与之相关的证明的范畴 , 其对象是公式φ , ψ , … 从φ 到ψ 的箭头是从(uncanceled)假设φ 开始的推出ψ 的一个演绎.φ ⋮ ψ 箭头的复合不过就是将演绎以显然的方式放在一起, 因而当然是结合的. 我们应该看出从φ 到ψ 的箭头可以有很多个, 因为证明可以有很多个. 这种范畴实际上具有丰富的结构, 之后我们将和λ 演算一起讨论它. 计算机科学一例: 给定一个函数式编程语言L , 存在一个与之相关的范畴, 其对象是L 的数据类型, 而箭头是L 的可计算函数. 两个程序X → f Y → g Z 的复合显然是将g 应用于f 的输出, 还有一种写法是g ∘ f = f ; g . 恒等箭头当然是"什么也不做"的程序. 这种范畴对于编程语言的指称语义的想法而言是基本的. 例如, 如果C ⁡ ( L ) 是我们刚才定义的范畴, 那么以Scott domain的范畴D 作为解释的L 的指称语义实际上不过就是一个函子S : C ⁡ ( L ) → D 因为S 赋予L 的类型以domain, L 的程序以domain之间的连续函数. 这个例子和前一个例子都和所谓的笛卡尔闭范畴 (CCC) 有关, 之后我们将讨论CCC. 令X 是一个集合, 那么我们可以将X 当作一个范畴Dis ⁡ ( X ) , 其对象是X 的元素而箭头就只有必要的恒等箭头. 这样的范畴被称为离散范畴, 实际上我们应该注意到离散范畴不过就是非常特殊的偏序集. 一个幺半群 (monoid, 偶尔会说semigroup with unit) 是一个集合M 装备了一个二元运算⋅ : M × M → M , 并且这个运算是结合的, 即对于x , y , z ∈ M , 我们有x ⋅ ( y ⋅ z ) = ( x ⋅ y ) ⋅ z 另外, 这个运算还有一个幺元, 即存在u ∈ M 使得对于每个x ∈ M 都有u ⋅ x = x ⋅ u = x 等价地说, 其实一个幺半群是一个仅有一个对象的范畴. 这个范畴的箭头是幺半群的元素. 恒等箭头即幺元u . 箭头的复合不过就是幺半群的二元运算而已. 幺半群太过常见了. 例如, ℕ , ℚ , ℝ 相对于加法是幺半群, 其幺元 (可能用加法的单位元更好) 是0 , 相对于乘法也是, 其幺元是1 . 另外, 对于任意的集合X , 从X 到X 的所有函数构成的集合, 即Hom Sets ⁡ ( X , X ) 在函数复合下也是一个幺半群. 更一般地, 对于任意的范畴C 中的任意的对象C , 从C 到C 的箭头的集合Hom C ⁡ ( C , C ) 在范畴C 的箭头复合运算下是一个幺半群. 既然幺半群也是所谓的带结构的集合, 那么存在这样一个范畴Mon , 其对象是幺半群, 而箭头是保持幺半群结构的函数. 更细致地说, 从幺半群M 到幺半群N 的一个同态是一个函数h : M → N 满足对于任意的m , n ∈ M , 有h ⁡ ( m ⋅ M n ) = h ⁡ ( m ) ⋅ N h ⁡ ( n ) 并且h ⁡ ( u M ) = u N 我们应该观察到, 从M 到N 的同态可以被视为函子, 若是将M 和N 视为范畴. 在这种意义下, 范畴是一般化了的幺半群, 函子是一般化了的同态. 第1.5节 同构 定义1.3. 在任意的集合C 中, 称箭头f : A → B 为同构 , 如果存在箭头g : B → A 满足g ∘ f = 1 A 且 f ∘ g = 1 B . 这样的逆显然是唯一的, 我们记g = f − 1 . 我们称A 同构于B , 如果其间存在同构, 此时记A ≅ B .
定义1.4. 一个群G 是一个幺半群, 并且每个元素g 都有一个逆元g − 1 . 换言之, G 是一个只有一个对象的范畴, 并且其每个箭头都是同构. [译注: 箭头都是同构的范畴被称为群胚.]
ℕ 在加法下并非一个群, ℤ 在加法下的确是一个群, 正有理数集合ℚ + 在乘法下是一个群. 对于任意的集合X , X 上的所有自同构, 或者说置换, 构成了群Aut ⁡ ( X ) . 所谓的置换群 是子群G ⊆ Aut ⁡ ( X ) . 因此, G 必须满足以下性质:
恒等函数1 X 在G 之中. 如果g , g ′ ∈ G , 那么g ∘ g ′ ∈ G . 如果g ∈ G , 那么g − 1 ∈ G . 两个群之间的同态h : G → H 实际上是幺半群的同态, 而且其也必然保持逆元运算.
以下是关于抽象群的基本的经典的结果.
定理. Cayley. 每个群都同构于一个置换群.
证明. 首先, 对于群G , 定义其Cayley表示G ‾ 为以下的集合G 的一个置换群: 对于每个g ∈ G , 我们有置换g ‾ : G → G , 其定义为h ↦ g ⋅ h . 这的确是一个置换, 因为g − 1 ‾ 是其逆. 接着, 定义同态i : G → G ‾ 为g ↦ g ‾ , j : G ‾ → G 为g ‾ ↦ g ‾ ⁡ ( u G ) . 最后, 证明i ∘ j = 1 G ‾ 和j ∘ i = 1 G . ◻
Cayley定理是说任何的抽象群都可以由一个"具体"的置换群表示. 这个定理可以被推广为, 任何"不太大"的范畴都可以被表示为一个"具体"的范畴, 即一个由集合和函数构成的范畴. (第1.8节讨论了一些关于基础的技术细节.)
定理1.6. 每个范畴C 都同构于这样的一个范畴, 其对象是集合, 其箭头是函数.
证明. 定义
C 的Cayley表示
C ‾ 为以下具体范畴:
对象是具有形式C ‾ = { f ∈ C | cod ⁡ ( f ) = C } 的集合, 其中C ∈ C . 对于C 中的箭头g : C → D , 我们有一个C ‾ 中的箭头g ‾ : C ‾ → D ‾ 对于C ‾ 中的每个箭头f : X → C , 我们定义g ‾ ⁡ ( f ) = g ∘ f . ◻
这向我们表明了集合和函数的"具体"范畴的朴素概念有什么错误 : 尽管不是每个范畴都以集合为对象而函数为箭头, 但是每个范畴都同构于一个这样的具体范畴. 因此, 这样的范畴可能具有的什么特殊性质是和范畴论无关的, 例如不以任何方式影响到箭头的对象的那些性质 (就像通过Dedekind分割或者Cauchy序列构造的实数之间的区别). 更好的捕获极其模糊的"具体"范畴的想法的尝试是这样的, 任意的箭头f : C → D 都完全由其和箭头们x : T → C 的复合确定, 这里的T 是某种"测试对象". 这句话的意思是若对于所有这样的x 都有f ⁢ x = g ⁢ x , 那么f = g . 之后我们将看到, 这相当于考虑由T 确定的范畴的一个具体表示.
第1.6节 范畴上的构造 现在我们有了一些能与之打交道的范畴, 所以我们可以开始考虑一些从旧的范畴产生新的范畴的构造.
两个范畴C 和D 的积 , 记作C × D 其对象具有形式( C , D ) , 其中C ∈ C 而D ∈ D , 并且箭头具有形式( f , g ) : ( C , D ) → ( C ′ , D ′ ) 其中f : C → C ′ ∈ C 而g : D → D ′ ∈ D . 复合是按分量定义的, 即( f ′ , g ′ ) ∘ ( f , g ) = ( f ′ ∘ f , g ′ ∘ g ) 恒等箭头显然是1 ( C , D ) = ( 1 C , 1 D ) 存在两个显然的投影函子 C ← π 1 C × D → π 2 D 其定义为π 1 ⁡ ( C , D ) = C 和π 1 ⁡ ( f , g ) = f , π 2 的定义是类似的. 若是读者熟悉群, 那么对于群G 和H , 若将它们当成范畴, 则其积范畴G × H 不过就是通常的群的直积. 一个范畴C 的反 范畴, 或者说对偶范畴, 其对象和C 无异, 但是C op 中的箭头f : C → D 是C 中的箭头f : D → C . 换言之, C op 其实就是箭头调转方向的C . 最好能有记号让我们区分C 和C op 中的对象和箭头. 因此, 让我们对于C 中的f : C → D 记f ⁎ : D ⁎ → C ⁎ 这是C op 中的相应箭头. 以此记号, 我们可以基于C 中的相应操作来定义C op 中的复合和单位元, 即1 C ⁎ = ( 1 C ) ⁎ , f ⁎ ∘ g ⁎ = ( g ∘ f ) ⁎ 数学的许多"对偶"定理实际上不过表达了这样的事实, 一个范畴是另一个范畴的反范畴 (或者是这个反范畴的一个子范畴). 一个这样的例子是我们将在之后证明的Sets 对偶于完备原子布尔代数的范畴. 一个范畴C 的箭头范畴 C → 以C 的箭头为对象, 并且C → 中从对象f : A → B 到f ′ : A ′ → B ′ 的一个箭头g 是一个"交换正方形"A A ′ B B ′ f f ′ g 1 g 2 其中g 1 和g 2 是C 中的箭头. 换句话说, 这样的一个箭头g 是C 中的箭头序对( g 1 , g 2 ) 并且满足g 2 ∘ f = f ′ ∘ g 1 . 一个对象f : A → B 上的恒等箭头是序对( 1 A , 1 B ) . 箭头的复合是按分量计算的:( h 1 , h 2 ) ∘ ( g 1 , g 2 ) = ( h 1 ∘ g 1 , h 2 ∘ g 2 ) 读者应该画出合适的交换图以验证这个定义的确合理. 观察到有两个函子:C ← dom C → → cod C 一个范畴C 在对象C ∈ C 上的切片范畴 如下对象: 所有满足cod ⁡ ( f ) = C 的箭头f ∈ C 箭头: 从对象f : X → C 到对象f : X ′ → C 的一个箭头a 是一个C 中的箭头a : X → X ′ 使得f ′ ∘ a = f , 如以下交换图所示:X X ′ C f f ′ a 恒等箭头和箭头复合都继承自范畴C , 这和之前的箭头范畴的情况差不多. 第1.7节 自由范畴 自由幺半群. 我们从字母表A 开始. 一个A 上的词是来自于A 的字母构成的有限序列. A 的Kleene闭包A ⁎ 被定义为所有A 上的词构成的集合. A ⁎ 上我们可以定义所谓的连接运算⁎ . 这个运算显然是结合的, 并且长度为零的空序列是其单位元. 因此, A ⁎ 形成了一个幺半群, 其被称为集合A 上的自由幺半群 . 元素a ∈ A 可以被视为长度为一的词, 即我们有一个函数i : A → A ⁎ , a ↦ a 虽然说以上的定义算是一种符号滥用 (abuse of notation) 吧. A 的元素在某种意义上"生成"了这个自由幺半群, 即每个w ∈ A ⁎ 都是A 的元素的⁎ 积. 也就是说, 对于某些a 1 , a 2 , … , a n ∈ A 有w = a 1 ⁎ a 2 ⁎ ⋯ ⁎ a n .
到底何谓"自由"呢? 我们称一个幺半群M 是由其子集A 自由生成 的, 如果
每个m ∈ M 都可以被写成A 的元素之积:m = a 1 ⋅ M ⋯ ⋅ M a n , a i ∈ A . M 中不存在"非平凡"的关系, 即如果a 1 ⁢ … ⁢ a j = a 1 ′ ⁢ … ⁢ a k ′ , 那么这是幺半群的公理所要求的. 第一个条件有时被称为"没有垃圾", 第二个条件有时被称为"没有噪音". 因此, A 上的自由幺半群是包含A 的没有垃圾也没有噪音的幺半群. (第二个条件在某种意义上已经足够审慎而精当, 然而仍然不容易理解, 甚至并不足够清晰以向不懂的人传达. 笔者也没有这个能力, 自由这个想法, 怎么说呢, 这里的话就是a 1 ⋅ M ⋯ ⋅ M a j = a 1 ′ ⋅ M ⋯ ⋅ M a k ′ 当且仅当j = k 且a i = a i ′ , i = 1 , … , j .)每个幺半群N 都拥有一个作为基础的集合| N | , 而每个幺半群同态f : N → M 都可以导出一个集合之间的函数| f | : | N | → | M | . 很容易看出来这是一个函子, 即所谓的"遗忘函子". 集合A 上的自由幺半群M ⁡ ( A ) 是满足以下泛性质 的"唯一"的那个幺半群. (本书里将泛性质 (universal property) 称为泛映射性质 (universal mapping property, UMP), 这两者是一回事.)
存在函数i : A → | M ⁡ ( A ) | , 对于任意的幺半群N 和函数f : A → | N | , 有唯一的幺半群同态f ‾ : M ⁡ ( A ) → N 满足| f ‾ | ∘ i = f , 这可以画成以下交换图表:在Mon 之中: M ⁡ ( A ) N f ‾ 在Sets 之中: | M ⁡ ( A ) | | N | A i f | f ‾ |
命题1.9. A ⁎ 具有A 上的自由幺半群的泛性质.
证明. 对于函数
f : A → | N | , 我们通过
f ‾ ⁡ ( - ) = u N 其中
- 是空字符串而
u N 是幺半群
N 的单位元, 以及
f ‾ ⁡ ( a 1 ⁢ … ⁢ a i ) = f ⁡ ( a 1 ) ⋅ N ⋯ ⋅ N f ⁡ ( a i ) 来定义
f ‾ : A ⁎ → N , 其显然是一个同态, 并且满足对于每个
a ∈ A 有
f ‾ ⁡ ( a ) = f ⁡ ( a ) . 这仍然是符号滥用, 更准确地说, 左边的
a 实际上是
i ⁡ ( a ) . 如果同态
g : A ⁎ → N 也满足对于每个
a ∈ A 有
g ⁡ ( a ) = f ⁡ ( a ) , 那么对于所有
a 1 ⁢ … ⁢ a i ∈ A ⁎ :
g ⁡ ( a 1 ⁢ … ⁢ a i ) = g ⁡ ( a 1 ⁎ ⋯ ⁎ a i ) = g ⁡ ( a 1 ) ⋅ N ⋯ ⋅ N g ⁡ ( a i ) = f ⁡ ( a 1 ) ⋅ N ⋯ ⋅ N f ⁡ ( a i ) = f ‾ ⁡ ( a 1 ) ⋅ N ⋯ ⋅ N f ‾ ⁡ ( a i ) = f ‾ ⁡ ( a 1 ⁎ ⋯ ⁎ a i ) = f ‾ ⁡ ( a 1 ⁢ … ⁢ a i ) 于是,
g = f ‾ , 证明就结束了. 怎么说呢,
A ⁎ 是自由幺半群的玄机藏在似乎平凡的事实
a 1 ⁎ ⋯ ⁎ a i = a 1 ⁢ … ⁢ a i 之中.
a 1 ⁢ … ⁢ a i 在某种意义上其实是一种双关, 它暗示了只有唯一一种将其表示为乘积
a 1 ⁎ ⋯ ⁎ a i 的方式.
◻
现在我们回头重新以泛性质来检视旧有的定义, 或者说思考泛性质是怎样捕获naive定义的想法的. 这个泛性质的存在性部分捕获了"没有噪音"的概念, 因为任意的生成元的代数组合之间的等式也对于其所映射至的东西成立, 也就是所有地方都成立. 唯一性部分捕获了"没有垃圾"的想法, 因为任何不是生成元的组合的元素, 其所映射至的东西可以是任意的值.
使用泛性质, 很容易表明自由幺半群M ⁡ ( A ) 在同构意义下是唯一的.
第1.8节 基础问题: 大, 小, 局部小 让我们首先区分以下两种东西:
数学的范畴论基础; 范畴论的数学基础. 对于第一点而言, 人们有时会听说范畴论可以用来提供"数学的基础", 作为集合论的替代物. 实际上的确如此, 但是这不是我们这里要做的事情. 在集合论中, 人们经常从存在性公理开始, 例如"存在一个无穷集合", 然后通过某些公理来导出更多的集合, 例如"每个集合都有一个幂集", 由此人们构筑了一个数学对象 (即集合) 的宇宙, 从原则上说它对于"所有的数学"而言应该是足够了. 我们的公理"每个箭头都有一个domain和一个codomain"不应该和集合论公理"每个集合都有一个幂集"以相同的方式理解! 区别在于, 在集合论中 (至少是一般意义上的集合论), 这些公理被认为是指 (或者说确定) 一个单一的由集合构成的宇宙. 而在范畴论中, 与之相对的是, 这些公理是某种东西的定义 , 即范畴的定义. 这就像群论或者拓扑学, 其公理是为了定义需要检视的对象的, 而这些对象又被认为是存在于某种"背景"或者"基础"系统之中, 例如集合论 (或者类型论). 而集合论本身又可能使用范畴论确定, 或者以其他某种方式.这将我们带至第二点: 我们假定我们的范畴是由集合和函数构成的, 以这样或那样的方式, 就和其他绝大多数数学对象一样, 然后开始考虑范畴论 (或者其他什么理论) 作为基础的可能性. 但是, 在范畴论中, 我们经常在通常的实践中遇到集合论的困难. 大多数这些问题是和"大小"有关的; 一些范畴"太大"以至于我们没法按照寻常集合论的方式妥当地进行处理. 在第1.5节里考虑Cayley表示时, 我们就已经遇到了这种问题. 那里我们要求考虑的范畴
第1.9节 练习 第2章 抽象结构 第2.1节 满态射和单态射 给定函数f : A → B , 其被称为单射的, 如果对于所有的a , a ′ ∈ A , f ⁡ ( a ) = f ⁡ ( a ′ ) 可以推出a = a ′ ; 其被称为满射的, 如果对于每个b ∈ B , 存在a ∈ A 使得f ⁡ ( a ) = b .
定义2.1. 在任意的范畴C 中, 给定箭头f : A → B , 其被称为是一个单态射(monomorphism) , 如果对于任意的g , h : C → A , f ⁢ g = f ⁢ h 可以推出g = h ; 其被称为是一个满态射(epimorphism) , 如果对于任意的i , j : B → D , i ⁢ f = j ⁢ f 可以推出i = j .
如果f 是一个单态射, 那么我们记f : A ↣ B . 如果f 是一个满态射, 那么我们记f : A ↠ B .
命题. 一个集合之间的函数f : A → B 是单态射恰当其为单射.
证明. 设
f : A ↣ B . 令
a , a ′ ∈ A 满足
a ≠ a ′ , 并令
{ x } 是任意的一个单元素集.
◻
例子2.3. 在许多类似于幺半群的结构化集合 的范畴中, 单态射就恰为单射的同态 . 更精确地说, 一个幺半群的同态h : M → N 是单态射恰当其基础函数| h | : | M | → | N | 是单态射, 即前文的单射. 为了证明这点, 设h 是一个单态射并取两个不同的元素 x , y : 1 → | M | , 其中1 = { ⁎ } 是任意的单元素集合.
第2.2节 始对象和终对象 现在我们考虑对于范畴Sets 中的空集和单元素集的抽象刻画, 而这可以推广至一般范畴中从结构上考虑类似的对象.
定义2.9. 在任何范畴C 中, 对象0 被称为始对象, 如果对于任意的对象C ∈ C , 存在唯一的态射0 → C ; 对象1 被称为终对象, 如果对于任意的对象C ∈ C , 存在唯一的态射C → 1 .
就像单态射和满态射一样, 我们应该注意到这定义中存在某种"对偶性". 精确地说, C 中的终对象恰是C op 中的始对象. 我们在第3章中系统地考虑了对偶性.
首先, 我们应该注意到始对象和终对象的概念显然是泛性质, 这样的对象在同构意义下是唯一的, 就和自由幺半群一样.
命题2.10. 始对象在同构下是唯一的, 终对象也是.
第3章 对偶 第3.1节 对偶原理 第3.2节 余积 第3.3节 等化子 定义3.13. 在任何范畴
C 中, 给定平行的箭头
A ⇉ g f B f 和
g 的一个
等化子 由一个对象
E 和一个箭头
e : E → A 构成, universal such that
f ∘ e = g ∘ e . 此即是说, 给定任意的
z : Z → A 满足
f ∘ z = g ∘ z 存在
唯一 的
u : Z → E 使得
e ∘ u = z , 如图所示则为
E Z A B f g e z u 让我们考虑一些简单的例子.
例子3.14. 设我们有函数
f , g : ℝ 2 ⇉ ℝ , 其中
f ⁡ ( x , y ) = x 2 + y 2 g ⁡ ( x , y ) = 1 我们取等化子, 比如说在
Top 范畴中. 这是子空间
S = { ( x , y ) ∈ ℝ 2 | x 2 + y 2 = 1 } ↪ ℝ 2 即平面中的单位圆. 这是因为, 给定任意的
泛化元素 z : Z → ℝ 2 , 通过与两个投影进行复合, 我们就得到了一对这样的
元素 z 1 , z 2 : Z → ℝ ,
z = 〈 z 1 , z 2 〉 , 对于这些我们然后有
f ⁡ ( z ) = g ⁡ ( z ) iff z 1 2 + z 2 2 = 1 iff " 〈 z 1 , z 2 〉 = z ∈ S " 其中最后一行实际上意味着
z 可以通过嵌入
i : S ↪ ℝ 2 分解为
z = i ∘ z ‾ [译注: 这里原文似乎有笔误, 将顺序颠倒了, 但未见于勘误], 如以下交换图表所示 [译注: 这里从
S 到
ℝ 2 实际上应该是嵌入箭头, 但是译者嫌麻烦, 还没有画]:
S Z ℝ 2 ℝ x 2 + y 2 1 i z z ‾ 既然嵌入
i 是单态射, 这样的分解在存在的情况下必然是唯一的, 因而
S ↪ ℝ 2 的确是
f 和
g 的等化子.
例子3.15. 类似地, 在Sets 中, 给定任意的函数f , g : A ⇉ B , 其等化子是由等式定义的子集{ x ∈ A | f ⁡ ( x ) = g ⁡ ( x ) } ↪ A 到A 的嵌入. 其论证基本上和刚才给出的是一模一样的.
现在让我们暂停一下, 观察到一个基本事实. 实际上, 每个子集都具有这种等式性 的形式, 即每个子集都是某对函数的等化子. 的确, 我们可以用非常canonical的方式构造出来. 首先, 让我们置2 = { ⊤ , ⊥ } 将其想成是真值 的集合, 然后考虑特征函数 χ U ⁡ ( x ) = { ⊤ , x ∈ U ⊥ , x ∉ U 因此, 我们有U = { x ∈ A | χ U ⁡ ( x ) = ⊤ } 于是, 以下是一个等化子:U → A ⇉ χ U ⊤ ⁢ ! 2 其中⊤ ⁢ ! = ⊤ ∘ ! : A → ! 1 → ⊤ 2 . [译注: 原文是U → ! 1 → ⊤ 2 , 但是译者认为这是作者的笔误.]
而且, 对于每个函数φ : A → 2 我们可以构造variety (即等式性子集)V φ = { x ∈ A | φ ⁡ ( x ) = ⊤ } 作为等化子, 以同样的方式. (将φ 想成是定义于A 上的一个命题函数 , 子集V φ ⊆ A 是由分离公理提供的φ 的外延 .) [译注: 所谓命题函数, 也可以称为谓词.]
现在, 很容易看出来操作χ U 和V φ 是互逆的 [译注: 我更愿意省略dummy variable而说χ 和V 是互逆的, 当然这只是风格问题]:V χ U = { x ∈ A | χ U ⁡ ( x ) = ⊤ } = { x ∈ A | x ∈ U } = U 对于任意的U ⊆ A 成立. 并且, 给定任意的φ : A → 2 , 我们有χ V φ ⁡ ( x ) = { ⊤ , x ∈ V φ ⊥ , x ∉ V φ = { ⊤ , φ ⁡ ( x ) = ⊤ ⊥ , φ ⁡ ( x ) = ⊥ = φ ⁡ ( x ) 因此, 我们有熟悉的同构Hom ⁡ ( A , 2 ) ≅ P ⁡ ( A ) mediated by taking equalizers.
函数的等化子可以取子集这样一个事实实际上是一种更一般的现象的特殊情形.
命题3.16. 在任何范畴中, 如果e : E → A 是某对箭头的一个等化子, 那么e 是一个单态射.
证明. [译注: 这个证明近乎于重复了一遍定义.] 考虑图表
E Z A B f g e z x y 其中我们假定
e 是
f 和
g 的等化子. 设
e ⁢ x = e ⁢ y , 我们想要证明
x = y . 置
z = e ⁢ x = e ⁢ y , 那么
f ⁢ z = f ⁢ e ⁢ x = g ⁢ e ⁢ x = g ⁢ z , 于是存在
唯一 的
u : Z → E 使得
e ⁢ u = z . 因此, 根据
e ⁢ x = z 和
e ⁢ y = z 可以推出
x = u = y .
◻
例子3.17. 在许多范畴中, 例如偏序集和幺半群的范畴, 一个平行箭头序对f , g : A ⇉ B 的等化子可以通过取作为基础函数的等化子按照以上方式构造出来, 即子集A ⁡ ( f = g ) ⊆ A , 其指的是满足f ⁡ ( x ) = g ⁡ ( x ) 的所有元素x ∈ A 构成的集合. 例如, 在偏序集中我们取从A 限制到A ⁡ ( f = g ) 的序, 而在拓扑空间中, 我们取子空间拓扑. 在幺半群中, 子集A ⁡ ( f = g ) 在A 的运算下也是一个幺半群, 因此这个嵌入是一个同态. 这个的原因是 [译注: 当然十分显然] f ⁡ ( u A ) = u B = g ⁡ ( u A ) , 并且如果f ⁡ ( a ) = g ⁡ ( a ) 且f ⁡ ( a ′ ) = g ⁡ ( a ′ ) , 那么f ⁡ ( a ⋅ a ′ ) = f ⁡ ( a ) ⋅ f ⁡ ( a ′ ) = g ⁡ ( a ) ⋅ g ⁡ ( a ′ ) = g ⁡ ( a ⋅ a ′ ) . 于是, A ⁡ ( f = g ) 包含单位元并在乘积运算下封闭. 在Abel群中, 我们可以有对于等化子的另外的描述方式, 使用以下事实f ⁡ ( x ) = g ⁡ ( x ) 当且仅当 ( f − g ) ⁡ ( x ) = 0 因此, f 和g 的等化子就等于同态( f − g ) 和零同态0 : A → B 的等化子. 于是, 只需要对于任意的同态h : A → B 考虑特殊形式的等化子A ⁡ ( h , 0 ) ↣ A 就够了. 这个A 的子群被称为h 的核 , 记作ker ⁡ ( h ) . 因此, 我们有等化子ker ⁡ ( f − g ) ↪ A ⇉ g f B . 同态的核在对于群的研究中具有根本的重要性, 在第4章中我们将进一步考虑这个概念.
第3.4节 余等化子 余等化子是对于由等价关系取商的泛化, 所以让我们从回顾这个概念开始, 当然我们已经用过很多次了. 首先回忆一下, 一个集合X 上的一个等价关系 是一个二元关系x ∼ y , 其满足
自反性: x ∼ x ; 对称性: x ∼ y 可以推出y ∼ x ; 传递性: x ∼ y 和y ∼ z 可以推出x ∼ z . 给定这样一个关系, 定义一个元素x ∈ X 的等价类 为[ x ] = { y ∈ X | x ∼ y } . 所有不同的等价类然后构成了X 的一个划分 , 意思是每个元素y 都恰好位于其中一个集合中, 即[ y ] (证明一下!).有时人们将等价关系想成是由具有某种相同性质 (例如具体相同的颜色) 的等价元素所产生的. 我们可以将等价类[ x ] 当成是性质, 在这种意义下作为抽象对象 (比如说颜色红色, 蓝色, 等等, 它们本身). 这有时被称为definition by abstraction , 举例来说, 它描述了实数是如何从有理数的Cauchy序列构造出来的, 或者有限基数是如何从有限集合构造出来的.
所有等价类构成的集合X / ∼ = { [ x ] | x ∈ X } 或许可以被称为X 除以∼ 的商 . 当人们想要抽象出 等价元素x ∼ y 之间的差异时 [译注: 也就是忽略等价元素之间的差异], 就是使用X / ∼ 代替X , 即在X / ∼ 中这样的元素 (也仅是这样的元素) 会被等同起来, 因为[ x ] = [ y ] 当且仅当 x ∼ y . 观察到商映射 q : X → X / ∼ 其取x 至[ x ] , 具有这样的性质, 即一个映射f : X → Y extends along q ,X X / ∼ Y q f 只要f 尊重等价关系, 意即x ∼ y 可以推出f ⁡ ( x ) = f ⁡ ( y ) .
现在让我们来考虑对偶于等化子的概念, 即所谓的余等化子.
定义3.18. 对于某个范畴
C 中任意的平行箭头
f , g : A → B [译注: 老实说, 这本书的很多记号都不太一致, 但是理解意思就行了], 一个
余等化子 由
Q 和
q : B → Q 构成, universal with the property
q ⁢ f = q ⁢ g , 如下图所示
A B Q Z f g q u z 也就是说, 给定任意的
Z 和
z : B → Z , 如果
z ⁢ f = z ⁢ g , 那么存在唯一的态射
u : Q → Z 使得
u ⁢ q = z .
首先观察到, 根据对偶性, 我们知道范畴C 中的这样一个余等化子是范畴C op 中的一个等化子, 这个等化子根据命题3.16是单态射, 所以在C 中这个余等化子应该是满态射.
命题3.19. 如果q : B → Q 是某对箭头的一个余等化子, 那么q 是一个满态射.
因此, 我们可以将一个余等化子q : B ↠ Q 想成是B 的一种坍缩 , 通过将所有序对f ⁡ ( a ) = g ⁡ ( a ) 等同起来 (speaking as if there were such elements a ∈ A ). 而且, 我们以最小 的方式这么做, 也就是说, 尽可能少地打扰B , 在于我们总是可以将Q 映射到任何其他的Z , 只要其中所有这样的等同起来都是成立的.
例子3.20. 令
R ⊆ X × X 是集合
X 上的一个等价关系, 并考虑图
R ⇉ r 2 r 1 X 其中
r 1 和
r 2 是嵌入 (inclusion)
R ⊆ X × X 的两个投影, 即
第4章 群和范畴 第5章 极限和余极限