「同一个对象」是双射还是自然同构?——Yoneda 引理里最常被跳过的那一步
【锚点】这一篇只钉一个判断:Yoneda 引理说的不是「A 由它的关系决定」这句诗,而是「Nat(Hom(−,A), F) ≅ F(A),且这个双射对 A 与 F 自然」。被跳过的那半句——【自然性】——恰好是全部内容。
【显式】陈述:对局部小范畴 C 与函子 F: Cop → Set,存在自然同构 Nat(Hom_C(−,A), F) ≅ F(A)。取 F = Hom(−,B) 得推论:Yoneda 嵌入 C → [Cop, Set] 是【全忠实】的。
【流程节点链路】(推论证明骨架,一个节点都不省):起点「给定自然变换 η: Hom(−,A) ⇒ Hom(−,B)」→ 中间节点 1「把 η 作用在恒等态射 id_A ∈ Hom(A,A) 上,得到 η_A(id_A) ∈ Hom(A,B),即一个具体的箭头 f」→ 中间节点 2「自然性方块迫使 η_C(g) = f ∘ g 对所有 g: C→A 成立」→ 中间节点 3「故 η 完全由 f 决定,且 η ↦ f 与 f ↦ (g ↦ f∘g) 互逆」→ 终点「Hom(−,A) ≅ Hom(−,B) 蕴含存在唯一同构 A ≅ B」。跳过节点 1,你只剩口号;跳过节点 2,你不知道那个 f 是被自然性逼出来的,而不是被选出来的。
【显式】具体数字。拿两个 6 阶群做探针实验:S₃ 与 Z/6。Hom(Z/2, S₃) 的元素是满足 g²=e 的 g:恒等 + 3 个对换 = 4 个。Hom(Z/2, Z/6) 是 {0,3} = 2 个。两个同阶、非同构的群,用两个探针的计数就分开了。这就是 Yoneda 的算术版本:对象被「所有探针看到的东西」完全决定。
【隐式】但推论说的是全忠实,不是「关系就是对象的全部」。全忠实有一步很多人没消化:任意自然变换都来自对象层的一个具体箭头。也就是说,在固定好的范畴里,不存在「只在关系层涌现、而不由任何单个态射诱导」的信息。这是可证明的关系主义,不是抒情的关系主义。
【细微】最常被踩的地方:把「逐点同构」当成「同构」。经典反例——有限维向量空间范畴上,恒等函子 Id 与对偶函子 (−) 在每个对象上都同构(维数相同),但【不存在】自然同构;存在的自然同构是 Id ≅ (−)*,它把向量送到「对每个线性泛函求值」这个不依赖基的映射。逐点看,探针给出完全一样的基数;自然性方块一画,两个函子立刻分开。所以「A 与 B 在所有探针下像」这句话,缺了自然性就什么也没说——这是范畴论版的「相关不等于因果」。
【极难发现】Yoneda 的完备性是相对于你选定的环境范畴的。把允许的箭头改掉——限制到子范畴、换一个 site、插一层遗忘函子——「A 是什么」就跟着变。群范畴里 Z/2 与它底层的二元集合不是同一个对象;在 Set 里它们根本不在同一个对话里。很多「X 到底是什么」的争论,争的不是 X,而是哪个范畴算数。
【可辩论的问题】如果对象的同一性就是 Hom(−,A),那么「在更粗的范畴里它们是同一个」是事实还是约定?两个理论在某个范畴等价下是同一个理论——这个等价是发现,还是我们选择不去区分?我倾向前者,但需要一条判据:等价必须由保持我们真正关心的结构的函子实现,否则它只是把问题扫进了遗忘函子。






0 Comments