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

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

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

参照用 記事

一般化クライスリ拡張の例

すぐ上の記事の追記みたいなもの。

一般化クライスリ構成/拡張について、次のように書きました(「一般化クライスリ構成を探して」):

いくつかの例を知っていて、ボンヤリした枠組みを想定している状態です。


個別の例を詳しく調べるほうが得策かな、と今は思っています。

具体例をちゃんと確認できたのは2009年7月でした。「両クライスリ圏が構成できた」という記事です。このときの例は両モナドで、出来た拡張圏は両クライスリ圏と呼んでいました。

(F, ν, ε) がコモナド、(G, μ, η) がモナドだとします。f:F(A)→G(B), g:F(B)→G(C) が2つのクライリ射だとして、F(f):F(F(A))→F(G(B)) と G(g):G(F(B))→G(G(C)) が作れます。自然変換 σ:FG⇒GF があるので、σB:F(G(B))→G(F(B)) を使うと、結合 (F(f);σB;G(g)) : F(F(A))→G(G(C)) を作れます。前後に νA と μC をくっ付けると、F(A)→G(C) が出来て、これがクライスリ結合を与えます。

別な例は比較的最近のもので、 メイヤー代数 (V, M) から作るものです。Δ:V→V×V をVの余乗法(対角)、α:V×M→V をMによる右作用(右スカラー乗法)とします。F(A) := V×A、G(B) := M×B とします。クライスリ射 f:F(A)→G(B) に対して F(f) : F(F(A))→F(G(B)) は、V×V×A→V×M×B となります。前に Δ×A、後に α×B を結合したものを f' とします。つまり、f' := (Δ×idA);F(f);(α×idB) 。この状況で、f#g := f';g' としてクライスリ結合が与えられます。

この2つの例を一緒に混ぜて扱えないかな? と考えています。さらに、もうひとつの例も調べているのですが、まだ詰め切れてないので、ハッキリしたら「個別の例」のレパートリーに加えることにします。

[追記]大域参照コモナド、更新モナド、メイヤー代数はたくさん混ぜて一緒に使えそうな感じです。例外モナドトランザクションとの絡みがあるので単純ではないですけど。実ストレージの更新やトップレベトランザクションのコミットを考えるとメイヤー加群は必要です。[/追記]