[来自 李文威《代数学方法》第二章、《代数学讲义》附录B]

    概括来说:
  1. 范畴 (category)是由对象及其间的态射组成的: `X overset f to Y`. 这里 `X, Y` 是对象, `f` 是态射.
  2. 函子 (functor)则是范畴间保持箭头结构的“映射”: `cc C' overset F to cc C`. 这里 `cc C', cc C` 是范畴, `F` 是函子.
  3. 自然变换描述了函子之间的关系: `F overset theta to G`, 这里 `F, G` 是函子, `theta` 是自然变换.
  4. 箭头图表在范畴论中随处可见, 但箭头可以有以上几种不同的含义, 需根据上下文加以辨析.

范畴

范畴的定义

    一个范畴 `cc C` 由它的对象集合 `"Ob"(cc C)` 和态射集合 `"Mor"(cc C)` 组成, 此外还有:
  1. 来源映射目标映射 `s, t: "Mor"(cc C) to "Ob"(cc C)`. 若 `f` 是一个态射, 那么 `X := s(f)`, `Y := t(f)` 都是对象, `f` 称为从 `X` 到 `Y` 的态射, 记为 `X overset f to Y`.
  2. 对于 `X, Y in "Ob"(cc C)`, 全体从 `X` 到 `Y` 的态射称为 `(X, Y)` 的 Hom-集: `"Hom"_(cc C)(X, Y) := s^-1(X) nn t^-1(Y)`.
  3. 对每个对象 `X`, 都指定元素 `"id"_X in "Hom"_(cc C)(X, X)`, 称为 `X` 到自身的恒等态射.
  4. 对任意对象 `X, Y, Z`, 定义态射合成为下面的二元运算, 它把 `X to Y` 和 `Y to Z` 的态射合成为 `X to Z` 的态射: `@: "Hom"_(cc C)(Y, Z) xx "Hom"_(cc C)(X, Y) to "Hom"_(cc C)(X, Z)`
    `(f, g) mapsto f @ g`.
    `f @ g` 也可以简记为 `f g`. 态射的合成满足: `f(g h) = (f g)h quad` (结合律)
    `f @ "id"_X = f = "id"_Y @ f quad`(恒等态射的性质).
    恒等态射的性质保证了 `"id"_X` 的唯一性.
  1. 态射的逆 设态射 `f: X to Y`, 若存在 `g: Y to X` 使得 `f g = "id"_Y`, `g f = "id"_X`, 则称 `g` 是 `f` 的逆, `f` 是可逆态射或同构. `X` 到 `Y` 的全体同构记为 `"Isom"_(cc C)(X, Y)`. 由恒等态射的性质知道, 逆若存在则必唯一. 若一个范畴中的所有态射都可逆, 则称它为广群.
  2. 简记 `"End"_(cc C)(X) := "Hom"_(cc C)(X, X)`, `"Aut"_(cc C)(X) := "Isom"_(cc C)(X, X)`, 分别称为 `X` 的自同态集自同构集. `"End"(X)` 是幺半群, `"Aut"(X)` 是群.
  3. 对象集和态射集皆空的范畴称为空范畴, 记为 `bb 0`.

以字母表示对象, 箭头表示态射, 范畴可以用箭头图表很好地可视化. 如果图表中的箭头合成殊途同归, 我们就说它是交换的, 故箭头图表又称为交换图表. 比如下图就有 `g f = h` 和 `v u = y x`. 这些图表可以用 quiver 在线绘制.

