Естественное состояние
- 1 year ago
- 0
- 0
В теории категорий есте́ственное преобразова́ние предоставляет способ перевести один функтор в другой, сохраняя внутреннюю структуру (например, композиции морфизмов). Поэтому естественное преобразование можно понимать как «морфизм функторов». Эта интуиция может быть строго формализована в определении категории функторов . Естественные преобразования — наиболее базовое определение в теории категорий наряду с функторами, потому что оно появляется в большинстве её приложений.
Пусть и — ковариантные функторы из категории в . Тогда естественное преобразование из в сопоставляет каждому объекту категории морфизм в категории , называемый компонентой в , так, что для любого морфизма диаграмма, изображённая на рисунке ниже, коммутативна. В случае контравариантных функторов и определение совершенно аналогично (необходимо только обратить горизонтальные стрелки, учитывая, что их обращает контравариантный морфизм).
Если η — естественное преобразование функтора F в функтор G , мы пишем η : F → G . Также об этом говорят, что семейство морфизмов η X : F ( X ) → G ( X ) естественно по X .
Если для каждого X в C морфизм η X является изоморфизмом в D , то η называют естественным изоморфизмом (или, иногда, естественной эквивалентностью или изоморфизмом функторов ).
Инфраестественное преобразование η из F в G — это просто семейство морфизмов η X : F ( X ) → G ( X ). Натурализатор η, nat(η), — это самая большая подкатегория C , содержащая те объекты C , в ограничении на которые η является естественным преобразованием.
Если η : F → G и ε : G → H — естественные преобразования, мы можем взять их композицию и получить естественное преобразование εη : F → H . Это делается покомпонентно: (εη) X = ε X η X . Эта операция ассоциативна и имеет единицу, что позволяет образовать категорию функторов .
Примером естественного преобразования может служить определитель . В самом деле пусть — коммутативное кольцо , тогда квадратные матрицы порядка над образуют моноид по умножению, а — мультипликативный моноид самого кольца . Пусть будет функтором, переводящим кольцо в моноид матриц над ним. Поскольку определитель выражается через умножение, сложение и вычитание, которые сохраняются морфизмами кольца (что означает перестановочность морфизма и этих операций), отображение будет естественным преобразованием между функтором и функтором, тождественно сопоставляющим каждому кольцу его мультипликативный моноид (оба функтора из категории коммутативных колец в категорию моноидов ).
Приведём пример преобразования, не являющегося естественным. Пусть — n -мерное векторное пространство над полем . — его базис, — базис сопряжённого пространства функционалов , такой что
где — символ Кронекера . Все n -мерные пространства изоморфны. Положим
и распространим линейно на всё пространство . отображает тождественный (очевидно ковариантный) функтор в контравариантный функтор , отображающий векторное пространство в сопряжённое пространство функционалов. Если мы возьмём категорию конечномерных векторных пространств, где морфизмами будут изоморфизмы (а не любые линейные отображения), то можно заменить контравариантный функтор ковариантным функтором (где , ). Преобразование не будет естественным даже в простейшем случае одномерного пространства над полем действительных чисел. В самом деле, пусть V одномерно и изоморфизм является умножением на 2:
Тогда , в то время как , то есть диаграмма некоммутативна.
Причина этого совершенно ясна — определяется совершенно случайно выбранным базисом. Если мы возьмём второе сопряжённое пространство , то в случае конечномерного пространства существует изоморфизм (а именно для любого и функционала ). В данном случае изоморфизм определяет естественное преобразование тождественного функтора в функтор .
Другой важнейший пример естественных преобразований — (имеется в виду параметрический полиморфизм ). Примером такого преобразования является функция reverse :: forall a . [a] -> [a] , переворачивающая список элементов произвольного типа. В данном случае h(T) — это reverse T :: [T] -> [T]; а функторы F и G — это List.
Сформулировать этот факт можно так: forall f :: a -> b : map f . reverse a = reverse b . map f . Это — одна из так называемых «бесплатных теорем».
Естественность всех параметрически полиморфных функций — это следствие .