范畴论中的Yoneda引理
字数 887 2025-11-16 06:14:07

范畴论中的Yoneda引理

我们先从最基础的范畴概念开始。范畴由对象和对象之间的箭头(称为态射)组成,且态射满足结合律和单位律。例如,所有集合构成一个范畴Set,其中对象是集合,态射是集合之间的函数。

接下来需要理解局部小范畴:对任意两个对象A和B,所有从A到B的态射构成一个集合(而非真类)。这在Yoneda引理中是重要前提。

现在定义预层:对于范畴C,一个取值在Set的预层是一个函子F: C^op → Set。这意味着:

  • 对每个对象X,F(X)是一个集合
  • 对每个态射f: X → Y,F(f): F(Y) → F(X)是集合函数(注意方向反转)

特别重要的是可表函子。如果存在对象A使得F与Hom(A, -)自然同构,则称F被A表示。这里Hom(A, -)是将对象X映射到所有A→X态射的集合的函子。

Yoneda引理的核心是Yoneda嵌入:定义函子y: C → [C^op, Set],将对象A映射到Hom(A, -)。这个嵌入是满忠实函子,即它完全保持范畴结构。

现在来到关键的Yoneda引理
对任意预层F: C^op → Set和任意对象A,存在双射:
Nat(Hom(A, -), F) ≅ F(A)
其中Nat表示自然变换的集合。

理解这个同构需要明确:

  1. 左边是Hom(A,-)到F的所有自然变换的集合
  2. 右边就是F在A处的取值
  3. 这个同构是自然的,即对A和F都是自然的

证明的关键在于观察到:给定自然变换α: Hom(A,-) → F,对应元素为α_A(id_A) ∈ F(A);反过来,给定元素u ∈ F(A),定义自然变换通过在f: A→X处取值F(f)(u)。

Yoneda引理的一个重要推论是:对象A由Hom(A,-)唯一决定(精确到同构)。这意味着要理解一个对象,只需理解所有指向其他对象的箭头。

在计算机科学中,Yoneda引理为数据结构表示和程序变换提供了理论基础。例如,它启发了continuation-passing style变换的范畴解释,其中数据类型由其观察方式(即所有可能的"使用方法")完全确定。

范畴论中的Yoneda引理 我们先从最基础的范畴概念开始。范畴由对象和对象之间的箭头(称为态射)组成,且态射满足结合律和单位律。例如,所有集合构成一个范畴Set,其中对象是集合,态射是集合之间的函数。 接下来需要理解 局部小范畴 :对任意两个对象A和B,所有从A到B的态射构成一个集合(而非真类)。这在Yoneda引理中是重要前提。 现在定义 预层 :对于范畴C,一个取值在Set的预层是一个函子F: C^op → Set。这意味着: 对每个对象X,F(X)是一个集合 对每个态射f: X → Y,F(f): F(Y) → F(X)是集合函数(注意方向反转) 特别重要的是 可表函子 。如果存在对象A使得F与Hom(A, -)自然同构,则称F被A表示。这里Hom(A, -)是将对象X映射到所有A→X态射的集合的函子。 Yoneda引理的核心是 Yoneda嵌入 :定义函子y: C → [ C^op, Set ],将对象A映射到Hom(A, -)。这个嵌入是满忠实函子,即它完全保持范畴结构。 现在来到关键的 Yoneda引理 : 对任意预层F: C^op → Set和任意对象A,存在双射: Nat(Hom(A, -), F) ≅ F(A) 其中Nat表示自然变换的集合。 理解这个同构需要明确: 左边是Hom(A,-)到F的所有自然变换的集合 右边就是F在A处的取值 这个同构是自然的,即对A和F都是自然的 证明的关键在于观察到:给定自然变换α: Hom(A,-) → F,对应元素为α_ A(id_ A) ∈ F(A);反过来,给定元素u ∈ F(A),定义自然变换通过在f: A→X处取值F(f)(u)。 Yoneda引理的一个重要推论是:对象A由Hom(A,-)唯一决定(精确到同构)。这意味着要理解一个对象,只需理解所有指向其他对象的箭头。 在计算机科学中,Yoneda引理为数据结构表示和程序变换提供了理论基础。例如,它启发了continuation-passing style变换的范畴解释,其中数据类型由其观察方式(即所有可能的"使用方法")完全确定。