Теория категорий

Лемма Ёнеды

«Объект полностью определяется своими связями» - это звучит как философия, но лемма Ёнеды делает из этого точную теорему. Она объясняет Church encoding в лямбда-исчислении, parametricity в системах типов, представляющие объекты в алгебраической геометрии. Это одна из самых «полезных» теорем в математике - и при этом одна из самых простых в формулировке.

  • **Church encoding**: натуральные числа как функции `type Nat = <R>(f: (r: R) => R, z: R) => R` - это ровно вложение Ёнеды для натуральных чисел как монойда
  • **Parametricity**: теорема Рейнольдса о параметрических типах - прямое следствие леммы Ёнеды. Полиморфная функция `id: <A>(a: A) => A` единственна - это Ёнеда
  • **Алгебраическая геометрия**: схемы Гротендика определяются через их точки-морфизмы из других схем. «Представляемость функторов точек» - центральная задача модульной теории

Предварительные знания

  • Adjoint Functors

Yoneda

Лемма Ёнеды - возможно, самый глубокий результат теории категорий. Её можно сформулировать так: **объект полностью определяется тем, как в него отображаются другие объекты**. Или двойственно: как он отображается в другие. Это категорное воплощение принципа «друзья объекта определяют его самого».

**Лемма Ёнеды**: для любой локально малой категории C, любого объекта A ∈ C и любого функтора F: C → Set существует естественная биекция: Nat(Hom(A, -), F) ≅ F(A). Здесь Nat - множество всех естественных преобразований. Биекция отправляет α: Hom(A,-) ⇒ F в элемент α_A(id_A) ∈ F(A).

Неформально: чтобы задать естественное преобразование из Hom(A,-) в F, достаточно выбрать один элемент F(A). Всё остальное определяется автоматически. Это удивительно: из одного «стартового» элемента вся бесконечная семья морфизмов α_B восстанавливается единственным образом.

Нобуо Ёнеда

Нобуо Ёнеда (1930-1996) - японский математик и информатик. По легенде, лемма была сформулирована в разговоре с Маклейном на платформе парижского метро в 1954 году. Ёнеда работал и над теорией категорий, и над ранними языками программирования; он участвовал в разработке одного из первых японских компиляторов для COBOL.

Согласно лемме Ёнеды, естественное преобразование α: Hom(A,-) ⇒ F полностью определяется:

Representable

Функтор F: C → Set называется **представимым**, если он изоморфен Hom(A,-) для некоторого A ∈ C. Представимые функторы - это «функторы, которые «помнят» объект». Лемма Ёнеды говорит: объект A полностью определяется функтором Hom(A,-). Это значит, что категорию C можно «вложить» в категорию функторов, не теряя информации.

Функтор F: C → Set **представим**, если существует объект A ∈ C и изоморфизм Nat(Hom(A,-), F) ≅ F(A), причём сам F ≅ Hom(A,-). Объект A называется **представляющим объектом** для F. Пара (A, u) где u ∈ F(A) - **универсальный элемент** - единственно определяет представление.

**Примеры представимых функторов**: в Top функтор «связные компоненты» π₀: Top → Set представим кругом S¹... нет: π₀ представим двухточечным пространством {0,1} - морфизмы {0,1} → X соответствуют парам точек из разных компонент. Функтор «фундаментальная группа» π₁: Top* → Grp - не представим в Top, но представим в категории H-пространств.

Функтор F: C → SetПредставляющий объект AКатегория C
F(B) = Hom(A, B)A (тавтологически)Любая C
F(B) = B × B (пары)A = 1 + 1 = {0,1}Set
F(B) = {f: B→B, f∘f=f} (идемп.)B = ℕ (натуральные числа)Set (приближение)
F(B) = |B| (носитель алгебры)A = свободная алгебра на 1 генератореAlg

Функтор F: C → Set представим, если:

Presheaf

**Пресноп** (presheaf) на категории C - это контравариантный функтор F: C^{op} → Set, то есть функтор из противокатегории в Set. Пресноп «приписывает» каждому объекту множество «секций», а каждому морфизму - операцию «ограничения». Категория всех преснопов на C обозначается Ĉ = Set^{C^{op}} и является ключевым объектом теории категорий.

**Пресноп** на C - функтор F: C^{op} → Set. Для объекта U - множество F(U) «секций над U». Для морфизма f: V → U - функция ограничения F(f): F(U) → F(V). Категория Ĉ = [C^{op}, Set] называется **категорией преснопов** на C. Она обладает всеми пределами и копределами.

