函子:范畴之间的映射
一旦范畴本身成为关注的对象,我们就想要它们之间的映射。[[functor|函子]] F : C → D 把 C 的每个对象 A 送到 D 的对象 F(A),把每个态射 f : A → B 送到态射 F(f) : F(A) → F(B),并满足 F(id_A) = id_{F(A)} 及 F(g∘f) = F(g)∘F(f)。函子就是范畴的同态:它保持恒等与复合。
- [[forgetful-functor|遗忘函子]] U : Grp → Set、Ring → Ab、Vect → Set 只是丢掉结构,把群送到其底层集合,把同态送到底层函数。容易忽视,却出人意料地重要。
- 自由函子 F : Set → Grp 把集合送到其上的自由群,把函数送到诱导同态。它们是遗忘函子的搭档(下一篇:伴随)。
- Hom-函子 Hom(A, −) : C → Set 把 B 送到集合 Hom(A, B)。它们是可表性与米田(第五篇)的种子。
- 反变函子翻转箭头:F(f) : F(B) → F(A)。对偶空间 V ↦ V* 是反变的——线性映射 T : V → W 诱导 T* : W* → V*。同调函子是协变的;上同调是反变的。
自然变换
若函子 F, G : C → D 是把 C 变成 D 的两种方式,[[natural-transformation|自然变换]] η : F ⇒ G 就是把一者协调地变形为另一者的方法。它对每个对象 A 给出 D 中的分量 η_A : F(A) → G(A),使得对每个 f : A → B 方块交换:η_B ∘ F(f) = G(f) ∘ η_A。“自然”意味着:在每个对象上用同一套配方,没有任何无法与映射交换的任意选择。
The naturality square (must commute for every f : A -> B):
eta_A
F(A) ----------> G(A)
| |
F(f) | | G(f)
v v
F(B) ----------> G(B)
eta_B
Example 1 -- determinant is natural.
Let F = GL_n(-) and G = (-)^x (units functor), CRing -> Grp.
det_R : GL_n(R) -> R^x for each commutative ring R.
For a ring map phi : R -> S, applying phi entrywise to a
matrix then taking det = taking det then applying phi:
det_S( phi(M) ) = phi( det_R(M) ).
The square commutes for every phi => det is NATURAL.
Example 2 -- double dual is natural; single dual basis is NOT.
eta_V : V -> V**, v |-> (f |-> f(v)), on finite-dim Vect.
For any linear T : V -> W, T** o eta_V = eta_W o T. Natural.
But V -> V* via a chosen basis depends on the basis: change
basis and the square fails. No natural iso V => V*.最后一点回答了每个线性代数学生的隐隐疑问:有限维 V 与 V* 同构,可这同构感觉“假”。范畴论把这感觉讲精确——并不存在自然的同构 V ⇒ V*,因为每个候选都需选定一组基,而选择破坏自然性。而无需选择的双对偶 V ⇒ V** 是自然的。含糊的“典范”一词终于有了定义:自然。