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

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

壁の圏の構造

全然説明してないが、システムの部屋モデルを考えている。部屋というのが高次圏のセル(高次射)であって、境界セルとして部屋の壁がある。圏の次元は少なくとも3、もっと高いかもしれない。結合以外にモノイド積が入っているから演算の数はやたらに多い。

部屋の壁の向かい合う二面がIOインターフェースとなるのだが、この壁自体が圏になっている。だいたいの定式化を書いておく。

壁のモノイド圏

対象類は自然数の全体Nであり、対称モイイド分断圏である。モノイド積の対象への制限は足し算となる。n∈Nに対する射(分断圏なので射は、n→nの形に限られる)は次のようなもの; Σ=(Σ1, ..., Σn)は、アルファベット(記号の集合)のn-列。記号は遷移系のアトミック・アクション(コマンド)と解釈する。AはΣ1*× ... ×Σn*の部分集合である(つまり、Aは、列のn-タプルの集合)。これらの組(Σ, A)が射である。

(Σ, A)と(Γ, B)が、n→nの射のとき、結合(Σ, A);(Γ, B)は次のように定義する; Σ=(Σ1, ..., Σn)とΓ=(Γ1, ..., Γn)に対して、Σ∪Γ = (Σ1∪Γ1, ..., Σn∪Γn)とする。これも長さnの列となる。A⊆Σ1*× ... ×Σn*は、A⊆(Σ1∪Γ1)*× ... ×(Σn∪Γn)*と考えてよい。同様に、B⊆(Σ1∪Γ1)*× ... ×(Σn∪Γn)*。この状況で、言語Aと言語Bの連接A;Bを作れる。(Σ, A);(Γ, B) := (Σ∪Γ, A;B) と定義する。

nに対するidnは、0n = (0, ..., 0)として、0*× ... ×0* = En = 単元集合 として、(0n, En)で与えられる。

モノイド積×は、(Σ, A)×(Γ, B) := (Σ・Γ, A×B)とする。・は列の連接、A×Bは言語集合の直積である。この定義から、対象Nの加法がモノイド積になることは明らか。

α=(Σ, A)、β=(Γ, B)などが壁の圏の射だとして、システムは部屋の壁をつなぐので、α→βのようなプロファイルを持つ。このとき、n→mのような射も必要になる(?)気もするが、ここがよくわからない。α×βにはシステム状態空間の直積が対応する。ここで、トレースに関する、f;g = Tr[(f×g);σ] は重要な指針を与える。

壁の二重圏

壁の圏の射α、βに対して、セルf:α→βを考える。α=(Σ, A)、β=(Γ, B)だとして、fは、リボン(ストリングの束)集合AからPow(B)への写像である。PowモナドのKleisli圏を考えれば、fは射と考えてよい。リボン言語を対象として、その変換を射とする圏となる。

二重圏とするには、対象圏を壁の圏W(対象は自然数n, m、射はインターフェースα, β)として、射圏Mは次のようにする:

  • Mの対象は、[n, m]のような自然数の順序対。
  • Mの射[n, m]→[n, m]は、α:n→nからβ:m→mへのセルf::α→β
  • Mの結合は、f::(α:n→n)→(β:m→m)とg::(γ:n→n)→(δ:m→m)に対して、f;g :: (α;γ:n→n)→(β;δ:m→m)。f;gはシステムのコボルディズム・グルーイングの観測的振る舞い(詳細な定義が必要)。
  • Mは分断圏となる。Wも分断圏だから、分断圏の圏の内部圏となる。

境界関手:

  • D0([n, m]) = n
  • D0(f:α→β) = α
  • D1([n, m]) = m
  • D1(f:α→β) = β

スター結合(横結合、水平結合、内部圏としての結合関手):

  • セルf::(α:n→n)→(β:m→m)とセルg::β→γのスター結合は、システムのIO結合になる。f*g::(α:n→n)→(γ:k→k)