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

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

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

参照用 記事

パワーアップ・モナド工場の秘密

モノイドからモナドを作る話は:

C = (C, \otimes, I) をモノイド圏として、C内のモノイドの圏を Monoid(C)、C上のモナドの圏を Monad(C) とすると、Monoid(C)→Monad(C) という関手があります。(monoidとmonadは綴が似ているので注意してください。)

ラックス・モノイド関手については、次の記事で書きました。

ラックス・モノイド関手に関する次の2つの定理は、ラックス・モノイド関手の定義からすぐに出ます。

  1. 2つのラックス・モノイド関手を結合すると、またラックス・モノイド関手になる。
  2. 単一対象と恒等射だけからなる自明圏からのラックス・モノイド関手は、モノイドと同じである。

2番めの定理は次の記事で述べています。

CEをモノイド圏として、F:CE をラックス・モノイド関手とします。先に挙げた2つの定理を組み合わせると:

  • ラックス・モノイド関手Fは、Monoid(C)→Monoid(E) を誘導する。

Dを圏(モノイド圏である必要はない)とすると、自己関手と自然変換の圏 End(D) は、関手の結合を(非対称な)モノイド積としてモノイド圏となります。すぐ上の主張のEを End(D) に置き換えると:

  • ラックス・モノイド関手 F:C→End(D) は、Monoid(C)→Monoid(End(D)) を誘導する。

Monoid(End(D)) = Monad(D) なので、

  • ラックス・モノイド関手 F:C→End(D) は、Monoid(C)→Monad(D) を誘導する。

さらに、次の記事で述べたフォークロを考慮しましょう。

Dがモノイド圏C上の加群圏になっていると、その加群構造からラックス・モノイド関手 H:C→End(D) を構成できます*1。これから、Monoid(C)→Monad(D) を作れます。つまり、

  • Dがモノイド圏C上の加群圏ならば、C内のモノイドは、D上のモナドを誘導する。

モノイド圏Cは、自分自身の上の加群圏であることから、

  • モノイド圏C内のモノイドは、C上のモナドを誘導する。

これが「モナド工場の秘密(オリジナル版)」でした。C内のモノイドが、異なる圏D上のモナドを誘導するという事実は、パワーアップしたモナド工場を与えることになります。

パワーアップ・モナド工場の実例をひとつ挙げましょう。

上記の記事で説明した状況で、コンパクト測度空間の圏CompMSはモノイド圏で、その反対圏CompMSopもモノイド圏です。うまいこと定義すると、バナッハ空間の圏Banはモノイド圏CompMSop上の加群圏になります。よって、“CompMSop内のモノイド=CompMS内のコモノイド”は、バナッハ空間の圏Ban上のモナドを定義します。CompMSには、対角射を余乗法とするコモノイドがたくさん(対象の数だけ)あります。モノイド圏ではないBan上のモナド大量生産できました。[追記]CompMS側をちょっと細工する必要がありますね。でも、大筋はこれでいいかと。[/追記]

*1:実際は、Hは強モノイド関手になります。強モノイド関手はラックス・モノイド関手の特別なものなので、特に問題はありません。