stringtranslate.com

Монада (теория категорий)

У нас было немного времени для разговора, и в ходе разговора я понял, что стал меньше бояться некоторых тем, связанных с монадами.

Монады, похоже, беспокоят многих людей. На YouTube даже есть видео под названием «Монады ранят мою голову!»... Вскоре после этого говорящая женщина восклицает:

Какого чёрта?! Как вы вообще объясните, что такое монада?

Джон Баез, [1]

В теории категорий , разделе математики , монада — это тройка , состоящая из функтора T из категории в себя и двух естественных преобразований , удовлетворяющих условиям типа ассоциативности. Например, если — функторы, сопряженные друг другу, то вместе с определяемым отношением сопряженности — монада.

В кратком смысле, монада — это моноид в категории эндофункторов некоторой фиксированной категории ( эндофунктор — это функтор, отображающий категорию в себя). Согласно Джону Баэзу, монаду можно рассматривать по крайней мере двумя способами: [1]

  1. Монада как обобщенный моноид; это ясно, поскольку монада является моноидом в определенной категории,
  2. Монада как инструмент для изучения алгебраических гаджетов; например, группа может быть описана определенной монадой.

Монады используются в теории пар сопряженных функторов , и они обобщают операторы замыкания на частично упорядоченных множествах на произвольные категории. Монады также полезны в теории типов данных , денотационной семантике императивных языков программирования и в функциональных языках программирования , позволяя языкам без изменяемого состояния делать такие вещи, как имитация циклов for ; см. Монада (функциональное программирование) .

Монаду также называют, особенно в старой литературе, тройкой , триадой , стандартной конструкцией и фундаментальной конструкцией . [2]

Введение и определение

Монада — это определенный тип эндофунктора . Например, если и являются парой сопряженных функторов , с левым сопряженным к , то композиция является монадой. Если и обратны друг другу, соответствующая монада является тождественным функтором . В общем случае, присоединения не являются эквивалентностями — они связывают категории различной природы. Теория монад имеет значение как часть усилий по пониманию того, что именно «сохраняют» присоединения. Другая половина теории, то, что можно узнать аналогичным образом из рассмотрения , обсуждается в рамках двойственной теории комонад .

Формальное определение

В этой статье обозначает категорию . Монада на состоит из эндофунктора вместе с двумя естественными преобразованиями : (где обозначает тождественный функтор на ) и (где — функтор из в ). Они требуются для выполнения следующих условий (иногда называемых условиями когерентности ):

Мы можем переписать эти условия, используя следующие коммутативные диаграммы :

Объяснение обозначений и см. в статье о естественных преобразованиях , или ниже приведены коммутативные диаграммы, не использующие эти понятия:

Первая аксиома сродни ассоциативности в моноидах , если мы думаем о ней как о бинарной операции моноида, а вторая аксиома сродни существованию элемента тождества (который мы думаем как заданный посредством ). Действительно, монаду на можно альтернативно определить как моноид в категории , чьи объекты являются эндофункторами , а морфизмы — естественными преобразованиями между ними, с моноидальной структурой, индуцированной композицией эндофункторов.

Монада набора мощности

Монада набора мощности является монадой в категории : Для набора пусть будет набором мощности , а для функции пусть будет функцией между наборами мощности, индуцированными путем взятия прямых изображений под . Для каждого набора у нас есть карта , которая назначает каждому синглтону . Функция

принимает набор множеств в его объединение . Эти данные описывают монаду.

Замечания

Аксиомы монады формально подобны аксиомам моноида . Фактически, монады являются частными случаями моноидов, а именно, они являются как раз моноидами среди эндофункторов , которые снабжены умножением, заданным композицией эндофункторов.

Композиция монад, в общем случае, не является монадой. Например, функтор double power set не допускает никакой монадной структуры. [3]

Комонады

Категориальное двойственное определение является формальным определением комонады ( или котрипла ); это можно быстро выразить в терминах, что комонада для категории является монадой для противоположной категории . Следовательно, это функтор из в себя, с набором аксиом для коединицы и коумножения , которые получаются путем изменения положения стрелок везде в только что данном определении.

Монады относятся к моноидам так же, как комонады относятся к комоноидам . Каждое множество является комоноидом уникальным образом, поэтому комоноиды менее знакомы в абстрактной алгебре , чем моноиды; однако комоноиды в категории векторных пространств с их обычным тензорным произведением важны и широко изучаются под названием коалгебр .

Терминологическая история

Понятие монады было изобретено Роже Годеманом в 1958 году под названием «стандартная конструкция». Монаду называли «двойной стандартной конструкцией», «тройной», «моноидом» и «триадой». [4] Термин «монада» был использован не позднее 1967 года Жаном Бенабу . [5] [6]

Примеры

Личность

Функтор тождества на категории — это монада. Его умножение и единица — это функция тождества на объектах .

Монады, возникающие из присоединений

Любое присоединение

дает монаду на C. Эта очень распространенная конструкция работает следующим образом: эндофунктор является составным

Этот эндофунктор быстро оказывается монадой, где единичная карта вытекает из единичной карты присоединения, а карта умножения строится с использованием коединичной карты присоединения:

Фактически, любая монады может быть найдена как явное присоединение функторов с использованием категории Эйленберга–Мура (категории -алгебр). [7]

Двойная дуализация

Двойная дуализация монада для фиксированного поля k возникает из присоединения

где оба функтора задаются путем отправки векторного пространства V в его двойственное векторное пространство . Связанная монада отправляет векторное пространство V в его двойное двойственное . Эта монада обсуждается, в гораздо большей общности, Коком (1970).

Операторы замыкания на частично упорядоченных множествах

Для категорий, возникающих из частично упорядоченных множеств (с единственным морфизмом из в тогда и только тогда, когда ), формализм становится намного проще: сопряженные пары являются связями Галуа , а монады — операторами замыкания .

Свободно-забывчивые придаточные

Например, пусть будет забывающим функтором из категории Grp групп в категорию Set множеств, и пусть будет свободным групповым функтором из категории множеств в категорию групп. Тогда является левым сопряженным к . В этом случае ассоциированная монада берет множество и возвращает базовое множество свободной группы . Единичное отображение этой монады задается отображениями

включая любой набор в набор естественным образом, как строки длины 1. Далее, умножение этой монады есть отображение

сделанные из естественной конкатенации или «уплощения» «строк строк». Это равносильно двум естественным преобразованиям . Предыдущий пример о свободных группах может быть обобщен на любой тип алгебры в смысле многообразия алгебр в универсальной алгебре . Таким образом, каждый такой тип алгебры порождает монаду в категории множеств. Важно, что тип алгебры может быть восстановлен из монады (как категории алгебр Эйленберга–Мура), поэтому монады также можно рассматривать как обобщающие многообразия универсальных алгебр.

Другая монада, возникающая из присоединения, — это когда — эндофунктор в категории векторных пространств, который отображает векторное пространство в его тензорную алгебру и который отображает линейные отображения в их тензорное произведение. Тогда у нас есть естественное преобразование, соответствующее вложению в его тензорную алгебру , и естественное преобразование, соответствующее отображению из в полученное простым расширением всех тензорных произведений.

Монады коденсити

При мягких условиях функторы, не допускающие левого сопряженного, также порождают монаду, так называемую монаду коденсити . Например, включение

не допускает левого сопряженного. Его монада коденсити — это монада на множествах, отправляющая любое множество X в множество ультрафильтров на X . Этот и подобные примеры обсуждаются в Leinster (2013).

Монады, используемые в денотативной семантике

Следующие монады над категорией множеств используются в денотативной семантике императивных языков программирования , а аналогичные конструкции используются в функциональном программировании.

Монада «может быть»

Эндофунктор монады « может быть» или «частичность» добавляет точку непересечения: [8]

Единица измерения получается путем включения множества в :

Умножение отображает элементы в себя, а две непересекающиеся точки в — в одну в .

Как в функциональном программировании, так и в денотационном семантике монада Maybe моделирует частичные вычисления , то есть вычисления, которые могут завершиться неудачей.

Состояние монады

При наличии множества эндофунктор монады состояния отображает каждое множество в множество функций . Компонент единицы в отображает каждый элемент в функцию

Умножение отображает функцию в функцию

В функциональном программировании и денотационном семантике монада состояния моделирует вычисления с сохранением состояния .

Монада окружающей среды

При наличии множества эндофунктор монады читателя или окружения отображает каждое множество в множество функций . Таким образом, эндофунктор этой монады — это в точности функтор hom . Компонента единицы at отображает каждый элемент в константную функцию .

В функциональном программировании и денотационном семантике монада окружения моделирует вычисления с доступом к некоторым данным, доступным только для чтения.

Монады списка и множества

Монада списка или недетерминизма отображает множество X в множество конечных последовательностей (т. е. списков ) с элементами из X. Единица отображает элемент x из X в список синглтона [x]. Умножение объединяет список списков в один список.

В функциональном программировании монада list используется для моделирования недетерминированных вычислений . Ковариантная монада powerset также известна как монада set и также используется для моделирования недетерминированных вычислений.

Алгебры для монады

При наличии монады в категории естественно рассматривать -алгебры , т.е. объекты , на которые действует способом, совместимым с единицей и умножением монады. Более формально, -алгебра - это объект вместе со стрелкой , называемой структурной картой алгебры, такой, что диаграммы

добираться.

Морфизм -алгебр - это стрелка такая , что диаграмма

коммутирует. -алгебры образуют категорию, называемую категорией Эйленберга–Мура и обозначаемую .

Примеры

Алгебры над свободной групповой монадой

Например, для свободной групповой монады, обсуждавшейся выше, -алгебра представляет собой множество вместе с отображением из свободной группы, порожденной в направлении , при соблюдении условий ассоциативности и унитальности. Такая структура эквивалентна утверждению, что является группой.

Алгебры над монадой распределения

Другим примером является монада распределения в категории множеств. Она определяется путем отправки множества множеству функций с конечным носителем и таким образом, что их сумма равна . В нотации конструктора множеств это множество Рассматривая определения, можно показать, что алгебры над монадой распределения эквивалентны выпуклым множествам , т. е. множествам, снабженным операциями для , подчиняющимся аксиомам, напоминающим поведение выпуклых линейных комбинаций в евклидовом пространстве. [9]

Алгебры над симметричной монадой

Другим полезным примером монады является функтор симметричной алгебры в категории -модулей для коммутативного кольца . отправляющий -модуль в прямую сумму симметричных тензорных степеней , где . Например, где -алгебра справа рассматривается как модуль. Тогда алгебра над этой монадой является коммутативной -алгеброй. Существуют также алгебры над монадами для знакопеременных тензоров и полных тензорных функторов, дающие антисимметричные -алгебры и свободные -алгебры, так что где первое кольцо является свободной антисимметричной алгеброй над в -генераторами, а второе кольцо является свободной алгеброй над в -генераторами.

Коммутативные алгебры в спектрах колец E-infinity

Существует аналогичная конструкция для коммутативных -алгебр [10] стр. 113, которая дает коммутативные -алгебры для коммутативной -алгебры . Если - категория -модулей , то функтор - это монада, заданная как , где -времена. Тогда существует ассоциированная категория коммутативных -алгебр из категории алгебр над этой монадой.

Монады и присоединения

Как было сказано выше, всякое присоединение порождает монаду. И наоборот, всякая монада возникает из некоторого присоединения, а именно, из свободно-забывчивого присоединения

чей левый сопряженный элемент отправляет объект X в свободную T -алгебру T ( X ). Однако обычно существует несколько различных присоединений, порождающих монаду: пусть будет категорией, объектами которой являются присоединения, такие что и чьи стрелки являются морфизмами присоединений, которые являются тождественными на . Тогда указанное выше свободно-забывающее присоединение, включающее категорию Эйленберга–Мура, является конечным объектом в . Начальным объектом является категория Клейсли , которая по определению является полной подкатегорией , состоящей только из свободных T -алгебр, т.е. T -алгебр вида для некоторого объекта x из C .

Монадические присоединения

При наличии любого присоединения с ассоциированной монадой T функтор G может быть разложен как

т. е. G ( Y ) может быть естественным образом наделена структурой T -алгебры для любого Y в D . Присоединение называется монадическим присоединением , если первый функтор дает эквивалентность категорий между D и категорией Эйленберга–Мура . [11] По расширению, функтор называется монадическим, если у него есть левый сопряженный, образующий монадическое присоединение. Например, свободно-забывающее присоединение между группами и множествами является монадическим, поскольку алгебры над ассоциированной монадой являются группами, как было упомянуто выше. В общем случае, знание того, что присоединение является монадическим, позволяет реконструировать объекты в D из объектов в C и T -действия.

Теорема Бека о монадичности

Теорема Бека о монадичности дает необходимое и достаточное условие для того, чтобы присоединение было монадическим. Упрощенная версия этой теоремы утверждает, что G является монадическим, если он консервативен (или G отражает изоморфизмы, т. е. морфизм в D является изоморфизмом тогда и только тогда, когда его образ при G является изоморфизмом в C ) и C имеет и G сохраняет коуравнители .

Например, забывающий функтор из категории компактных хаусдорфовых пространств в множества является монадическим. Однако забывающий функтор из всех топологических пространств в множества не является консервативным, поскольку существуют непрерывные биективные отображения (между некомпактными или нехаусдорфовыми пространствами), которые не являются гомеоморфизмами . Таким образом, этот забывающий функтор не является монадическим. [12] Двойственная версия теоремы Бека, характеризующая комонадические присоединения, актуальна в различных областях, таких как теория топосов и разделы алгебраической геометрии, связанные со спуском . Первым примером комонадического присоединения является присоединение

