范畴论笔记

前言

当我们已经有了Mac Lane的Categories for the Working Mathematician, 为什么还要写一本新的范畴论教科书呢? 简而言之, 因为Mac Lane的书是为工作的数学家准备的. 在范畴论渗透进各种各样的领域并出现在课程里30年之后, 现在需要的是一本供所有人阅读的书籍.

这本书成长于我过去十年间在CMU教授的范畴论课程. 这这段时间里, 我已经为计算机科学, 数学, 逻辑学的本科生和研究生教授了无数的讲座课程或者高级讨论班. 基于本书材料的讲座课程由15个星期每周两节的90分钟讲座构成. 这些讲座(材料)的胚芽是我自己的研究生笔记, 来源于Mac Lane在芝加哥大学所教授的范畴论课程. 在教授我自己的课程时, 我很快发现CMU这里的混合的学生群体和芝加哥大学的数学研究生的需求非常不同, 而我寻找满足这些需求的合适教科书的过程表明现有的文献和学生的需求之间存在严重的沟壑. 我的讲义随着时间逐渐演化以填补这个沟壑, 补充并最终替代了我尝试使用的诸多教材.

我的课程的学生往往没有什么数学背景, 只上过一门离散数学, 以及一些微积分或者线性代数, 或者是一两门逻辑学课程. 然而, 当学生最终成为计算机科学或者逻辑学的研究者时, 许多人都需要熟悉范畴论的基本概念, 而且是在没有接受许多深入的数学训练的情况下. 数学系的本科生其实也是类似的: 在数学上很有天分, 并且因其与他们之后所需要学习的东西有着明显的联系而备受鼓舞, 尽管如此还是不能跟着Mac Lane的书, 因为他们仍然缺乏必要的数学准备. 我的大多数学生甚至还不知道自由群是什么, 所以说当他们知道这是伴随的一个例子时也不会感到开心.

因此, 这本书意在成为范畴论的教科书和参考, 不仅面向数学系学生, 而且也面向计算机科学, 逻辑学, 语言学, 认知科学, 哲学, 以及任何需要用到范畴论的领域的研究者和学生. 对于我来说挑战在于能够使得基本定义, 定理, 以及证明技术被这样的读者群体理解, 因此无法假定读者熟悉范畴论在代数学和拓扑学中的主要 (或者说至少是原初的) 应用. 然而这不意味着我会在真空中建立主题, 简单跳过例子和应用. 这种抽象层次的材料在没有应用和例子使之变得鲜活的情况下直接无法理解.

面对这种两难的境地, 我采取了这样的策略. 首先从最开始细致地建立几个基本的例子, 例如偏序集和幺半群, 然后带着这些例子一起, 并在整本书里一直使用它们. 这在教学上有诸多值得提及的优点: 偏序集和幺半群本身就是特殊种类的范畴, 并且在某种意义上代表了一个一般性的范畴所具有的两个维度 (对象和箭头). 诸多范畴里出现的现象当作来源于偏序集或者幺半群的什么东西的泛化来理解是最好的. 从另一个角度来说, 偏序集 (和单调映射) 和幺半群 (和同态) 的范畴提供了两个更进一步的而且又相当不同的范畴的例子, 其可以用来考虑各种各样的概念. 例如, 极限的概念既可以在一个给定的偏序集里考虑, 也可以在偏序集的范畴里考虑.

当然了, 许多偏序集和幺半群之外的其他例子也有处理. 例如, 关于群和范畴的一章建立了群论的最初几步, 直至核, 商群, 以及同态定理, 作为等化子和余等化子的例子. 这里, 以及偶尔别的什么地方 (例如与Stone对偶的联系), 我有意涵盖了更多的一点数学, 超出了用于刻画手头概念所严格必要的范围. 我的想法在于当一些学生将要参加更加高等的数学课程时, 这些或许是离他们最近的, 因此他们应该能够通过收获一些低垂的果实来从学习范畴论的努力中获益.

尽管所需要的数学预备知识比Mac Lane的书要低得多, (我希望)标准的严格性并没有妥协. 所有重要命题和定理的完整证明都已给出, 只是偶尔常规的引理会留作练习 (然后它们通常被列在一章的最后). 材料的选取是容易的, 存在必须涵盖的标准核心: 范畴, 函子, 自然变换, 等价, 极限和余极限, 函子范畴, 可表函子, Yoneda引理, 伴随, 以及单子. 这近乎填满了一个课程. 这里所涵盖的唯一算是可选的话题是笛卡尔闭范畴和λ演算, 但是这对于计算机科学家, 逻辑学家, 语言学家而言又是必要的. 一些显然更加深入的话题被有意地忽略了: 2范畴, 意象 (topos) (任何深度上), 幺半范畴. 这些话题在Mac Lane中得到处理, 而学生在完整参与这个课程之后应该有能力阅读此书.

第1章 范畴

第1.1节 引入

范畴论在某种意义上可以被视为函数的代数学.

这个主题非常粗糙的历史发展过程如下:

第1.2节 集合的函数

f是从集合A到集合B的函数, 记为f:AB. 若用range(f)表示f的值域, 那么range(f)B. 现在设我们还有一个函数g:BC, 那么我们可以构造复合gf:AC, 其由(gf)(a)=g(f(a)),aA给定. 函数复合是结合性的, 即若再有一个函数h:CD, 那么(hg)f=h(gf).这里的函数相等显然是外延相等 (体现为逐点的函数值相等), 即对于每个aA((hg)f)(a)=(h(gf))(a)=h(g(f(a))).对于任意的集合A, 存在一个恒等函数1A:AA, 其由1A(a)=a定义. 恒等函数在某种意义上是函数复合的单位元, 即f1A=1Bf=f.对于函数的概念进行抽象或许提供了定义范畴的动机.

第1.3节 范畴的定义

定义1.1. 一个范畴由以下资料构成:以上这些资料需要满足以下法则.

范畴的定义是全然抽象的, 对象不必是集合, 箭头不必是函数.

第1.4节 范畴的例子

  1. 另外一类在数学中常见的例子是带结构集合的范畴, 即带有结构的集合和保持结构的函数, 这些概念在某种意义上是以相对独立的方式确定的. 读者可能熟悉的例子有如果你不熟悉其中某些例子, 也不要紧张. 之后我们将更仔细地检视其中一些. 暂时, 让我们讨论一下以上例子中的最后一个.
  2. 偏序集即装备了偏序关系的集合, 偏序集之间的箭头即单调映射. 如果m:AB是一个从偏序集A到偏序集B之间的单调映射, 那么aAam(a)Bm(a),a,aA.那么, 偏序集和单调映射何以成为范畴呢? 我们需要知道1A:AA是单调的, 但这是显然的, 因为aAaaAa. 我们也需要知道如果f:ABg:BC是单调的, 那么gf:AC是单调的. 这当然也是成立的, 因为aaf(a)f(a)g(f(a))g(f(a))(gf)(a)(gf)(a).因此, 我们有由偏序集和单调函数构成的范畴Pos.
  3. 到目前为止我们已经考虑了的范畴是所谓具体范畴的例子. 不严格地说, 这些范畴的对象是可能装备有某种结构的集合, 而箭头是特定的函数, 比如说保持结构的函数. 我们将在之后看到这个概念并非全然一致的, 见评注1.7. 但是, 理解范畴论的一种方式在于"doing without elements", 将函数替换成箭头. 让我们现在来看看一些例子以明白这种观念并非可选, 而是基础性的.
    Rel是以下范畴: 取集合为对象, 而取二元关系为箭头. 也就是说, 一个箭头f:AB是一个任意的子集fA×B. 集合A上的恒等箭头为恒等关系, 即1A={(a,a)A×A|aA}A×A.给定RA×BSB×C, 我们定义复合SR(a,c)SR当且仅当b.(a,b)R&(b,c)S.此即SR的"relative product". 我们将验证Rel在事实上是一个范畴的工作留给读者. (要做什么?)
    现在我们要举另一个箭头并非函数的范畴的例子, 令对象是有限集合A,B,C而箭头F:AB是由自然数构成的矩阵F=(ni,j)i<a,j<b, 其中a=|A|b=|B|, 这个记号的含义是集合的元素个数, 也就是基数或者说势. 箭头的复合即通常的矩阵乘法, 恒等箭头即通常的单位矩阵. 对象在这里的作用仅仅是为了确保矩阵乘法有定义, 但是矩阵并非对象之间的函数.
  4. 有限范畴
    当然, 范畴的对象不必是集合, 以下是一些非常简单的例子:
定义1.2. 一个范畴CD之间的函子F:CD是从对象到对象和从箭头到箭头的映射, 其满足
  1. F(f:AB)=F(f):F(A)F(B);
  2. F(1A)=1F(A);
  3. F(gf)=F(g)F(f).
  1. 一个预序是一个装备有满足自反性和传递性的二元关系的集合. 若将集合的元素视为对象, 而两个对象之间存在唯一的箭头当且仅当其满足二元关系, 则预序可以被视为范畴.
  2. 拓扑学一例: 令X是一个拓扑空间, 其开集族为O(X). 根据包含关系进行排序, O(X)就成了一个poset category. 而且, X上我们也可以通过specialization定义一个预序, 即将关系xy定义为对于每个开集UO(X), xU可以推出yU. 若X满足T1公理, 那么这个预序只会是平凡的. 但是如果不是, 这个预序可能会是相当有趣的, 代数几何和指称语义中都有这样的空间的例子. 我们将对于以下事实的证明留作练习, T0空间在specilization序下实际上是偏序集. [译注: 使用反证法.]
  3. 逻辑学一例: 给定一个逻辑演绎系统, 存在一个与之相关的证明的范畴, 其对象是公式φ,ψ,φψ的箭头是从(uncanceled)假设φ开始的推出ψ的一个演绎.φψ箭头的复合不过就是将演绎以显然的方式放在一起, 因而当然是结合的. 我们应该看出从φψ的箭头可以有很多个, 因为证明可以有很多个. 这种范畴实际上具有丰富的结构, 之后我们将和λ演算一起讨论它.
  4. 计算机科学一例: 给定一个函数式编程语言L, 存在一个与之相关的范畴, 其对象是L的数据类型, 而箭头是L的可计算函数. 两个程序XfYgZ的复合显然是将g应用于f的输出, 还有一种写法是gf=f;g.恒等箭头当然是"什么也不做"的程序.
    这种范畴对于编程语言的指称语义的想法而言是基本的. 例如, 如果C(L)是我们刚才定义的范畴, 那么以Scott domain的范畴D作为解释的L的指称语义实际上不过就是一个函子S:C(L)D因为S赋予L的类型以domain, L的程序以domain之间的连续函数. 这个例子和前一个例子都和所谓的笛卡尔闭范畴 (CCC) 有关, 之后我们将讨论CCC.
  5. X是一个集合, 那么我们可以将X当作一个范畴Dis(X), 其对象是X的元素而箭头就只有必要的恒等箭头. 这样的范畴被称为离散范畴, 实际上我们应该注意到离散范畴不过就是非常特殊的偏序集.
  6. 一个幺半群 (monoid, 偶尔会说semigroup with unit) 是一个集合M装备了一个二元运算:M×MM, 并且这个运算是结合的, 即对于x,y,zM, 我们有x(yz)=(xy)z另外, 这个运算还有一个幺元, 即存在uM使得对于每个xM都有ux=xu=x等价地说, 其实一个幺半群是一个仅有一个对象的范畴. 这个范畴的箭头是幺半群的元素. 恒等箭头即幺元u. 箭头的复合不过就是幺半群的二元运算而已.
    幺半群太过常见了. 例如, ,,相对于加法是幺半群, 其幺元 (可能用加法的单位元更好) 是0, 相对于乘法也是, 其幺元是1. 另外, 对于任意的集合X, 从XX的所有函数构成的集合, 即HomSets(X,X)在函数复合下也是一个幺半群. 更一般地, 对于任意的范畴C中的任意的对象C, 从CC的箭头的集合HomC(C,C)在范畴C的箭头复合运算下是一个幺半群.
    既然幺半群也是所谓的带结构的集合, 那么存在这样一个范畴Mon, 其对象是幺半群, 而箭头是保持幺半群结构的函数. 更细致地说, 从幺半群M到幺半群N的一个同态是一个函数h:MN满足对于任意的m,nM, 有h(mMn)=h(m)Nh(n)并且h(uM)=uN我们应该观察到, 从MN的同态可以被视为函子, 若是将MN视为范畴. 在这种意义下, 范畴是一般化了的幺半群, 函子是一般化了的同态.

