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

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

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

参照用 記事

色付き絵算と分合律

ボックス&ワイヤー図、あるいはストリング図において、ワイヤー(ストリング)の並置はモノイド積を表します。モノイド積が2種類、例えば×と+があると、単に並置するだけではどっちの積か分かりません。そこで、ワイヤー間の帯状領域に色を塗って区別することにします。例えば、×が赤、+が青とか、3色ペンの出番ですぜ。

また、A, B, C 3本のワイヤーがあるとき、「AとB」、「BとC」のどちらを先に演算するかを示すために、束ね糸を使うことにします。このお絵描き方式で分配律を描くと次のようです。

分配律は、形状を完全に描き換える必要があって、絵算的には厄介なことになってしまいます。残念ながら、分配律を含む計算は平面絵算には向きません。しかし、次ならどうでしょう。これなら、形状の変化がないので、絵算的には何の操作も要らなくて大変にありがたい。

このありがたい法則が分合律*1 (E+A)×S = E+(A×S) です*2。Eのワイヤーを波線で描いたのは、Eは例外のデータ型(例外クラス)だからです。演算+は、例外データ型を左に、通常データ型を右に置く足し算で、普通の足し算(直和)と完全に同じではありませんが、ほとんど普通の足し算として扱えます。

色と分合律を使って、状態参照と例外を含む計算のクライスリ結合を描いてみると次のようです。モノイド積の種類は色で区別できますが、センター(メインストリーム入出力)より右側が直積、左側が直和になるように描いてあります。

対称性を持ったきれいな図形です(僕の絵はキタネーけど)。この対称性は、「直和⇔直積」の双対性と、「対角コモノイド⇔余対角モノイド」の双対性に起因します。つまり、この絵は状態参照と例外生成の双対性如実にかつ印象的に表しているのです。

上で、「クライスリ結合」と書きましたが、実際は一般化されたクライスリ結合です。この結合に対する恒等を定義して、一般化されたクライスリ圏(一般化クライスリ圏)がほんとに圏になるのを確かめるのは良い練習問題です。

僕は、クライスリ結合とその周辺をもっと一般化して、もっと不純な計算まで扱えるようにしたいのですよ。大域脱出とか、自分を書き換えるコードとか。

*1:dissociative law, dissociativity に対して僕がでっちあげた訳語です。

*2:絵も式も同型/イコールを使って書いてしまいましたが、同型である必要はありません。分合律の正体は、E+(-) という関手の×に対するテンソル強度変換です。僕はちゃんと確認してないのですが、テンソル強度の一貫性が要求されるでしょう。