(no subject)
Jul. 27th, 2012 11:14 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Думаю, с чего начать, с комонады или с сопряженных... давайте-ка сначала пример с комонадой.
Итак, в предыдущей серии мы брали категории C=Set и D=Set×Set - множества и пары множеств, и два функтора,
Первый функтор - диагональ, он множеству сопоставляет пару, состоящую из двух экземпляров оного, а второй паре множеств сопоставляет декартово произведение; и эти функторы были сопряжены,
У функтора
Напомню, что стрелка
Заданы две функции,
Так что наш функтор
Думаю, понятно как определить
Ну а теперь к монадам и сопряженным функторам.
Вот давайте вообще начнём с монады
Определим алгебру над монадой: это объект
Я тут для простоты выбросил много скобок... ну что вы хотите, я же скальшик а не лиспщик.
Категория алгебр над монадой
Из алгебр, понятное дело, есть забывающий функтор
Откуда сопряженность,
- которая всё и объясняет.
Итак, взяв любую сопряженную пару, можно построить монаду, а по монаде - сопряженную пару (свободный, забывающий). Очевидно, что монада, соответствующая этой паре, и есть исходная монада; но одной монаде могут соответствовать много разных сопряженных пар (их целая категория); пара (свободный, забывающий) - предельный случай. Вот другой предельны случай - категория Клейсли.
Возьмём монаду
; все стрелки исходной категории превращаются в
.
Так что имеется вложение
Эту сопряженность можно выразить как
но, по определению C
Определим
Для монады
Для монады
Сказать мне вроде на эту тему больше нечего, если не подскажут, чего ещё добавить. Какие-нибудь специфические монады с комонадами?
Итак, в предыдущей серии мы брали категории C=Set и D=Set×Set - множества и пары множеств, и два функтора,
Δ(X) = (X,X)
и Π((X,Y)) = X×Y
.Первый функтор - диагональ, он множеству сопоставляет пару, состоящую из двух экземпляров оного, а второй паре множеств сопоставляет декартово произведение; и эти функторы были сопряжены,
Δ ⊣Π
.У функтора
Δ
на самом деле есть не только правый сопряженный, Δ ⊣Π
, но и левый, Σ ⊣Δ
. Что это за функтор такой? Давайте не надеятся на чудо, а просто его построим. Нам нужно, чтобы по (f1,f2): (Y1,Y2) &: ; (X,X)
мы могли взаимно-ознозначно получать &alphal(f1,f2): Σ(Y1,Y2) → X
. Напомню, что стрелка
(f1,f2)
в Set×Set - это просто пара обычных стрелок (функций) в Set.Заданы две функции,
f1: Y1 → X
и f1: Y1 → X
. Что это нам даёт? Это нам даёт, взаимно-однозначно, функцию из непересекающегося объединения: Y1 ∐ Y2 → X
.Так что наш функтор
Σ
- это просто объединение двух компонент. Ну а так как он левый сопряженный к Δ
, то композиция ΔΣ
, которая для множества X
возвращает X ∐X
, является комонадой.Думаю, понятно как определить
ε: X.т∐X → X
; а δ: X ∐ X → X ∐ X ∐ X ∐ X
, как и во вчерашнем примере, складывает первую компоненту слева в первую компоненту справа, а последнюю - в последнюю.Ну а теперь к монадам и сопряженным функторам.
Вот давайте вообще начнём с монады
T:
C →
C, со всеми её монадическими законами (единица, умножение, ассоциативность умножения и единичность единицы).Определим алгебру над монадой: это объект
A
и стрелка a: T(A) → A
, обладающая правильными свойствами. А именно:![]() | ![]() |
Я тут для простоты выбросил много скобок... ну что вы хотите, я же скальшик а не лиспщик.
Категория алгебр над монадой
T
в категории C обозначается CT
.Из алгебр, понятное дело, есть забывающий функтор
UT
. в категорию C - просто забудем, что есть какое-то действие. К этому забывающему функтору UT
имеется левый сопряженный функтор FT:
C →
CT
, строящий по объекту X
свободную алгебру, которая на самом деле выглядит так: μX: TTX → TX
.Откуда сопряженность,
FT ⊣ FT
? Если есть алгебра b: TB →B
, и f: A → B
, то имеет место коммутативная диаграмма
- которая всё и объясняет.
Итак, взяв любую сопряженную пару, можно построить монаду, а по монаде - сопряженную пару (свободный, забывающий). Очевидно, что монада, соответствующая этой паре, и есть исходная монада; но одной монаде могут соответствовать много разных сопряженных пар (их целая категория); пара (свободный, забывающий) - предельный случай. Вот другой предельны случай - категория Клейсли.
Возьмём монаду
T:
C →
C и построим на её основе новую категорию, CT
, состоящую из тех же объектов, что и исходная категория, но с добавлением стрелок. А именно, всякая стрелка f: :X → TY
в C будет стрелкой f: :X → Y
в CT
. (Это, к примеру, если у нас монада Option
, то теперь стрелками будут все частичные функции.) Композиция f;g
определяется через 

Так что имеется вложение
IT:
C →
CT
; и к нему я хочу построить левый сопряженный, чтобы было KT ⊣ IT
.Эту сопряженность можно выразить как
f: ITX → Y | <====> | ?: X → KTY |
но, по определению C
T
, это всё равно что задатьf: X → TY | <====> | ?: X → KTY |
Определим
KTY = TY
- и на этом всё.Для монады
Option
в множествах категорией Клейсли будет категория множеств и частичных функций, а категорией алгебр - категория множеств с выделенной точкой.Для монады
X2
в множествах категорией Клейсли будет категория множеств и пар функций, а категорией алгебр - категория множеств с заданной бинарной операцией.Сказать мне вроде на эту тему больше нечего, если не подскажут, чего ещё добавить. Какие-нибудь специфические монады с комонадами?
no subject
Date: 2012-07-27 10:00 pm (UTC)no subject
Date: 2012-07-27 10:36 pm (UTC)no subject
Date: 2012-07-28 05:11 am (UTC)