第1.5节 同构

定义1.3. 在任意的集合C中, 称箭头f:AB同构, 如果存在箭头g:BA满足gf=1Afg=1B.这样的逆显然是唯一的, 我们记g=f1. 我们称A同构于B, 如果其间存在同构, 此时记AB.
定义1.4. 一个群G是一个幺半群, 并且每个元素g都有一个逆元g1. 换言之, G是一个只有一个对象的范畴, 并且其每个箭头都是同构. [译注: 箭头都是同构的范畴被称为群胚.]

在加法下并非一个群, 在加法下的确是一个群, 正有理数集合+在乘法下是一个群. 对于任意的集合X, X上的所有自同构, 或者说置换, 构成了群Aut(X). 所谓的置换群是子群GAut(X). 因此, G必须满足以下性质:

  1. 恒等函数1XG之中.
  2. 如果g,gG, 那么ggG.
  3. 如果gG, 那么g1G.

两个群之间的同态h:GH实际上是幺半群的同态, 而且其也必然保持逆元运算.

以下是关于抽象群的基本的经典的结果.

定理. Cayley. 每个群都同构于一个置换群.
证明.
  1. 首先, 对于群G, 定义其Cayley表示G为以下的集合G的一个置换群: 对于每个gG, 我们有置换g:GG, 其定义为hgh.这的确是一个置换, 因为g1是其逆.
  2. 接着, 定义同态i:GGgg, j:GGgg(uG).
  3. 最后, 证明ij=1Gji=1G.

Cayley定理是说任何的抽象群都可以由一个"具体"的置换群表示. 这个定理可以被推广为, 任何"不太大"的范畴都可以被表示为一个"具体"的范畴, 即一个由集合和函数构成的范畴. (第1.8节讨论了一些关于基础的技术细节.)

定理1.6. 每个范畴C都同构于这样的一个范畴, 其对象是集合, 其箭头是函数.
证明. 定义C的Cayley表示C为以下具体范畴:

这向我们表明了集合和函数的"具体"范畴的朴素概念有什么错误: 尽管不是每个范畴都以集合为对象而函数为箭头, 但是每个范畴都同构于一个这样的具体范畴. 因此, 这样的范畴可能具有的什么特殊性质是和范畴论无关的, 例如不以任何方式影响到箭头的对象的那些性质 (就像通过Dedekind分割或者Cauchy序列构造的实数之间的区别). 更好的捕获极其模糊的"具体"范畴的想法的尝试是这样的, 任意的箭头f:CD都完全由其和箭头们x:TC的复合确定, 这里的T是某种"测试对象". 这句话的意思是若对于所有这样的x都有fx=gx, 那么f=g. 之后我们将看到, 这相当于考虑由T确定的范畴的一个具体表示.

第1.6节 范畴上的构造

