つばめグリルの主張に従うと、Eilenbergはアイレンバーグじゃなくてアイレンベルグと呼ぶべきでしょう*1。と、そんなわけで(何の因果関係も必然性もないけど)、アイレンベルグ/ムーア圏(Eilenberg-Moore category)の話をします。でも途中までです。続きは後日書くつもりです。
モナドから構成できる圏としてクライスリ圏(Kleisli category)をご存知の方は多いでしょう。もうひとつ、モナドから圏を作る標準的な構成法にアイレンベルグ/ムーア構成があります。この構成で作ったアイレンベルグ/ムーア圏と付随する標準的な関手達は、随伴関手対となります。クライスリ構成は、アイレンベルグ/ムーア構成により説明することもできます(今回はしませんが)。
内容:
記法の約束
圏は斜体大文字C, Dなど、関手は普通の大文字F, Gなどで表します。自然変換はギリシャ小文字を使い、α::F⇒G のように書きます。関手FとGが、圏Cから圏Dへの関手であることも添えると、α::F⇒G:C→D となります。
射と関手の結合(合成)は、セミコロンを使い図式順で書きます。f;g とか F;G ですね。恒等は次の約束で書くことにします。
僕はモノグサなので、idA = A, IdC = C, ιF = F のように書いてしまうことが多い(便利です)が、混乱のもとでもあるので、今回は対象と恒等を区別して書くことにします。
同型は = で書いてしまいます。(×) は、テンソル積の記号(環積記号)のつもりです。
随伴関手対からモナドへ
C、Dが圏で、F:C→D、U:D→C が2つの関手だとします。次の同型によりFとGが互いに随伴になっているとしましょう。
- C(A, U(X)) = D(F(A), X) where A∈|C|, X∈|D|
これを、F -| U のように書きます。FがUの左随伴、UがFの右随伴ですが、まー、左右はどうせ覚えられないので、FとUがペアになっていることに注目すればいいでしょう。
関手の随伴対があると、それからモナドを作れます。まず、随伴の定義から、単位自然変換 η::IdC⇒(F;U):C→C と余単位自然変換 ε::(U;F)⇒IdD:D→D が出てきます。単位/余単位を随伴のプライマリーな定義にする流儀もあります(僕はその流儀が好きです)。ηとεは、「三角等式、ジグザグ等式、剛性(rigidity)、ヘビ関係式(snake relation)」など、色々な呼び名がある等式を満たします。
F:C→D、U:D→C、η::IdC⇒F;U:C→C、ε::U;F⇒IdD:D→D から、関手Mと自然変換μを次のように定義します。
- M := (F;U : C→C)
- μ := (ιF;ε;ιU :: ((F;U);(F;U) = F;(U;F);U) ⇒ (F;IdD;U = F;U) : C→C)
Mの定義より、ηとμは、η::IdC⇒M、μ::(M;M)⇒M と書くことができます。3つ組 (M, η, μ) は圏C上のモナドになります。この構成法は一般的な構成法のひとつの事例になっています。次の2つは、一般的な構成法の異なる事例なのです。
モナド | 正方行列モノイド |
---|---|
関手F | ベクトル空間V |
関手U | 双対ベクトル空間V* |
恒等関手IdC | スカラー体K |
関手の結合 | ベクトル空間のテンソル積 |
単位η | スカラー行列 K→V(×)V* |
余単位ε | 評価スカラー積 V*(×)V→K |
モナド乗法μ | 行列の掛け算 |
あんまり詳しくは説明しません(ゴメンナサイ)が、だいたい以上のことから、関手の随伴対(双対性)があれば、それからモナドを作れることがわかりました。
モナドから随伴関手対へ
前節とは逆に、圏C上のモナド (M, η, μ) が与えられたとき、随伴関手の対 F:C→D、U:D→C を作れないでしょうか? この問に答えるのがアイレンベルグ/ムーア構成です。
先走って概要だけ言ってしまうと; 圏C上のモナド (M, η, μ) に関するM代数の圏 Alg(C, M) を作ると、自由生成関手 F:C→Alg(C, M) と忘却関手 U:Alg(C, M)→C が作れて、F -| U という随伴関係があります。
M代数の圏Alg(C, M)を、モナドMのアイレンベルグ/ムーア圏と呼び、EM(C, M) とか、あるいは簡略にCM と書きます。モナドMのクライスリ圏 Kl(C, M) はアイレンベルグ/ムーア圏 EM(C, M) の部分圏となります。
ここいらへんの言い回しでは、 M = (M, η, μ) という記号の乱用をしていて、モナドとその台関手を適当にかつ意図的に混同しています。ご注意ください。
自己関手のマグマの圏
一般に、G:C→C が圏C上の自己関手だとして、Gマグマとは次のものです。
- A∈|C| と、a:G(A)→A in C の組 (A, a) をGマグマと呼ぶ。
(A, a) がGマグマのとき、AをGマグマの台対象(underlying object)、aを演算(operation)と呼びます。
「マグマ」という言葉は耳慣れないかもしれませんが、だいぶ昔(20世紀中盤)にブルバキが使い始めたらしいです。この言葉の使用例は少ないのですが、「なんの法則も仮定しない代数系」を意味したいときには便利です。実際、上のような定義のGマグマは、Gを指標とする(圏論的な意味での)代数ですが、結合律とか単位律とかの成立はまったく保証されません。
ベースの圏を集合圏Setとするとき、G(A) = 1 + A (1は単元集合{*}、+ は直和)という自己関手G:Set→Setを考えると、自然数の集合Nと、[zero, succ] : 1 + N → N の組 (N, [zero, succ])はGマグマとなります。ここで、zero(*) = 0, suc(n) = n + 1 で、[zero, succ] はこれらの余タプルです。
G(A) = Powfin+(A) (Powfin+ は非空な有限ベキ集合*2)と置いたときは、非空有限集合 X⊆N の平均値をav(X)とすると、(N, av) はPowfin+マグマとなります。
(A, a) と (B, b) が2つのGマグマとのとき、圏Cの射 f:A→B が次を満たすならGマグマの射と呼びます。
- a;f = G(f);b : G(A)→B
G:C→C に対するGマグマの全体を対象として、Gマグマの射を射とする圏を Mag(C, G) と書くことにします。実際に、GマグマとGマグマ射の全体が圏となることは確認してみてください。
Gマグマ (A, a) に対してその台対象を対応させる写像 (A, a) |→ A は、Mag(C, G) からCへの関手とみなせます。この関手を忘却関手といいます。習慣により U:Mag(C, M)→C と表記します。
忘却関手Uに対する随伴の相方関手Fがあり、F -| U のとき、F:C→Mag(C, G) は(Gマグマの)自由生成関手と呼ばれます。とはいえ、指標関手Gに関する情報が何も無いと、自由生成関手があるかないかはサッパリわかりません。Gがモナドの場合は、関手だけでなくてモナド単位とモナド乗法があるので、ずっと精密な議論ができます。
モナドの代数の圏
(M, η, μ) が圏C上のモナドのとき、M:C→C はCの自己関手なので、Mマグマの圏 Mag(C, M) と忘却関手 U:Mag(C, M)→C を考えることができます。しかし、これだけだと随伴を作るには素材が不足しています。モナドの構造射であるηとμを利用して、計算法則を持つ代数系を作ることにします。
A∈|C| と a:M(A)→A の組(A, a)はMマグマですが、さらに次が可換図式になるとします。
A - η_A --> M(A) | | | a | | v v A ---------> A M(M(A)) - M(a) --> M(A) | | μ_A a | | v v M(A) ----- a -----> A
何も書いてない矢印は恒等です。等式で書けば:
- ηA;a = idA
- M(a);a = μA;a
この2つの等式を満たすMマグマは、モナドMの代数、より短くM代数と呼びます*3。
上の可換図式/等式は、だいたい単位律と結合律に対応するものです。ですから、モナドMに対するM代数とは、圏C内の指標がMであるマグマに結合律と結合律を課したもの、つまりMモノイドとでも言えるものです。Mがリストモナドのときに確認してみると、状況がハッキリとわかると思います(確認をおすすめ)。
(A, a) と(B, b) がモナドMの代数のとき、圏Cの射 f:A→B がMマグマの射になっているなら、M代数の射とします。すると、M代数とM代数射の全体はまた圏となります。この圏を Alg(C, M) と書くことにします。
アイレンベルグ/ムーア圏
今定義したM代数の圏Alg(C, M)が、モナドMのアイレンベルグ/ムーア圏なのですが、アイレンベルグ/ムーア圏が随伴対(双対性)を定義することや、随伴対から最初のモナドMを再現できることは次の機会に。