для гомоморфизма колец между коммутативными кольцами. Это присоединение является комонадическим, по теореме Бека, тогда и только тогда, когда B является строго плоским как A -модуль. Таким образом, оно позволяет спускать B -модули, снабженные данными спуска (т. е. действием комонады, заданным присоединением), к A -модулям. Полученная теория строго плоского спуска широко применяется в алгебраической геометрии.

Использует

Монады используются в функциональном программировании для выражения типов последовательных вычислений (иногда с побочными эффектами). См. монады в функциональном программировании и более математически ориентированный модуль Wikibook b:Haskell/Category theory.

Монады используются в денотативной семантике нечистых функциональных и императивных языков программирования . [13] [14]

В категорической логике была проведена аналогия между теорией монад-комонад и модальной логикой посредством операторов замыкания , внутренних алгебр и их связи с моделями S4 и интуиционистскими логиками .

Обобщение

Можно определить монады в категории 2. Монады, описанные выше, являются монадами для .

Смотрите также

Ссылки

  1. ^ ab https://golem.ph.utexas.edu/category/2009/07/the_monads_hurt_my_head_but_no.html
  2. ^ Барр, Майкл; Уэллс, Чарльз (1985), «Топосы, тройки и теории» (PDF) , Grundlehren der mathematischen Wissenschaften , vol. 278, Springer-Verlag, стр. 82 и 120, ISBN. 0-387-96115-1.
  3. ^ Клин; Саламанка (2018), «Итерированное ковариантное множество степеней не является монадой», Электронные заметки по теоретической информатике , 341 : 261–276, doi : 10.1016/j.entcs.2018.11.013
  4. Маклейн 1978, стр. 138.
  5. ^ Бенабу, Жан (1967). «Введение в бикатегории». В Бенабу, Дж.; Дэвис, Р.; Долд, А.; Исбелл, Дж.; Маклейн, С.; Оберст, У.; Роос, Ж.-Э. (ред.). Отчеты семинара по категории Среднего Запада . Конспект лекций по математике. Том. 47. Берлин, Гейдельберг: Шпрингер. стр. 1–77. дои : 10.1007/BFb0074299. ISBN 978-3-540-35545-8.
  6. ^ "RE: Monads". Gmane . 2009-04-04. Архивировано из оригинала 2015-03-26.
  7. ^ Риль, Эмили . «Теория категорий в контексте» (PDF) . стр. 162. Архивировано (PDF) из оригинала 5 апреля 2021 г.
  8. ^ Риль 2017, стр. 155.
  9. ^ Свирщ, Т. (1974), «Монадические функторы и выпуклость», Bull. Acad. Polon. Sci. Sér. Sci. Math. Astron. Phys. , 22 : 39–42, MR  0390019, Якобс, Барт (2010), «Выпуклость, двойственность и эффекты», Теоретическая информатика , IFIP Advances in Information and Communication Technology, т. 323, стр. 1–19, doi : 10.1007/978-3-642-15240-5_1 , ISBN 978-3-642-15239-9
  10. ^ Бастерра, М. (1999-12-15). "Когомологии Андре–Квиллена коммутативных S-алгебр". Журнал чистой и прикладной алгебры . 144 (2): 111–143. doi : 10.1016/S0022-4049(98)00051-6 . ISSN  0022-4049.
  11. ^ Маклейн (1978) использует более строгое определение, в котором две категории изоморфны, а не эквивалентны.
  12. ^ Маклейн (1978, §§VI.3, VI.9)
  13. ^ Вадлер, Филип (1993). «Монады для функционального программирования». В Broy, Manfred (ред.). Program Design Calculi . NATO ASI Series. Т. 118. Берлин, Гейдельберг: Springer. С. 233–264. doi :10.1007/978-3-662-02880-3_8. ISBN 978-3-662-02880-3.«Концепция монады, вытекающая из теории категорий, была применена Моджи для структурирования денотационной семантики языков программирования».
  14. ^ Малри, Филип С. (1998-01-01). «Монады в семантике». Электронные заметки по теоретической информатике . Совместные семинары США и Бразилии по формальным основам программных систем. 14 : 275–286. doi : 10.1016/S1571-0661(05)80241-5 . ISSN  1571-0661.

Дальнейшее чтение

Внешние ссылки