现在我们有了一些能与之打交道的范畴, 所以我们可以开始考虑一些从旧的范畴产生新的范畴的构造.

  1. 两个范畴CD, 记作C×D其对象具有形式(C,D), 其中CCDD, 并且箭头具有形式(f,g):(C,D)(C,D)其中f:CCCg:DDD. 复合是按分量定义的, 即(f,g)(f,g)=(ff,gg)恒等箭头显然是1(C,D)=(1C,1D)存在两个显然的投影函子Cπ1C×Dπ2D其定义为π1(C,D)=Cπ1(f,g)=f, π2的定义是类似的.
    若是读者熟悉群, 那么对于群GH, 若将它们当成范畴, 则其积范畴G×H不过就是通常的群的直积.
  2. 一个范畴C范畴, 或者说对偶范畴, 其对象和C无异, 但是Cop中的箭头f:CDC中的箭头f:DC. 换言之, Cop其实就是箭头调转方向的C.
    最好能有记号让我们区分CCop中的对象和箭头. 因此, 让我们对于C中的f:CDf:DC这是Cop中的相应箭头. 以此记号, 我们可以基于C中的相应操作来定义Cop中的复合和单位元, 即1C=(1C),fg=(gf)数学的许多"对偶"定理实际上不过表达了这样的事实, 一个范畴是另一个范畴的反范畴 (或者是这个反范畴的一个子范畴). 一个这样的例子是我们将在之后证明的Sets对偶于完备原子布尔代数的范畴.
  3. 一个范畴C箭头范畴CC的箭头为对象, 并且C中从对象f:ABf:AB的一个箭头g是一个"交换正方形"AABBffg1g2其中g1g2C中的箭头. 换句话说, 这样的一个箭头gC中的箭头序对(g1,g2)并且满足g2f=fg1.一个对象f:AB上的恒等箭头是序对(1A,1B). 箭头的复合是按分量计算的:(h1,h2)(g1,g2)=(h1g1,h2g2)读者应该画出合适的交换图以验证这个定义的确合理.
    观察到有两个函子:CdomCcodC
  4. 一个范畴C在对象CC上的切片范畴如下

第1.7节 自由范畴

自由幺半群. 我们从字母表A开始. 一个A上的词是来自于A的字母构成的有限序列. A的Kleene闭包A被定义为所有A上的词构成的集合. A上我们可以定义所谓的连接运算. 这个运算显然是结合的, 并且长度为零的空序列是其单位元. 因此, A形成了一个幺半群, 其被称为集合A上的自由幺半群. 元素aA可以被视为长度为一的词, 即我们有一个函数i:AA,aa虽然说以上的定义算是一种符号滥用 (abuse of notation) 吧. A的元素在某种意义上"生成"了这个自由幺半群, 即每个wA都是A的元素的积. 也就是说, 对于某些a1,a2,,anAw=a1a2an.

到底何谓"自由"呢? 我们称一个幺半群M是由其子集A自由生成的, 如果

  1. 每个mM都可以被写成A的元素之积:m=a1MMan,aiA.
  2. M中不存在"非平凡"的关系, 即如果a1aj=a1ak, 那么这是幺半群的公理所要求的.
第一个条件有时被称为"没有垃圾", 第二个条件有时被称为"没有噪音". 因此, A上的自由幺半群是包含A的没有垃圾也没有噪音的幺半群.

每个幺半群N都拥有一个作为基础的集合|N|, 而每个幺半群同态f:NM都可以导出一个集合之间的函数|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)NfSets之中:|M(A)||N|Aif|f|

命题1.9. A具有A上的自由幺半群的泛性质.
证明. 对于函数f:A|N|, 我们通过f(-)=uN其中-是空字符串而uN是幺半群N的单位元, 以及f(a1ai)=f(a1)NNf(ai)来定义f:AN, 其显然是一个同态, 并且满足对于每个aAf(a)=f(a).这仍然是符号滥用, 更准确地说, 左边的a实际上是i(a). 如果同态g:AN也满足对于每个aAg(a)=f(a), 那么对于所有a1aiA:g(a1ai)=g(a1ai)=g(a1)NNg(ai)=f(a1)NNf(ai)=f(a1)NNf(ai)=f(a1ai)=f(a1ai)于是, g=f, 证明就结束了. 怎么说呢, A是自由幺半群的玄机藏在似乎平凡的事实a1ai=a1ai之中. a1ai在某种意义上其实是一种双关, 它暗示了只有唯一一种将其表示为乘积a1ai的方式.

现在我们回头重新以泛性质来检视旧有的定义, 或者说思考泛性质是怎样捕获naive定义的想法的. 这个泛性质的存在性部分捕获了"没有噪音"的概念, 因为任意的生成元的代数组合之间的等式也对于其所映射至的东西成立, 也就是所有地方都成立. 唯一性部分捕获了"没有垃圾"的想法, 因为任何不是生成元的组合的元素, 其所映射至的东西可以是任意的值.

使用泛性质, 很容易表明自由幺半群M(A)在同构意义下是唯一的.

第1.8节 基础问题: 大, 小, 局部小

让我们首先区分以下两种东西:

  1. 数学的范畴论基础;
  2. 范畴论的数学基础.
对于第一点而言, 人们有时会听说范畴论可以用来提供"数学的基础", 作为集合论的替代物. 实际上的确如此, 但是这不是我们这里要做的事情. 在集合论中, 人们经常从存在性公理开始, 例如"存在一个无穷集合", 然后通过某些公理来导出更多的集合, 例如"每个集合都有一个幂集", 由此人们构筑了一个数学对象 (即集合) 的宇宙, 从原则上说它对于"所有的数学"而言应该是足够了. 我们的公理"每个箭头都有一个domain和一个codomain"不应该和集合论公理"每个集合都有一个幂集"以相同的方式理解! 区别在于, 在集合论中 (至少是一般意义上的集合论), 这些公理被认为是指 (或者说确定) 一个单一的由集合构成的宇宙. 而在范畴论中, 与之相对的是, 这些公理是某种东西的定义, 即范畴的定义. 这就像群论或者拓扑学, 其公理是为了定义需要检视的对象的, 而这些对象又被认为是存在于某种"背景"或者"基础"系统之中, 例如集合论 (或者类型论). 而集合论本身又可能使用范畴论确定, 或者以其他某种方式.

这将我们带至第二点: 我们假定我们的范畴是由集合和函数构成的, 以这样或那样的方式, 就和其他绝大多数数学对象一样, 然后开始考虑范畴论 (或者其他什么理论) 作为基础的可能性. 但是, 在范畴论中, 我们经常在通常的实践中遇到集合论的困难. 大多数这些问题是和"大小"有关的; 一些范畴"太大"以至于我们没法按照寻常集合论的方式妥当地进行处理. 在第1.5节里考虑Cayley表示时, 我们就已经遇到了这种问题. 那里我们要求考虑的范畴

第1.9节 练习

第2章 抽象结构

第2.1节 满态射和单态射

给定函数f:AB, 其被称为单射的, 如果对于所有的a,aA, f(a)=f(a)可以推出a=a; 其被称为满射的, 如果对于每个bB, 存在aA使得f(a)=b.

定义2.1. 在任意的范畴C中, 给定箭头f:AB, 其被称为是一个单态射(monomorphism), 如果对于任意的g,h:CA, fg=fh可以推出g=h; 其被称为是一个满态射(epimorphism), 如果对于任意的i,j:BD, if=jf可以推出i=j.

如果f是一个单态射, 那么我们记f:AB. 如果f是一个满态射, 那么我们记f:AB.

命题. 一个集合之间的函数f:AB是单态射恰当其为单射.
证明.f:AB. 令a,aA满足aa, 并令{x}是任意的一个单元素集.
例子2.3. 在许多类似于幺半群的结构化集合的范畴中, 单态射就恰为单射的同态. 更精确地说, 一个幺半群的同态h:MN是单态射恰当其基础函数|h|:|M||N|是单态射, 即前文的单射. 为了证明这点, 设h是一个单态射并取两个不同的元素x,y:1|M|, 其中1={}是任意的单元素集合.

第2.2节 始对象和终对象

现在我们考虑对于范畴Sets中的空集和单元素集的抽象刻画, 而这可以推广至一般范畴中从结构上考虑类似的对象.

定义2.9. 在任何范畴C中, 对象0被称为始对象, 如果对于任意的对象CC, 存在唯一的态射0C; 对象1被称为终对象, 如果对于任意的对象CC, 存在唯一的态射C1.

