モナド(数学) 単語

モナド

3.9千文字の記事

モナドとは、圏論における組みの一つである。

概要

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ηとする。

  • 各対cについて射ηcがcからT(d)への普遍射であり、各f:S(c)→dの右随伴がφ(f)=g=T(f)∘ηc:c→T(d)であるような自然変換η:IC→T∘Sである。このとき、ηc:c→(T∘S)(c)ηc=φ(idS(c))となる。
  • 各対dについて射εdがS(c)からdへの普遍射であり、各g:c→T(d)が左随伴射φ-1(g)=εd∘S(g):S(c)→dを持つような自然変換ε:S∘T→IDである。このとき、εd:(S∘T)(d)→d、εd=φ-1(idT(d))となる。
  • 次の2つの合成は恒等自然変換である。
    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

一般の自己関手U:C→Cは常に恒等関手であるとは言えない。

つまり、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,η,ε〉であると仮定する。η:ICTSε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への作用を定義する。

関連項目

この記事を編集する

掲示板

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
初音ミク[単語]

提供: ゲスト

もっと見る

急上昇ワード改

最終更新:2025/12/06(土) 12:00

ほめられた記事

最終更新:2025/12/06(土) 12:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP