haskellの創始者のひとりであるフィリップ・ワドラーが「モナドとは単なる『自己関手の圏におけるモノイド対象』だよ。何か問題でも?」と言った(らしい)ことで有名。
すごくシンプルだが結局何なのかよく分からないことでも有名。
数学の定義からじゃプログラミングにおけるモナドとの関係が分かりにくいことでも有名。
圏、関手、自然変換、モノイドの知識を前提とする。該当記事を参照のこと。
簡単に言えば、
である。
自然変換は合成できる。関手を対象、自然変換を射と見れば、これは圏になるという事を示している。実際、C,Dを圏とするとき、DCを、
圏C,Dと関手S:C→D、T:D→Cを考える。
C |
S → ← T |
D |
この時、次の性質を持つ組〈S,T,φ〉をCからDへの随伴という。
c,c,T(d),T(d')∈Ob(C)、S(c),S(c'),d,d'∈Ob(d)とする。
φをDの射とCの射を対応付ける、ある規則とする。
Dの射 f:Sc→d に右随伴射と呼ばれるCの射 g=φ(f):c→Td を割り当てる全単射で、すべてのCの射 h:c'→c とDの射 k:d'→d について自然性条件 φ(k∘f)=T(k)∘g、φ(f∘S(h))=g∘h が成り立つ。このとき、φ-1(g)=fであり、φ-1(g∘h)=f∘S(h)、φ-1(T(k)∘g)=k∘φ-1(g)も成り立つ。
| → |
→ |
→ |
gc'→T(d') → |
T(d') |
T(k) → |
T(d) |
||
| C | ↑ c' |
h → |
c |
gc→T(d) → |
→ |
→ |
↑ | |
| ↓↓S | ↓↓S | ↑↑T | ↑↑T | |||||
D |
S(c') ↓ |
→ S(h) |
S(c) | → fS(c)→d |
→ | → | ↓ |
|
| → | → | → | → fS(c')→d' |
d' | → k |
d |
このような随伴条件が与えられたとき、SはTの左随伴、TはSの右随伴という。
この射から射への割り当てにより、φはCの自己関手TSに対する自然変換となる。
この時、以下の性質を持つものが決定する。φをε、φ-1をηとする。
| S∘η S=S∘IC → |
S∘T∘S |
ε∘S → ID∘S=S |
η∘T T=IC∘T → |
T∘S∘T |
T∘ε → T∘ID=T |
圏を明示すると以下の通り。ジグザグ恒等式と呼ばれることがある。
C |
→ |
IC → |
→ |
C |
C |
→ |
IC → |
→ |
C |
|||||
| S↘ | ⇓η | T↗ | ⇓ε | ↘S | T↗ | ⇓ε | S↘ | ⇓η | T↗ | |||||
| D | → | → ID |
→ | D | D | → | → ID |
→ | D |
つまり、TS(c)≠cであるが、自然変換εにより、TS(c)をc=IC(c)と対応付ける。
同様に、ST(d)≠dであるが、自然変換ηにより、ST(d)をd=ID(d)と対応付ける。
この自然変換ηを単位、εを余単位という。φから一意にη,εが決まるため、随伴〈S,T,φ〉は〈S,T,η,ε〉と書かれる。
これにより、射の集合に同型写像HomC(c,Td)≅HomD(Sc,d)が存在する。
任意の自己関手の集まりU:C→Cは合成U2=U∘U:C→CやU3=U2∘U:C→Cなどを持つ。μ:U∘U→Uを、各x∈Ob(C)についてのコンポーネントμx:U2(x)→U(x)を持つ自然変換とする。U•μ:U∘(U∘U)→U∘Uはコンポーネント(U∘μ)x=U(μx):U3(x)→U2(x)を持つ自然変換であり、μ•U:(U∘U)∘U→U∘Uはコンポーネント(μ∘U)x=μUxをもつ自然変換である。
圏CにおけるモナドU=〈U,η,μ〉とは、自己関手U:C→Cと2つの自然変換η:IC→U、μ:U2→Uからなり、次の図式を可換にするものである。恒等自然変換をidとする。
U3 |
id•μ → |
U2 |
| ↓μ•id | ↓μ | |
| U2 | → μ |
U |
IC∘U |
η•id → |
U2 |
id•η ← |
U∘IC |
| id↘ | ↓μ | ↙id | ||
| U |
上の可換図式はC∘C→Cの双関手、下の可換図式は右単位元律、左単位元律と見なせる。
ここから、モナドは形式的にモノイドの定義とよく似ていることが分かる。
モノイドと対応付けると以下の通り。
という対応関係がある。従ってηをモナドUの単位と呼び、μを乗法を呼ぶ。あらためて、上の図式はモナドの結合律を表し、2つ目の図式は右単位元律、および左単位元律を表している。
端的にいえば、圏Cのモナドとは自己関手U:C→Cの成す圏CCにおけるモノイドに他ならない。
モナドとは、μにより定まる自己関手の合成を積∘と見なし、ηにより定まる単位元IC(恒等関手)を持つ3つ組(CC,∘,IC)のモノイド対象ということである。
関手間の積の記号∘は省略する。圏C,Dに対し関手S:C→D、T:D→Cが随伴〈S,T,η,ε〉であると仮定する。η:IC→TS、ε:ST→IDである。合成TSは自己関手となる。単位ηと余単位εは水平合成により自然変換μ=TεS:TSTS→TS=U、つまり積μを生じる。
この置き換えを使うと先ほどの図式は以下のようになる。
TSTSTS |
TSTεS → |
TSTS |
| ↓TεSTS | ↓TεS | |
| TSTS | → TεS |
TS |
ICTS |
ηTS → |
TSTS |
TSη ← |
TSIC |
| id↘ | ↓TεS | ↙id | ||
| TS |
これは随伴に関する恒等式id=Tε・ηT:T→T、id=εS・Sη:S→Sを表す。まとめると、組〈TS,η,TεS〉を随伴S,T,η,εにより定義されるモナドという。
〈U,η,ε〉を圏Xにおけるモナドとする。U-代数とは、対象x∈Ob(X)、Xの射h:U(x)→xの組〈x,h〉からなり、以下の2つの図式を可換にする。
U(U(x)) |
U(h) → |
U(x) |
x |
ηx → |
U(x) |
|
| μx↓ | ↓h | idx↘ | ↓h | |||
| U(x) | → h |
x | x |
U-代数の射f:〈x,h〉→〈x',h'〉は図式
x |
h ← |
U(x) |
| ↓f | ↓U(f) | |
| x' | ← h' |
U(x') |
を可換にするfである。
Xを基礎圏、Uを台関手、hを評価射と呼ぶ。
〈U,η,ε〉がCにおけるモナドであるとき、全てのU-代数とその射の集合は圏(アイレンベルク・ムーア圏)を成し、CUと書く。このとき、Uから決まるCからCUへの随伴〈SU,TU,ηU,εU〉が存在し、関手SU,TUはそれぞれ
〈x,h〉 |
TU → |
x |
x |
SU → |
〈U(x),εUx〉 |
|
| f↓ | ↓f | ↓f | ↓f | |||
| 〈x',h'〉 | → TU |
x' | x' | → SU |
〈U(x'),εUx'〉 |
により与えられ、各U-代数〈x,h〉についてηU=ηかつεU=hが成り立つ。この随伴によりCにおいて定義されるモナドは最初に与えられたモナドと一致する。
CからDへの随伴〈S,T,η,ε〉から始めて随伴によりCで定義されるモナドU=〈TS,η,TεS〉を構築し、その後U-代数の圏CUを構築するとする。このとき、TUK=T、KS=SUを満たす一意な関手K:D→CUが存在する。つまり、次の可換図式が存在する。
D |
K → |
CU |
| S↑↓T | SU↑↓TU | |
| C | = | C |
つまり、任意の随伴DはモナドUを通してアイレンベルク・ムーア圏と対応付けられる。
多くの随伴でKは圏の同型になり、このときのTをモナディックという。
Grpが群の圏である時、集合の圏Setの各対象Xについて、x∈X、g1,g2∈G∈Ob(Grp)、Gの単位元eに関する定義
U(X)=G×X |
ηx X→G×X |
μx G×(G×X)→G×X |
| x→〈e,x〉 | 〈g1,〈g2,x〉〉→〈g1g2,x〉 |
は集合の圏Set上のモナド〈U,η,ε〉を定義する。このときU-代数は集合Xと関数h:G×X→Xで、常にh(g1g2,x)=h(g1,h(g2,x))、h(e,x)=xが成り立つものである。h(g,x)をg・xと書くとこれらは通常の群Gの集合Xへの作用を定義する。
Rngが環の圏、Rが環である時、各アーベル群Aについて、a∈A、r1,r2∈R、Rの単位元1に関する定義
U(A)=R⊗A |
ηx A→R⊗A |
μx R⊗R⊗A→R⊗A |
| a→〈1,a〉 | r1⊗(r2⊗a)→(r1r2⊗a) |
はアーベル群の圏Ab上のモナド〈U,η,μ〉を定義する。このときU-代数はアーベル群Aと関数h:R⊗A→Aで常にh(r1r2,a)=h(r1,h(r2,a))、h(1,a)=aが成り立つものである。h(r,a)をr・aと書くとこれらは通常の環Rのアーベル群Aへの作用を定義する。
掲示板
1 deadbull
2018/10/25(木) 05:27:01 ID: Ip3tfB4fCN
作成ありがとうございます。
モノイドの記事と重複するところが大きいようですが、
関手などの記事に細分化して、順番に読んでいけるように誘導することで、重複を減らせないかご検討頂けましたら幸いです。
2 deadbull
2018/10/25(木) 21:40:09 ID: Ip3tfB4fCN
ご対応ありがとうございます。
とはいえ、相変わらず内容は自分にはさっぱりですが、
そのうちじっくり読んでみたいと思います。
3 ななしのよっしん
2020/08/09(日) 13:19:31 ID: iSwkJPque/
応用を考えるならモナドそのものだけじゃ不十分でクライスリ圏とかを考える必要がありそう
急上昇ワード改
最終更新:2025/12/06(土) 12:00
最終更新:2025/12/06(土) 12:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。