就像单态射和满态射一样, 我们应该注意到这定义中存在某种"对偶性". 精确地说, C中的终对象恰是Cop中的始对象. 我们在第3章中系统地考虑了对偶性.

首先, 我们应该注意到始对象和终对象的概念显然是泛性质, 这样的对象在同构意义下是唯一的, 就和自由幺半群一样.

命题2.10. 始对象在同构下是唯一的, 终对象也是.

第3章 对偶

第3.1节 对偶原理

第3.2节 余积

第3.3节 等化子

定义3.13. 在任何范畴C中, 给定平行的箭头AgfBfg的一个等化子由一个对象E和一个箭头e:EA构成, universal such thatfe=ge.此即是说, 给定任意的z:ZA满足fz=gz存在唯一u:ZE使得eu=z, 如图所示则为EZABfgezu

让我们考虑一些简单的例子.

例子3.14. 设我们有函数f,g:2, 其中f(x,y)=x2+y2g(x,y)=1我们取等化子, 比如说在Top范畴中. 这是子空间S={(x,y)2|x2+y2=1}2即平面中的单位圆. 这是因为, 给定任意的泛化元素z:Z2, 通过与两个投影进行复合, 我们就得到了一对这样的元素z1,z2:Z, z=z1,z2, 对于这些我们然后有f(z)=g(z)iffz12+z22=1iff"z1,z2=zS"其中最后一行实际上意味着z可以通过嵌入i:S2分解为z=iz [译注: 这里原文似乎有笔误, 将顺序颠倒了, 但未见于勘误], 如以下交换图表所示 [译注: 这里从S2实际上应该是嵌入箭头, 但是译者嫌麻烦, 还没有画]:SZ2x2+y21izz既然嵌入i是单态射, 这样的分解在存在的情况下必然是唯一的, 因而S2的确是fg的等化子.
例子3.15. 类似地, 在Sets中, 给定任意的函数f,g:AB, 其等化子是由等式定义的子集{xA|f(x)=g(x)}AA的嵌入. 其论证基本上和刚才给出的是一模一样的.

