このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

アイレンベルグ/ムーア圏 その1

つばめグリルの主張に従うと、Eilenbergはアイレンバーグじゃなくてアイレンベルグと呼ぶべきでしょう*1。と、そんなわけで(何の因果関係も必然性もないけど)、アイレンベルグ/ムーア圏(Eilenberg-Moore category)の話をします。でも途中までです。続きは後日書くつもりです。

モナドから構成できる圏としてクライスリ圏(Kleisli category)をご存知の方は多いでしょう。もうひとつ、モナドから圏を作る標準的な構成法にアイレンベルグ/ムーア構成があります。この構成で作ったアイレンベルグ/ムーア圏と付随する標準的な関手達は、随伴関手対となります。クライスリ構成は、アイレンベルグ/ムーア構成により説明することもできます(今回はしませんが)。

内容:

記法の約束

圏は斜体大文字C, Dなど、関手は普通の大文字F, Gなどで表します。自然変換はギリシャ小文字を使い、α::F⇒G のように書きます。関手FとGが、圏Cから圏Dへの関手であることも添えると、α::F⇒G:CD となります。

射と関手の結合(合成)は、セミコロンを使い図式順で書きます。f;g とか F;G ですね。恒等は次の約束で書くことにします。

  • 対象Aの恒等射: idA
  • Cの恒等関手: IdC
  • 関手Fの恒等自然変換: ιFギリシャ小文字イオタです)

僕はモノグサなので、idA = A, IdC = C, ιF = F のように書いてしまうことが多い(便利です)が、混乱のもとでもあるので、今回は対象と恒等を区別して書くことにします。

同型は = で書いてしまいます。(×) は、テンソル積の記号(環積記号)のつもりです。

随伴関手対からモナド

CDが圏で、F:CD、U:DC が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):CC と余単位自然変換 ε::(U;F)⇒IdD:DD が出てきます。単位/余単位を随伴のプライマリーな定義にする流儀もあります(僕はその流儀が好きです)。ηとεは、「三角等式、ジグザグ等式、剛性(rigidity)、ヘビ関係式(snake relation)」など、色々な呼び名がある等式を満たします。

F:CD、U:DC、η::IdC⇒F;U:CC、ε::U;F⇒IdD:DD から、関手Mと自然変換μを次のように定義します。

  1. M := (F;U : CC)
  2. μ := (ι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:CD、U:DC を作れないでしょうか? この問に答えるのがアイレンベルグ/ムーア構成です。

先走って概要だけ言ってしまうと; 圏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:CC が圏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:SetSetを考えると、自然数の集合Nと、[zero, succ] : 1 + NN の組 (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:CC に対する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:CCCの自己関手なので、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

何も書いてない矢印は恒等です。等式で書けば:

  1. ηA;a = idA
  2. 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を再現できることは次の機会に。

*1:HamburgとEilenbergで、「バーグ」の綴りがちょっと違うのですけどね。

*2:[追記]日本語が分かりにくいですね。Powfin+は、非空な有限集合の全体からなる集合です。Powfin+(X)自体は、たいてい非空です。Xが空のときだけPowfin+(X)も空です。[/追記]

*3:[追記]M代数(M-algebra)じゃなくてM加群(M-module)と呼ぶこともあるようです。一方で、これは加群だろうというモノを代数と呼ぶこともあるので、「モノイド」、「代数」、「加群」の区別は曖昧なようです。[/追記]