このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

両代数と両クライスリ圏

FがC上のコモナド、Gがモナドのとき、F(X)→G(Y) というCの射を X→Y という射だと思って、両クライスリ圏を構成したい。どうしたらいいか? という話。

F = (F, δ, ε), G = (G, μ, η) だとする。ほかに、τ::FG⇒GF があるとする。τはスワッパーと呼ぶ。f:F(X)→G(Y), g:F(Y)→G(Z) に対して、

  • δX;F(f);τY;G(g);μZ

として両クライスリ結合が定義できそうだが、τに条件を付けないと両クライスリ圏の構成はできない。

まったくの山勘なのだが、ベックの法則をヒントにすると、次のような等式ではないかと思われる。「|」は自然変換の縦結合、モノイド積としての結合は反図式順の並置。「|」の優先順は弱い。

  • τ|Gε = εG
  • Fη|τ = Fη
  • δG|Fτ|τF = τ|Gδ
  • τG|Gτ|μF = Fμ|τ

ほとんど根拠がないので、当たっていたらラッキー。当たっていたら計算で確認できるが、当たってないと悲惨。

[追記]計算には、手前味噌だがヤッパリDOTNが一番強力そうだ。コモノイド法則を書いてみると:

  1. δ|εF = F^
  2. δ|Fε = F^
  3. δ|Fδ = δ|δF

うーん、コンパクト。インデックスxを入れて具体化すると:

  1. x.δ ; x.ε.F = (x.F)^
  2. x.δ ; x.F.ε = (x.F)^
  3. x.δ ; x.F.δ = x.δ ; x.δ.F

[/追記]