现在让我们暂停一下, 观察到一个基本事实. 实际上, 每个子集都具有这种等式性的形式, 即每个子集都是某对函数的等化子. 的确, 我们可以用非常canonical的方式构造出来. 首先, 让我们置2={,}将其想成是真值的集合, 然后考虑特征函数χU(x)={xUxU因此, 我们有U={xA|χU(x)=}于是, 以下是一个等化子:UAχU!2其中!=!:A!12. [译注: 原文是U!12, 但是译者认为这是作者的笔误.]

而且, 对于每个函数φ:A2我们可以构造variety(即等式性子集)Vφ={xA|φ(x)=}作为等化子, 以同样的方式. (将φ想成是定义于A上的一个命题函数, 子集VφA是由分离公理提供的φ外延.) [译注: 所谓命题函数, 也可以称为谓词.]

现在, 很容易看出来操作χUVφ是互逆的 [译注: 我更愿意省略dummy variable而说χV是互逆的, 当然这只是风格问题]:VχU={xA|χU(x)=}={xA|xU}=U对于任意的UA成立. 并且, 给定任意的φ:A2, 我们有χVφ(x)={xVφxVφ={φ(x)=φ(x)==φ(x)因此, 我们有熟悉的同构Hom(A,2)P(A)mediated by taking equalizers.

函数的等化子可以取子集这样一个事实实际上是一种更一般的现象的特殊情形.

命题3.16. 在任何范畴中, 如果e:EA是某对箭头的一个等化子, 那么e是一个单态射.
证明. [译注: 这个证明近乎于重复了一遍定义.] 考虑图表EZABfgezxy其中我们假定efg的等化子. 设ex=ey, 我们想要证明x=y. 置z=ex=ey, 那么fz=fex=gex=gz, 于是存在唯一u:ZE使得eu=z. 因此, 根据ex=zey=z可以推出x=u=y.
例子3.17. 在许多范畴中, 例如偏序集和幺半群的范畴, 一个平行箭头序对f,g:AB的等化子可以通过取作为基础函数的等化子按照以上方式构造出来, 即子集A(f=g)A, 其指的是满足f(x)=g(x)的所有元素xA构成的集合. 例如, 在偏序集中我们取从A限制到A(f=g)的序, 而在拓扑空间中, 我们取子空间拓扑.
在幺半群中, 子集A(f=g)A的运算下也是一个幺半群, 因此这个嵌入是一个同态. 这个的原因是 [译注: 当然十分显然] f(uA)=uB=g(uA), 并且如果f(a)=g(a)f(a)=g(a), 那么f(aa)=f(a)f(a)=g(a)g(a)=g(aa). 于是, A(f=g)包含单位元并在乘积运算下封闭.
在Abel群中, 我们可以有对于等化子的另外的描述方式, 使用以下事实f(x)=g(x)当且仅当(fg)(x)=0因此, fg的等化子就等于同态(fg)和零同态0:AB的等化子. 于是, 只需要对于任意的同态h:AB考虑特殊形式的等化子A(h,0)A就够了. 这个A的子群被称为h, 记作ker(h). 因此, 我们有等化子ker(fg)AgfB.同态的核在对于群的研究中具有根本的重要性, 在第4章中我们将进一步考虑这个概念.

第3.4节 余等化子

余等化子是对于由等价关系取商的泛化, 所以让我们从回顾这个概念开始, 当然我们已经用过很多次了. 首先回忆一下, 一个集合X上的一个等价关系是一个二元关系xy, 其满足

给定这样一个关系, 定义一个元素xX等价类[x]={yX|xy}.所有不同的等价类然后构成了X的一个划分, 意思是每个元素y都恰好位于其中一个集合中, 即[y] (证明一下!).

有时人们将等价关系想成是由具有某种相同性质 (例如具体相同的颜色) 的等价元素所产生的. 我们可以将等价类[x]当成是性质, 在这种意义下作为抽象对象 (比如说颜色红色, 蓝色, 等等, 它们本身). 这有时被称为definition by abstraction, 举例来说, 它描述了实数是如何从有理数的Cauchy序列构造出来的, 或者有限基数是如何从有限集合构造出来的.

所有等价类构成的集合X/={[x]|xX}或许可以被称为X除以. 当人们想要抽象出等价元素xy之间的差异时 [译注: 也就是忽略等价元素之间的差异], 就是使用X/代替X, 即在X/中这样的元素 (也仅是这样的元素) 会被等同起来, 因为[x]=[y]当且仅当xy.观察到商映射q:XX/其取x[x], 具有这样的性质, 即一个映射f:XY extends along q,XX/Yqf只要f尊重等价关系, 意即xy可以推出f(x)=f(y).

现在让我们来考虑对偶于等化子的概念, 即所谓的余等化子.

定义3.18. 对于某个范畴C中任意的平行箭头f,g:AB [译注: 老实说, 这本书的很多记号都不太一致, 但是理解意思就行了], 一个余等化子Qq:BQ构成, universal with the property qf=qg, 如下图所示ABQZfgquz也就是说, 给定任意的Zz:BZ, 如果zf=zg, 那么存在唯一的态射u:QZ使得uq=z.

首先观察到, 根据对偶性, 我们知道范畴C中的这样一个余等化子是范畴Cop中的一个等化子, 这个等化子根据命题3.16是单态射, 所以在C中这个余等化子应该是满态射.

命题3.19. 如果q:BQ是某对箭头的一个余等化子, 那么q是一个满态射.

因此, 我们可以将一个余等化子q:BQ想成是B的一种坍缩, 通过将所有序对f(a)=g(a)等同起来 (speaking as if there were such elements aA). 而且, 我们以最小的方式这么做, 也就是说, 尽可能少地打扰B, 在于我们总是可以将Q映射到任何其他的Z, 只要其中所有这样的等同起来都是成立的.

例子3.20.RX×X是集合X上的一个等价关系, 并考虑图Rr2r1X其中r1r2是嵌入 (inclusion) RX×X的两个投影, 即

第4章 群和范畴

第5章 极限和余极限