条条大路通罗马,所以交换图表是不是也可以叫做罗马表(

子范畴、反范畴、积范畴

    称 `cc C'` 是 `cc C` 的子范畴, 如果
  1. `"Ob"(cc C') sube "Ob"(cc C)`;
  2. `"Mor"(cc C') sube "Mor"(cc C)`, 并保持恒等态射;
  3. 来源/目标映射是由 `cc C` 限制而来的;
  4. `cc C'` 中态射的合成也是由 `cc C` 限制而来的.
  5. 总之, 对任意 `X, Y in "Ob"(cc C')`, 成立 `"Hom"_(cc C')(X, Y) sube "Hom"_(cc C)(X, Y)`. 上式等号成立时称 `cc C'` 是全子范畴. 从图表上看, 子范畴就是从原图表中去掉一些点和箭头得到的图表. 如果仅仅移除点 (以及这些点关联的箭头), 而不去移除其它箭头的话, 得到的图表就是全子范畴.
    设 `cc C` 是范畴, 将其箭头全部反转, 定义反范畴如下:
  1. `"Ob"(cc C^"op") = "Ob"(cc C)`;
  2. 对任意对象 `X, Y`, `"Hom"_(cc C^"op")(X, Y) := "Hom"_(cc C)(Y, X)`;
  3. 恒等态射定义同 `cc C`.
  4. `cc C^"op"` 中态射的合成 `f @^"op" g` 定义为 `cc C` 中的反向合成 `g @ f`;
  5. 我们有 `(cc C^"op")^"op" = cc C`. 范畴与反范畴之间对称的关系也叫做对偶原理. 比如, `cc C^"op"` 中的单态射就是 `cc C` 中的满态射.
    给定范畴 `cc C_1`, `cc C_2`, 定义积范畴如下:
  1. 对象: `"Ob"(cc C_1 xx cc C_2) = "Ob"(cc C_1) xx "Ob"(cc C_2)`.
  2. 态射: `"Hom"_(cc C_1 xx cc C_2)((X_1, X_2),(Y_1, Y_2))` `= "Hom"_(cc C_1)(X_1, Y_1) xx "Hom"_(cc C_2)(X_2, Y_2)`.
  3. 态射的合成: `(g_1, g_2) @ (f_1, f_2) := (g_1 f_1, g_2 f_2)`.
  4. 恒等态射: `"id"_(X_1, X_2) := ("id"_(X_1), "id"_(X_2))`.
  5. 总之, 一切都是逐分量地定义的. 积范畴可以推广到有限个乘积的情形.

范畴的例子

"全体集合" 这个概念太大, 已不是一个集合. 为了适用范畴的定义, 我们总是事先取定一个宇宙 `cc U`, 以下的集合、群、拓扑空间等, 都是在这个宇宙中进行讨论的.

  1. 集合范畴 `sf(Set)`: 对象为 (某个宇宙中的) 所有集合, 态射为集合间的映射.
  2. 群范畴 `sf(Grp)`: 对象为所有群, 态射为群同态.
  3. 交换群范畴 `sf(Ab)`: 对象为所有交换群, 态射为群同态, 它是 `sf(Grp)` 的全子范畴.
  4. 拓扑空间范畴 `sf(To p)`: 对象为所有 Hausdorff 拓扑空间, 态射为连续映射. 类似定义带基点的拓扑空间范畴 `sf(To p)^ast`.
  5. 域 `bbb k` 上的向量空间范畴 `sf(V ect)(bbb k)`: 对象为 `bbb k` 上所有向量空间, 态射为线性映射. 类似定义有限维向量空间范畴 `sf(V ect)_(f)(bbb k)`, 它是 `sf(V ect)(bbb k)` 的全子范畴.
  6. 给定集合, 可以定义相应的离散范畴 `sf(Disc)(S)`: 对象集为 `S`, 态射仅有恒等态射 `{"id"_x: x in S}`.

单态射与满态射

    设 `X, Y in "Ob"(cc C)`, `f: X to Y`.
  1. 称 `f` 为单态射, 如果它满足左消去律: 对任意 `Z in "Ob"(cc C)` 和任意 `g, h: Z to X` 有 `f g = f h iff g = h`.
  2. 称 `f` 为满态射, 如果它满足右消去律: 对任意 `Z in "Ob"(cc C)` 和任意 `g, h: Y to Z` 有 `g f = h f iff g = h`.
  3. 称 `f` 左可逆, 如果存在 `g` 使得 `g f = "id"_X`; 称 `f` 右可逆, 如果存在 `g` 使得 `f g = "id"_Y`. 一个态射可逆当且仅当它左右皆可逆.

左可逆蕴涵单, 右可逆蕴涵满.

设 `f` 左可逆, 从等式 `f g = f h` 两边同乘以 `f` 的左逆就得到 `g = h`.

在集合论意义下, 单态射等价于左可逆, 满态射等价于右可逆. 范畴论中则未必: 在有些范畴中如 `sf(Set)`, `sf(Grp)`, `sf(V ect)(bbb k)` 中它们是等价的, 但在 `sf(To p)` 中, 态射有稠密的像便是满态射.

  1. 设 `f, g, h` 是集合间的映射, `f g = f h rArr g = h`. 可以取 `g, h` 为常值映射 `g: z mapsto x_1`, `h: z mapsto x_2`. 于是 `f(x_1) = f(x_2) rArr x_1 = x_2`. 这证明了 `f` 是单射.
  2. 又设 `g f = h f rArr g = h`, 反设 `f` 不是满射, 则 `EE y_0 in Y - f(X)`. 我们可以让 `g(y), h(y)` 在 `y in f(X)` 时相等, 但 `g(y_0) != h(y_0)`. 此时 `g f = h f` 但 `g != h`, 矛盾.
    假如 `g, h` 是拓扑空间之间的连续映射, 且 `f` 有稠密的像, 我们并不能找到 `y_0` 使 `g(y_0) != h(y_0)`. 这就是 `sf(To p)` 中满态射不等于右可逆的原因.

函子

函子是范畴到范畴的 "态射", 它将一个交换图表映为另一个交换图表.

    设 `cc C', cc C` 为范畴. 一个函子 `F: cc C' to cc C` 由一对映射组成:
  1. 对象间的映射 `F: "Ob"(cc C') to "Ob"(cc C)`;
  2. 态射间的映射, 仍用同一个字母: `F: "Mor"(cc C') to "Mor"(cc C)`.
  3. `F` 需保持态射的来源与目标. 设 `s, t` 分别是来源映射和目标映射, 则 `s F = F s`, `t F = F t`. 即, 对任意对象 `X, Y in cc C'` 有映射 `F: "Hom"_(cc C')(X, Y) to "Hom"_(cc C)(F X, F Y)`.
  4. `F` 需保持态射的合成与恒等态射: `F(g @ f) = F(g) @ F(f)`, `F("id"_X) = "id"_(F X)`.
  1. 函子的合成. 设 `F: cc C_1 to cc C_2`, `G: cc C_2 to cc C_3`, 将它们对象间与态射间的映射分别合成, 就得到合成函子 `G @ F`. 函子的合成满足结合律.
  2. 形如 `cc C' to cc C` 的函子称为共变函子, `cc {:C':}^"op" to cc C` 称为反变函子. 反变函子的定义在对象层次与前相同, 在态射层次则要求反转箭头方向.
  3. 由于反范畴与范畴只在箭头方向上不同, 函子 `F: cc C' to cc C` 和 `F^"op": cc {:C':}^"op" to cc C^"op"` 是一回事.
    对于函子 `F: cc C' to cc C`,
  1. 称 `F` 是本质满的, 若 `cc C` 中任一对象都同构于某个 `F X`. 这是把满射定义中的 "等于" 换成了 "同构于".
  2. 称 `F` 是忠实的, 若对所有对象 `X, Y in "Ob"(cc C')`, 态射之间的映射 `"Hom"_(cc C)(X, Y) to "Hom"_(cc C)(F X, F Y)` 都是单射. 也就是说, `X, Y` 的箭头到 `F X, F Y` 的箭头之间是单射.
  3. 称 `F` 是的, 如果 2. 中的映射都是满射.
  4. 既忠实又全的函子称为全忠实的.

忠实是比单射弱的一个概念. 可能出现这样的情况: `X, Y, Z` 是 `cc C'` 的不同对象, 但 `F Y = F Z`, 这时一个忠实的函子允许箭头 `X to Y` 和 `X to Z` 被映到同一个箭头. 同理 "全" 是比满射弱的概念.

  1. 设 `cc C'` 为 `cc C` 的子范畴, 则包含函子 `iota: cc C' to cc C` 是忠实的, 它在对象和态射层次都是包含映射; 它是全忠实的当且仅当 `cc C'` 是 `cc C` 的全子范畴.
  2. 忘却函子 忘却环的乘法, 可以将它视为加法群; 忘却所有结构便得到底层的集合. 在对象层次, 这些函子忘却一部分的代数结构 (环的乘法、向量空间的纯量乘法...), 在态射层次, 这些函子化为箭头之间的包含映射. 比如 `sf(Ri ng)` 到 `sf(Ab)` 的忘却函子就把两个环 `R, R'` 之间的环同态映为两个加法群的群同态. 忘却函子都是忠实的.

自然变换

自然变换 设函子 `F, G: cc C' to cc C`. 从 `F` 到 `G` 的自然变换 `theta: F rarr G` 定义为一族态射 `theta = { theta_X in "Hom"_(cc C)(F X, G X): X in "Ob"(cc C') }`. 其中 `theta_X` 表示从 `F X` 到 `G X` 的箭头. 自然变换要求对所有态射 `f: X to Y` 有 `theta_X @ G f = F f @ theta_Y`, 即下图交换:
自然变换1
另一种常见的图解方式为:
自然变换2
自然变换 `theta: F to G` 和 `psi: G to H` 的合成定义为 `psi theta: F to H`, 使得 `(psi theta)_X = psi_X theta_X`. 合成运算满足结合律.
  1. 记函子 `F: cc C' to cc C` 到自身的恒等变换 `"id"_F := { "id"_(F X): X in "Ob"(cc C') }`.
  2. 若 `theta: F to G` 中的态射皆为同构, 则称 `theta` 是同构, 定义其逆 `theta^-1: G to F` 为 `theta^-1 := { theta_X^-1: theta_X in theta }`. 可以验证 `theta^-1 theta = "id"_F`, `theta theta^-1 = "id"_G`.
    设 `theta: F_1 to F_2` 是自然变换. 我们可以左乘或右乘一个函子, 得到:
  1. `theta G := {theta_(G Y)}_Y: F_1 G to F_2 G`.
  2. `H theta := {H theta_X}_X: H F_1 to H F_2`.
  3. 当然, 前提是函子的合成 `F_1 G`, `F_2 G`, `H F_1`, `H F_2` 有意义. 我们有结合律 `(H theta) G = H (theta G)`. 若 `theta` 是同构, 则 `theta G, H theta` 也是同构.