Русская Википедия:Естественное преобразование

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

В теории категорий есте́ственное преобразова́ние предоставляет способ перевести один функтор в другой, сохраняя внутреннюю структуру (например, композиции морфизмов). Поэтому естественное преобразование можно понимать как «морфизм функторов». Эта интуиция может быть строго формализована в определении категории функторов. Естественные преобразования — наиболее базовое определение в теории категорий наряду с функторами, потому что оно появляется в большинстве её приложений.

Определение

Пусть <math>F</math> и <math>G</math> — ковариантные функторы из категории <math>C</math> в <math>D</math>. Тогда естественное преобразование из <math>F</math> в <math>G</math> сопоставляет каждому объекту <math>X</math> категории <math>C</math> морфизм <math>\eta_X\colon F(X) \to G(X)</math> в категории <math>D</math>, называемый компонентой <math>\eta</math> в <math>X</math>, так, что для любого морфизма <math>f\colon X \to Y</math> диаграмма, изображённая на рисунке ниже, коммутативна. В случае контравариантных функторов <math>C</math> и <math>D</math> определение совершенно аналогично (необходимо только обратить горизонтальные стрелки, учитывая, что их обращает контравариантный морфизм).

Файл:Natural transformation.svg

Если η — естественное преобразование функтора F в функтор G, мы пишем η : FG. Также об этом говорят, что семейство морфизмов ηX : F(X) → G(X) естественно по X.

Если для каждого X в C морфизм ηX является изоморфизмом в D, то η называют естественным изоморфизмом (или, иногда, естественной эквивалентностью или изоморфизмом функторов).

Инфраестественное преобразование η из F в G — это просто семейство морфизмов ηX: F(X) → G(X). Натурализатор η, nat(η), — это самая большая подкатегория C, содержащая те объекты C, в ограничении на которые η является естественным преобразованием.

Если η : FG и ε : GH — естественные преобразования, мы можем взять их композицию и получить естественное преобразование εη : FH. Это делается покомпонентно: (εη)X = εXηX. Эта операция ассоциативна и имеет единицу, что позволяет образовать категорию функторов.

Примеры

Пример естественного преобразования

Примером естественного преобразования может служить определитель. В самом деле пусть <math>R</math> — коммутативное кольцо, тогда квадратные матрицы порядка <math>n</math> над <math>R</math> образуют моноид по умножению, а <math>R'</math> — мультипликативный моноид самого кольца <math>R</math>. Пусть <math>\mathbf{Mat}_n(R)</math> будет функтором, переводящим кольцо <math>R</math> в моноид матриц над ним. Поскольку определитель выражается через умножение, сложение и вычитание, которые сохраняются морфизмами кольца <math>R</math> (что означает перестановочность морфизма и этих операций), отображение <math>\mathbf{Mat}_n(R)\rightarrow \det(\mathbf{Mat}_n(R))</math> будет естественным преобразованием между функтором <math>\mathbf{Mat}_n(R)</math> и функтором, тождественно сопоставляющим каждому кольцу <math>R</math> его мультипликативный моноид (оба функтора из категории <math>\mathbf{CRing}</math> коммутативных колец в категорию моноидов <math>\mathbf{Mon}</math>).

Пример «неестественного» преобразования

Приведём пример преобразования, не являющегося естественным. Пусть <math>V</math> — n-мерное векторное пространство над полем <math>\mathbb F</math>. <math>e_1,e_2,\dots,e_n</math> — его базис, <math>e^1,e^2,\dots,e^n</math> — базис сопряжённого пространства функционалов <math>D(V)</math>, такой что

<math>e^i(e_j) = \delta^i_j</math>

где <math>\delta^i_j</math> — символ Кронекера. Все n-мерные пространства изоморфны. Положим

<math>k(e_i)=e^i</math>

и распространим <math>k</math> линейно на всё пространство <math>V</math>. <math>k</math> отображает тождественный (очевидно ковариантный) функтор <math>I</math> в контравариантный функтор <math>D</math>, отображающий векторное пространство в сопряжённое пространство функционалов. Если мы возьмём категорию конечномерных векторных пространств, где морфизмами будут изоморфизмы <math>f</math> (а не любые линейные отображения), то можно заменить контравариантный функтор <math>D</math> ковариантным функтором <math>D'</math> (где <math>D'(V) = D(V)</math>, <math>D'(f) = D(f^{-1})</math>). Преобразование <math>k\colon V \to D(V)</math> не будет естественным даже в простейшем случае одномерного пространства над полем действительных чисел. В самом деле, пусть V одномерно и изоморфизм <math>f\colon V\to V</math> является умножением на 2:

<math>f(e_1) = 2 e_1</math>

Тогда <math>D'(f)(k(e_1)) = {1 \over 2}e^1</math>, в то время как <math>k(f(e_1)) = 2 e^1</math>, то есть диаграмма некоммутативна.

Причина этого совершенно ясна — <math>k</math> определяется совершенно случайно выбранным базисом. Если мы возьмём второе сопряжённое пространство <math>D(D(V))</math>, то в случае конечномерного пространства существует изоморфизм <math>h\colon V \to D(D(V))</math> (а именно <math>h(x)(f) = f(x)</math> для любого <math>x\in V</math> и функционала <math>f\in D(V)</math>). В данном случае изоморфизм <math>h</math> определяет естественное преобразование тождественного функтора <math>I</math> в функтор <math>D^2</math>.

Полиморфные функции

Другой важнейший пример естественных преобразований — полиморфные функции (имеется в виду параметрический полиморфизм). Примером такого преобразования является функция reverse :: forall a . [a] -> [a], переворачивающая список элементов произвольного типа. В данном случае h(T) — это reverseT :: [T] -> [T]; а функторы F и G — это List.

Сформулировать этот факт можно так: forall f :: a -> b : map f . reversea = reverseb . map f. Это — одна из так называемых «бесплатных теорем».

Естественность всех параметрически полиморфных функций — это следствие теоремы Рейнольдса.

Литература