Важнейший пример: **топологические снопы**. Пресноп на открытых множествах топологического пространства X - это «локальные данные», определённые на каждом открытом U, с операциями ограничения. Если данные «склеиваются» согласованно, пресноп является **снопом** (sheaf). Снопы - основа современной алгебраической геометрии (Гротендик).

Снопы и Гротендик

Александр Гротендик в 1950-60-х построил алгебраическую геометрию на основе снопов и категорий. Его понятие «топоса» (обобщённого топологического пространства) - это категория преснопов с дополнительными свойствами. Гротендик использовал это для доказательства гипотез Вейля - глубоких результатов теории чисел, требовавших 30 лет работы.

Пресноп на категории C - это:

Embedding

Лемма Ёнеды немедленно даёт **вложение Ёнеды**: полный и точный функтор y: C → Ĉ = [C^{op}, Set], отправляющий A в пресноп Hom(-, A). Это означает: любая категория C вкладывается в более богатую категорию преснопов, не теряя информации. В Ĉ существуют все пределы и копределы - даже если в C их нет.

**Вложение Ёнеды** y: C → [C^{op}, Set] определено как y(A) = Hom_C(-, A). Это вложение **полное и точное** (fully faithful): Hom_C(A, B) ≅ Nat(y(A), y(B)). Следствие: A ≅ B в C тогда и только тогда, когда y(A) ≅ y(B) в Ĉ. Объект определяется своими «входящими стрелками».

**Практическое следствие**: для проверки изоморфизма A ≅ B достаточно проверить, что для всех X функции Hom(X, A) → Hom(X, B) являются биекциями, естественными по X. Это называется «принципом Ёнеды» - объект определяется своими «точками» из всех других объектов. В программировании это принцип «parametricity»: тип определяется своим поведением для произвольных аргументов.

**Теорема о плотности**: любой пресноп F: C^{op} → Set является колимитом представимых преснопов. Это категорная аналогия теоремы о том, что любая функция - предел (или колимит) дельта-функций. Вложение Ёнеды - «базис» в категории преснопов.

Лемма Ёнеды - это просто технический результат о функторах, не имеющий практического смысла

Лемма Ёнеды - философский принцип: объект определяется своими связями с другими объектами. Это основа «point-free» стиля в математике и программировании

В программировании: parametricity (типы определяются поведением), encode/decode через universal properties, Church encoding (натуральные числа как функции). В математике: представимые функторы - основа алгебраической геометрии, теории деформаций, модульных пространств. Лемма Ёнеды - это мощный практический инструмент.

Вложение Ёнеды y: C → [C^{op}, Set] является «полным и точным» (fully faithful). Что это означает?

Ключевые идеи

  • **Лемма Ёнеды**: Nat(Hom(A,-), F) ≅ F(A) - естественное преобразование из Hom(A,-) определяется одним элементом
  • **Представимый функтор** F ≅ Hom(A,-) - функтор, «помнящий» объект A; пара (A, u) с u ∈ F(A) единственна с точностью до изоморфизма
  • **Пресноп** - контравариантный функтор C^{op} → Set; категория преснопов Ĉ полна и кополна
  • **Вложение Ёнеды** y: C ↪ [C^{op}, Set] полное и точное: объект определяется своими входящими стрелками

Связанные темы

Лемма Ёнеды связана с большинством конструкций теории категорий:

  • Топосы — Топос - это категория преснопов с дополнительными аксиомами. Лемма Ёнеды - основа внутренней логики топоса
  • Сопряжённые функторы — Представимые функторы тесно связаны с сопряжениями: правый сопряжённый представим через Hom

Вопросы для размышления

  • Church encoding натуральных чисел: `type Nat = <R>(s: (r: R) => R, z: R) => R`. Покажите, что это вложение Ёнеды для натуральных чисел, рассматриваемых как моноид (ℕ, +, 0).
  • Функтор F: C → Set называется «копредставимым» (corepresentable), если F ≅ Hom(-,A). Как это связано с вложением Ёнеды? Постройте двойственную версию леммы.
  • Почему полнота и точность вложения y означает, что «объект определяется своими стрелками»? Сформулируйте это как конкретное утверждение об изоморфизмах.

Связанные уроки

  • aa-03-homomorphisms
  • plt-11-typeclasses
Лемма Ёнеды

0

1

Войти