Письмо другу программисту о теории категорий
теория категорий может быть и бывает полезной при описании, при создании языка программирования, но никак не при реализации конкретных алгоритмов.
Давай-ка я напишу коротко и ясно, что такое категория,
раз уж мы о них разговариваем.
Я сам узнал это слово осенью 73г. из книжки Кириллова, первый параграф которой назывался "Множества, категории, топология".
Что там было про множества, не помню;
но оттуда я узнал определение топологического пространства и непрерывного отображения (совершенно неожиданные для меня тогда),
и определение категории и функтора (о которых я до того не слышал ни полслова).
Категория - это класс объектов и класс морфизмов
(говорят слово "класс", а не "множество", чтобы не впасть в противоречие, отмеченное Расселом в начале XX века;
на самом деле на эти тонкости можно не обращать никакого внимания).
Морфизмы в просторечии называют стрелками; у каждого морфизма есть начало и конец, - два объекта;
и для двух морфизмов определена композиция, если конец первого совпадает с началом второго;
эта композиция ассоциативна, когда она определена (т.е. когда концы и начала совпадают, где надо).
Кроме того каждому объекту сопоставлен морфизм, называемый единицей, конец и начало которого - этот объект;
композиция (в любом порядке) единицы с любым морфизмом (если она определена) - сам этот морфизм.
Это все определение.
Для математики важно еще простое понятие - изоморфизм:
это морфизм, имеющий обратный,
т.е. морфизм, композиция которого с нашим (в любом порядке - это существенно) равна единице соответствующего объекта.
Понятно, что началом обратного морфизма должен быть конец нашего, а концом обратного - начало нашего.
Важность изоморфизмов в том, что в математике принято не различать изоморфные объекты (т.е. объекты, между которыми есть изоморфизм).
Оказалось, что на языке теории категорий удобно формулировать чуть ли не всю математику.
Не всю, потому что обычно объекты категории - это множества, наделенные какой-то структурой,
но что такое элемент множества, на языке теории категорий сказать невозможно или неудобно, или не очень легко.
Еще надо дать определение функтора.
Функтор из одной категории в другую это
отображение класса объектов первой в класс объектов второй, и класса морфизмов первой в класс морфизмов второй,
при этом должны выполняться аксиомы -
что единицы переходят в единицы, композиция в композицию, начало морфизма в начало, а конец в конец.
Можно определять категории чуть иначе, более экономно:
об объектах вообще не говорить;
категория - это множество (а именно множество всех ее морфизмов)
с частично определенным умножением, и свойства этого умножения понятно какие (понятно из сказанного выше).
Но такой подход хотя и предпочтителен с формальной точки зрения, но противоречит нашей интуиции. Потому что важны-то именно объекты.
Как говорил Д.А.Райков: были бы объекты, а морфизмы приложатся.
На самом деле бывают случаи, когда объекты заданы, а морфизмы можно задать по-разному;
бывает, функтор задан на объектах, а на морфизмы его можно распространить по-разному.
Но обычно, определяя категорию, задают только ее объекты, а какие там морфизмы каждый сам легко догадывается.
Важнейший пример категории - категория множеств: объекты это множества, а морфизмы - отображения.
Но это очень простая категория. Более типичными можно считать
категорию групп (морфизмы - гомоморфизмы групп),
категорию колец (морфизмы - гомоморфизмы колец),
категорию топологических пространств (морфизмы - непрерывные отображения);
и много разных категорий похожих на эти три.
В топологии очень важна одна категория, морфизмы которой не суть отображения
(обычно-то морфизмы, это отображения, удовлетворяющие каким-то условиям, а именно
в каком-то смысле сохраняющие структуру объектов):
это категория гомотопических типов;
объекты этой категории - те же самые топологические пространства, но морфизмы другие -
это классы гомотопных непрерывных отображений
(т.е. мы отождествляем два непрерывных отображения, если они гомотопны (т.е. одно получается из другого непрерывной деформацией)).
Кроме того в учебниках по теории категорий на первых страницах могут быть даны несколько извращенных примеров категорий,
т.е. таких категорий, которые вполне удовлетворяют всем определениям, но не для них придумывалась эта наука.
Тем не менее и эти категории часто оказываются важны.
А именно, любую группу можно рассматривать как категорию, в которой только один объект, а морфизмы это элементы этой группы,
т.е. морфизмов много, но все они - изоморфизмы.
И любое упорядоченное множество можно рассматривать как категорию:
ее объекты - элементы этого множества,
а морфизмов из одного элемента в другой либо нет вообще, либо есть ровно один -
последнее происходит в том случае, когда первый элемент меньше второго.
Ну и еще один довольно важный пример категории не из таких, ради которых придумали теорию категорий:
это категория путей на ориентированном графе
(точнее: объекты - вершины графа, морфизмы - пути на нем).
В общем, я в коротком письме изложил почти всю математику -
в этом и заключается главное преимущество теории категорий.
Но наверно все-таки во многих случаях я был слишком краток; если ты хочешь, чтобы я что-то пояснил - с удовольствием это сделаю.
А ведь надо бы еще сказать, что такое декартово замкнутая категория
(раз уж с этого началось наше обсуждение), хоть это уже вещь довольно специальная.
Сперва необходимо сказать, что такое произведение объектов.
Произведение двух объектов категории это такой ее объект,
морфизмы в который откуда угодно взаимно однозначно соответствуют парам морфизмов оттуда же в сомножители
(причем подразумевается, что это взаимно однозначное соответствие в некотором (точно определенном) смысле естествено;
аналогичное замечание следовало бы сделать и о других упоминаемых мной взаимно однозначных соответствиях).
Аналогично определяется и произведение трех и более объектов, и бесконечного числа объектов, но нам это сейчас не понадобится.
Вообще, произведение - это частный случай предела.
Предел определяется для любой диаграммы.
Диаграмма это с формальной точки зрения просто функтор в нашу категорию из какой-то другой категории,
но неформально под диаграммой понимают функтор из какой-нибудь маленькой категории,
и даже обычно можно конкретнее сказать: из категории путей какого-нибудь ориентированного графа, причем обычно очень простого;
т.е. можно сказать: диаграмма это граф, вершины которого - некоторые объекты нашей категории, а стрелки - морфизмы, связывающие эти объекты.
Предел диаграммы - это объект вместе с морфизмами из него в в вершины диаграммы,
удовлетворяющими ряду условий, о которых пока умолчу
(определение предела удобнее дать, когда будут определены финальные объекты; или корефлексивные подкатегории).
Произведение двух объектов можно трактовать как предел функтора из категории путей графа, у которого всего две вершины и ни одной стрелки.
Кроме пределов в математике столь же важную роль играют копределы.
Вообще, любой категории отвечает двойственная:
объекты те же, морфизмы тоже те же, но
то, что было концом морфизма, объявляется его началом, а то, что было началом - концом.
Это нехитрое действие очень плодотворно,
позволяет по любому понятию, сформулированному на языке теории категорий, получить двойственное понятие,
по теореме - двойственную теорему.
Вот так мы из пределов получаем копределы,
в частности из произведений - копроизведения, называемые обычно суммами
(и так их называли еще когда не было никакой теории категорий).
Конечно, не в любой категории у любых объектов есть произведение, у каждой диаграммы - предел.
Но в категориях, с которыми имеют дело математики, обычно все пределы и копределы есть.
(Важное исключение - категория гомотопических типов:
там даже некоторые простенькие диаграммы не имеют предела.)
Добавлю, что все пределы и копределы, когда они есть, определены не совсем однозначно,
а только однозначно с точностью до (однозначно определенного!) изоморфизма.
Это вполне соответствует принципу отождествления изоморфных объектов, о котором упомянуто выше.
Так вот, в некоторых категориях (сравнительно немногих) для некоторых объектов определено не только произведение, но и возведение в степень.
Если у нас имеется объект A и объект B, то
A в степени B - это такой объект, морфизмы в который из любого объекта X взаимно однозначно отвечают морфизмам из произведения B на X в A.
В категории множеств произведение это обычное декартово произведение
(произведение X и Y это множество пар, первый элемент которых принадлежит X, а второй - Y).
И если немножко подумать, то станет очевидно, что в категории множеств A в степени B - это множество отображений B в A.
Категория называется декартово замкнутой, если в ней существует возведение любого объекта в любую степень
(в смысле определена степень с любым объектом в качестве показателя).
Мы уже успели увидеть, что категория множеств декартово замкнута.
Еще один важный пример декартово замкнутой категории (и вероятно он-то и важен для теоретического программирования) - это категория всех категорий
(ее объекты - категории, а морфизмы - функторы).
* * *
Итак, дополнение про теорию категорий.
Во-первых, я даже не упомянул абелевы категории - это категории, удовлетворяющие некоторым дополнительным аксиомам.
Теория абелевых категорий является основанием для гомологической алгебры -
важного раздела математики, который можно считать частью теории категорий, но скорее это отдельная область.
(Да и возникла гомологическая алгебра немного раньше теории категорий:
гомологии и когомологии появились уже в начале XX века в топологии.)
Во-вторых, хочется хоть два слова сказать о топосах;
наверно, значение их в математике меньше, чем абелевых категорий,
но это как раз та часть теории категорий, которой я в какой-то степени занимался всю жизнь.
Но сперва нужно ликвидировать один существенный пробел:
я вроде дважды намекал на то, что,
если мы имеем две категории, скажем C и D,
то можно рассмотреть категорию функторов из C в D:
ее объекты - функторы из C в D,
морфизмы - функторные морфизмы:
задать морфизм из функтора F в функтор G
значит задать для каждого объекта X категории C морфизм из F(X) в G(X),
причем эти морфизмы должны быть согласованы:
для любого морфизма X в Y возникает два морфизма из F(X) в G(Y):
один - это композиция морфизма F(X) в F(Y) (имеющегося по определению функтора)
и морфизма F(Y) в G(Y) (имеющегося по определению функторного морфизма);
другой - композиция морфизма F(X) в G(X) (имеющегося по определению функторного морфизма)
и морфизма G(X) в G(Y) (имеющегося по определению функтора);
так вот, эти два морфизма должны совпадать;
обычно это выражают словами: "Квадрат должен быть коммутативен".
То, что мы называли до сих пор функторами, более точно следует называть ковариантными функторами;
потому что разумно немного расширить понятие функтора, введя в рассмотрение функторы контравариантные.
Контравариантный функтор из C в D - это обычный ковариантный функтор из категории двойственной C в категорию D
(или ковариантный функтор из C в двойственную D - все равно);
то есть задать контравариантный функтор F значит сопоставить каждому объекту X категории C объект F(X) категории D,
а каждому морфизму X в Y - морфизм F(Y) в F(X) -
это единственное отличие контравариантного функтора от ковариантного:
контравариантный функтор обращает направление стрелок, а ковариантный их сохраняет.
Теперь рассмотрим очень важный пример функтора.
Пусть дана категория C и какой-нибудь ее объект A;
тогда возникает ковариантный функтор из C в категорию множеств,
сопоставляющий произвольному объекту X множество Hom(A,X) морфизмов из A в X;
и контравариантный функтор из C в категорию множеств,
сопоставляющий объекту X множество Hom(X,A) морфизмов из X в A.
Произвольный функтор из C в категорию множеств называется представимым, если он изоморфен одному из описанных функторов.
При этом объект A называется представляющим объектом.
Следующая несложная теорема оказывается полезной во многих разделах математики;
конечно, в каждом случае ее применения можно результат усмотреть и непосредственно, не так уж это сложно,
но все-таки и не так просто, чтобы быть очевидным.
Лемма Йонеды.
Она устанавливает взаимно однозначное соответствие между
морфизмами контравариантного представимого функтора с представляющим объектом A в произвольный контравариантный функтор F
и множеством F(A).
Между прочим, если и F представим,
то лемма Йонеды утверждает, что
морфизмов из представимого функтора в представимый столько же,
сколько морфизмов из представляющего объекта первого в представляющий объект второго.
Это позволяет смотреть на контравариантные функторы из любой категории C в категорию множеств как на обобщенные объекты C.
Ну, продолжение следует.
* * *
Давай! Твои письма заставляют переключаться и думать на многие другие темы.
Кстати, я пока не пойму, как и зачем в таких теориях строить диаграммы со стрелками.
Получается типа блок-схем? А как излагать классическую алгебру с применением этих самых вершин и стрелок?
* * *
Да, теория категорий - это именно главным образом диаграммы из вершин и стрелок.
Даже когда их не рисуют, их подразумевают,
воображают и пишущий, и читающий текст, использующий язык теории категорий.
Откуда они берутся в теории категорий?
На этот вопрос можно ответить вполне формально.
Ты помнишь, я писал, что примерами категорий, которые имели в виду создатели теории категорий, ради которых она создавалась -
это категория множеств, категория групп, категория колец, категория топологических пространств
и стоящая несколько особняком категория гомотопических типов.
Но кроме этих и подобных категорий бывают еще не похожие на них, бедные и маленькие, но на сто процентов удовлетворяющие определению:
можно рассматривать как категорию любое упорядоченное множество
(это категория, в которой из любого объекта в любой другой есть не более одного морфизма)
и группу или даже полугруппу
(это категория с единственным объектом).
И еще в этом ряду я упоминал категорию путей графа.
Вот она-то нам и нужна сейчас.
Подробнее: каждому графу отвечает категория:
ее объекты - вершины графа,
а морфизмы - пути на этом графе
(тут возможны оба варианта: можно рассматривать графы ориентированные, а можно и не ориентированные; предпочтительнее первое).
Теперь давай вспомним, что функторы из любой категории в любую другую сами образуют категорию;
ее объекты - это, понятно, функторы,
а морфизмы - естественные преобразования = функторные морфизмы.
Точное определение я дал в прошлом письме,
получилось это у меня довольно неуклюже. Повторять не буду
(а в позапрошлом писал, что категория категорий декартово замкнута -
потому она и декартово замкнута, что в ней есть эта конструкция;
но сейчас мы не про это).
Так вот, если первая категория - категория путей графа,
то функторы из нее - это диаграммы (во второй категории).
Например, если граф это квадрат, в котором имеется 4 стрелки, две направлены слева направо, а две - сверху вниз,
то в соответствующей категории путей 4 объекта и 10 морфизмов:
четыре единицы (по одной для каждого объекта),
четыре однозвенных пути (т.е. это стрелки исходного графа)
и еще два морфизма, идущих по диагонали (одной и той же) - композиция однозвенных морфизмов.
И достаточно часто приходится рассматривать функторы из этой категории в категорию, в которой мы работаем.
Но чаще рассматривается не вся категория квадратов в нашей категории,
а ее подкатегория коммутативных квадратов:
квадрат называется коммутативным, если два его диагональных морфизма равны между собой.
Вообще, диаграмма называется коммутативной, если два пути, ведущих из любой вершины в любую другую, совпадают
(или иногда не все, а те, про которые это оговорено).
Нередко рассматривают и коммутативные треугольники - это еще проще.
Но бывают и довольно сложные диаграммы;
например, в определение триангулируемой категории входит аксиома октаэдра:
ее удобно формулировать , нарисовав диаграмму в виде октаэдра.
Комплекс (ударение на втором слоге - компле'кс) -
это бесконечная последовательность объектов, и из n-ного объекта идет морфизм в n+1-ый
(и требуют, чтобы композиция соседних стрелок равнялась 0;
но о том, что такое в этом контексте 0, я напишу в следующий раз).
А что такое морфизм из одного комплекса в другой?
Нетрудно сообразить, что это диаграмма в виде забора:
две бесконечные параллельные линии, составленные из стрелок,
и из каждой вершины верхней линии идет стрелка в расположенную под ней вершину второй линии;
и конечно требуется, чтобы все возникающие квадраты (коих бесконечно много) были коммутативны.
Ну а как диаграммы применяются в алгебре?
Можно на этом языке дать определение группы.
Зачем это надо?
А затем, что такое определение легко перенести из категории множеств в любую категорию (в которой есть произведения объектов,
но они есть почти во всех категориях, с которыми имеют дело математики).
И это действительно работает:
группа в категории топологических пространств - это топологическая группа,
группа в категории гладких многообразий - это группа Ли,
группа в категории двойственной категории коммутативных колец - это аффинная алгебраическая группа,
группа в категории гомотопических типов - это H-пространство.
Теория категорий избавляет нас от необходимости давать занудное определение в каждом из этих случаев, и в разных других.
Я предполагаю, что ты где-нибудь слышал, что такое группа.
А на языке теории категорий это вот что такое:
структура группы на множестве G это три морфизма:
морфизм G*G -> G (умножение),
морфизм 1 -> G (единица),
морфизм G -> G (обращение);
здесь звездочка обозначает теоретикомножественное произведение
(лучше бы использовать косой крест, но его нет на клавиатуре),
1 обозначает множество из одного элемента.
И требуется, чтобы выполнялись аксиомы, главная из которых - ассоциативность умножения:
по морфизму G*G -> G можно построить морфизм G*G*G -> G*G,
причем это можно сделать двумя разными способами
(первый способ: (x,y,z) переходит в (xy,z),
второй способ: (x,y,z) переходит в (x, yz)
(xy и yz - это произведения элементов группы).
Эти морфизмы можно без большого труда определить чисто категорно,
для этого нужно уяснить свойства теоретикокатегорного произведения
(а теоретикомножественное = декартово произведение это частный случай теоретикокатегорного произведения);
мы в это углубляться не будем,
но человеку, сколько-нибудь серьезно изучающему теорию категорий, это необходимо сделать -
это наша кухня, и она на самом деле не трудная).
Эти два морфизма G*G*G -> G*G различны,
но ассоциативность умножения означает, что их композиции с G*G -> G (умножением) совпадают.
* * *
Я ни разу не упомянул одно очень простое, но важное понятие - универсальный объект.
Точнее, бывают два сорта универсальных объектов - инициальные и финальные (= терминальные).
Объект называется инициальным, если из него в любой объект есть ровно один морфизм.
Понятно, что если в категории инициальные объекты существуют, то все они изоморфны.
Двойственное понятие - финальный объект:
объект называется финальным, если из любого объекта в него есть ровно один морфизм.
В категории множеств, а также и в категории групп, колец, топологических пространств есть финальный объект - одноточечное множество
(если нас интересует категория групп или колец, то легко превратить одноэлементное множество в группу или кольцо,
причем это можно сделать ровно одним способом).
Инициальные объекты во всех этих категориях тоже есть, но выглядят они по-разному:
в категории множеств это пустое множество,
в категории групп - группа из одного элемента,
в категории колец - кольцо целых чисел.
На самом деле в прошлых письмах я почти соприкасался с этими понятиями:
например, контравариантный функтор в категорию множеств представим тогда и только тогда, когда
существует финальный объект в категории функторных морфизмов в этот функтор из представимых функторов.
Другой пример: предел диаграммы - это финальный объект в категории морфизмов в нее из постоянных диаграмм
(напомню, что слово "диаграмма" это синоним слова "функтор",
мы употребляем его, когда речь идет о функторе из достаточно маленькой категории;
диаграмму мы представляем себе в виде графа, в вершинах которого сидят некоторые объекты, а стрелки - морфизмы;
постоянная диаграмма - это граф, во всех вершинах которого сидит один и тот же объект, а все стрелки - единицы).
Двойственное понятие - копредел,
и оно может быть определено через понятие инициального объекта.
Теперь не спеша подберемся к абелевым категориям.
Во-первых, заметим, что бывают категории, в которых инициальный и финальный объект совпадают.
Мы уже видели один такой пример - это категория групп.
Такой одновременно инициальный и финальный объект обычно называют нулевым объектом.
Другой пример категории с нулевым объектом - категория множеств с отмеченным элементом
(морфизмы - отображения, переводящие отмеченный элемент в отмеченный);
или более важная категория топологических пространств с отмеченной точкой.
Если в категории есть нулевой объект, то в ней есть нулевые морфизмы:
из любого объекта в любой другой ведет ровно один нулевой морфизм -
(по определению) композиция единственного морфизма из первого объекта в ноль и единственного морфизма из нуля во второй объект.
Кроме того в такой категории есть канонический морфизм из копроизведения любых двух объектов X и Y - в их произведение:
чтобы задать морфизм из копроизведения X и Y куда бы то ни было, нужно задать морфизм туда X и морфизм туда Y;
т.е. нам нужно задать морфизм из X в XY и морфизм из Y в XY;
но это значит, нужно задать морфизм из X в X, из X вY, из Y в X и из Y в Y;
ну и понятно, что нам делать, если мы хотим получить канонические морфизмы:
из X в X и из Y в Y есть канонические морфизмы - единицы,
а из X в Y и из Y в X - нули
(мы и выше могли бы взять не единицы, а нули, и тоже получили бы канонический морфизм из копроизведения в произведение,
но неинтересный - получили бы ноль).
И вот оказывается, что в некоторых категориях этот морфизм из копроизведения в произведение всегда оказывается изоморфизмом
(в этом случае произведение = копроизведение обычно называют прямой суммой.
Такие категории называются аддитивными.
Категория групп и категория топологических пространств с отмеченной точкой не таковы,
в них этот морфизм - не изоморфизм
(но и в них он играет довольно важную роль).
Аддитивной являетсякатегория коммутативных групп,
а также категория векторных пространств над любым полем и категория модулей над любым кольцом;
и категория диаграмм любого заданного вида (например, квадратов) в аддитивной категории аддитивна.
Замечательное свойство аддитивных категорий: в них для любых объектов X, Y определено сложение морфизмов из X в Y:
если даны морфизмы f и g из X в Y, то (по определению произведения) возникает однозначно определенный морфизм из X в произведение Y на себя;
теперь воспользуемся тем, что у нас произведение является и копроизведением,
и значит существует однозначно определенный морфизм в Y из произведения Y на себя (называемый кодиагональю) -
это морфизм, отвечающий паре морфизмов из Y в Y, самой простой паре, а именно паре (1,1);
так вот, f+g это композиция описанных морфизмов X -> YY и YY -> Y.
Если ты еще не осоловел от всего этого, то ты можешь заметить, что
можно было бы пойти немножко другим путем, двойственным:
взять морфизм X -> XX (отвечающий паре единиц; называемый диагональю),
а затем воспользоваться тем, что XX - это не только произведение, но и копроизведение,
и построить морфизм XX -> Y (компоненты которого - f и g);
но легко доказать, что композиция этих X -> XX и XX -> Y - та же, что построенная выше.
(Можно пойти чуть более сложным путем, но зато двойственным самому себе -
рассмотреть композицию X -> XX -> YY -> Y.)
Я кажется чуть-чуть тебя обманул: категорию обычно называют аддитивной, если в ней морфизмы можно не только складывать, но и вычетать,
т.е. Hom(X,Y) являются не просто коммутативными полугруппами, но коммутативными группами.
Для этого достаточно, чтобы у каждого объекта был эндоморфизм -1, сумма которого с 1 равнялась бы 0.
Еще хорошо бы, чтобы в категории были пределы и копределы любых конечных диаграмм;
на самом деле достаточно, чтобы были пределы и копределы диаграмм с двумя вершинами и двумя стрелками, идущими из одной вершины в другую -
ее предел называется уравнителем этой пары стрелок, а копредел - коуравнителем.
В случае аддитивной категории одну из этих двух стрелок можно предполагать равной 0 (так всегда и делают),
тогда уравнитель называется ядром (ненулевой стрелки), а коуравнитель - коядром.
Если в аддитивной категории есть пределы и копределы конечных диаграмм, то она называется предабелевой.
Чтобы она получила звание абелевой, нужно выполнение еще одного условия:
нужно, чтобы любой морфизм, ядро и коядро которого =0, был изоморфизмом.
Это сильное условие, оно выполнено не всегда,
например, оно не выполнено в категории коммутативных топологических групп,
т.е. эта категория предабелева, но не абелева.
Но вот категория коммутативных групп, категория модулей над любым кольцом - абелевы,
и это поле деятельности целой армии алгебраистов.
* * *
Мой рассказ несколько затянулся,
но все же я хочу сделать еще одно добавление:
говоря о теории категорий нельзя умолчать о сопряженных функторах.
(Правда, в свой замечательный семестровый курс 74г. по теории категорий Д.А.Райков сопряженные функторы не включил;
зато он много говорил об одном важном частном случае - о рефлексивных и корефлексивных подкатегориях.)
Рассмотрим две категории C и D и два функтора F: C -> D и G: D -> C.
Эти функторы называются сопряженными, если
для любых объектов X и Y существует естественное взаимно однозначное соответствие между множествами Hom(F(X),Y) и Hom(X,G(Y)).
Слово "естественное" (как всегда) означает, что это функторный морфизм,
функторный изоморфизм Hom(F(X),Y) -> Hom(X,G(Y)).
При этом F называется левым сопряженным, а G - правым сопряженным.
Существует несколько эквивалентных определений сопряженности функторов,
в каких-то случаях удобнее пользоваться одним, в каких-то другим.
Например, можно за определение сопряженности взять функторные морфизмы 1 -> GF и FG -> 1,
удовлетворяющие следующим условиям:
композиция F -> FGF и FGF -> F - тождественный морфизм F в себя,
и композиция G -> GFG -> G - тождественный морфизм G в себя.
Здесь 1 означает тождественный эндофунктор - в первом случае категории C, во втором - категории D.
А откуда берутся функторные морфизмы F -> FGF и др.?
Этот морфизм получается из данного морфизма 1 -> GF при помощи композиции с F
(и остальные аналогично).
Чтобы придать понятию смысл, нужно рассмотреть примеры.
Во-первых: важный класс функторов это стирающие (= забывающие) функторы:
например, функтор из категории групп в категорию множеств, сопоставляющий группе ее же, но рассматриваемую просто как множество,
т.е. мы забываем о структуре группы.
Подобные стирающие функторы есть из всех популярных категорий, потому что их объекты - множества.
Рассматривают и стирающие функторы, забывающие не про всю структуру, а про часть ее:
например, из категории колец в категорию коммутативных групп,
функтор, забывающий про умножение, но помнящий сложение;
и функтор из категории колец в категорию полугрупп,
забывающий про сложение, но помнящий умножение.
Примеры эти можно множить и множить.
Так вот, в большинстве случаев у стирающего функтора есть левый сопряженный.
В случае стирающего функтора из категории групп в категорию множеств
левый сопряженный существует и сопоставляет множеству порожденную им свободную группу.
У стирающего из категории колец в категорию множеств тоже есть левый сопряженный,
он сопоставляет множеству из n элементов кольцо полиномов от n переменных.
У стирающего функтора из категории колец в категорию коммутативных групп тоже есть левый сопряженный,
он сопоставляет коммутативной группе ее тензорную алгебру
(т.е. прямую сумму тензорных степеней этой группы).
А левый сопряженный стирающего функтора из категории колец в категорию полугрупп переводит полугруппу в соответствующую полугрупповую алгебру.
(Гораздо популярнее групповые, а не полугрупповые алгебры;
функтор, сопоставляющий группе ее групповую алгебру является левым сопряженным
к функтору, сопоставляющему кольцу его мультипликативную группу (т.е. группу его элементов обратимых по умножению);
это не стирающий функтор, но он похож на стирающие.)
Рассмотрим стирающий функтор из категории колец в категорию алгебр Ли, забывающий умножение, а помнящий только коммутирование -
операцию, сопоставляющую паре элементов a,b их коммутатор ab-ba;
у него тоже есть левый сопряженный, он переводит алгебру Ли в ее обертывающую алгебру - очень важный объект.
Бывает, что стирающий функтор обладает и правым сопряженным, но такое случается редко;
например, у стирающего функтора из категории топологических пространств в категорию множеств есть и левый, и правый сопряженный,
но правый переводит множество в совсем уж неприличное топологическое пространство - он наделяет множество так называемой слипшейся топологией.
У стирающего функтора из категории векторных пространств над полем комплексных чисел в категорию векторных пространств над полем вещественных чисел
есть и левый, и правый сопряженный,
и оба вполне респектабельны (но левый используется чаще).
Другой обширнейший класс примеров сопряженных функторов - это рефлекторы и корефлекторы.
Рассмотрим категорию C и ее подкатегорию D.
Что значит "подкатегория"?
Ну, понятно: всякий объект D является объектом C,
и всякий морфизм D является морфизмом C
(и композиция этих морфизмов в C та же, что в D -
оговорка вроде и не нужная, но какой-нибудь ехидный человек может придумать какой-нибудь извращенный пример, когда композиция в C не та, что в D).
Можно рассмотреть функтор вложения D -> C.
Прежде чем двигаться дальше, нужно сделать одно замечание:
обычно (не всегда) от подкатегории требуют, чтобы для любой пары ее объектов X, Y в C не было бы морфизмов из X в Y, кроме тех, которые есть в D;
такие подкатегории называют полными,
и мы сейчас будем предполагать, что D - полная подкатегория.
Тогда D называется рефлексивной подкатегорией, если у функтора ее вложения в C есть левый сопряженный.
Этот левый сопряженный называют рефлектором, он переводит произвольный объект C в объект D, называемый его репликой.
Райков объяснял это так: у каждого объекта C есть полномочный представитель в D.
Если мы внимательно посмотрим на определение сопряженного функтора, то сможем понять, что
любой морфизм из любого объекта C в объект D однозначно пропускается через своего полномочного представителя
(т.е. пару морфизмов X -> Y и X -> X' (где X' - реплика X, а Y - произвольный объект D),
можно (причем только одним способом) дополнить до коммутативного треугольника).
Типичный пример: C - категория метрических пространств, D - ее подкатегория полных пространств
(т.е. пространств, в которых всякая последовательность Коши сходится),
тогда реплика метрического пространства - его пополнение.
Реплика группы в подкатегории коммутативных групп - ее факторгруппа по коммутанту.
Двойственным понятием является понятие корефлексивной подкатегории:
корефлектор это правый сопряженный к функтору вложения.
Важный пример рефлектора и корефлектора - это пределы и копределы:
предел диаграммы это ее кореплика в подкатегории постоянных диаграмм, а копредел - реплика там же
(напомню, что постоянная диаграмма - это диаграмма, во всех вершинах которой сидит один и тот же объект, а все стрелки - его единицы).
И это довольно очевидно (если нет, значит ты не понял, что такое предел и копредел, реплика и кореплика).
У сопряженных функторов есть замечательное свойство, за которое, вероятно, мы их так любим
(хотя, наверно, не только за него):
функтор, обладающий правым сопряженным, перестановочен с копределами,
а функтор, обладающий левым сопряженным, перестановочен с пределами!
Теорема эта не трудная, и в каждом конкретном случае результат часто бывает очевиден безо всякой теоремы,
но иногда это не очень очевидно, и тогда эта теорема облегчает нам жизнь, позволяя не останавливаться на этом пункте.
Ну, вроде я кое-как изложил более-менее всю теорию категорий.
Сознаю, что плохо изложил, но уж как получилось.
Умолчал о моих любимых топосах -
это все-таки довольно специальная вещь, а объем и так слишком большой получился.
И не коснулся гомологической алгебры - производных функторов, производных категорий, триангулируемых категорий;
но ее обычно считают самостоятельным разделом математики, а не частью теории категорий
(как не считают рыбами наземных позвоночных,
хотя на самом деле все мы - люди, птицы, змеи - выползшие на сушу рыбы).
Свидетельство о публикации №225031800749