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

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

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

参照用 記事

スケマティック圏: お絵描きできる場所

半グラフからシステムの記述へ」においてスケマティック圏という概念を述べました。しかし、ハッキリした定義を提示したわけではなくて、曖昧に導入しています。

スケマティック圏〈schematic category〉は、特定の圏の固有名ではなくて、圏の種類です。公理的・抽象的に定義したいのですが、現状ではハッキリした完全な公理系は不明です。


まだ不明瞭な概念ではありますが、スケマティック圏達の圏が存在することを仮定してそれを $`{\bf SchemCAT}`$ とします。

この記事で、スケマティック圏の定義をハッキリさせます。$`\newcommand{\mrm}[1]{\mathrm{#1}}
\newcommand{\cat}[1]{\mathcal{#1}}
%\newcommand{\twoto}{\Rightarrow }
\newcommand{\In}{\text{ in } }
\newcommand{\Imp}{ \Rightarrow }
%\newcommand{\Iff}{\Leftrightarrow }
\newcommand{\hyp}{\text{-} }
%\newcommand{\op}{\mathrm{op} }
\newcommand{\id}{\mathrm{id} }
%\newcommand{\pto}{ \supseteq\!\to }
\newcommand{\u}[1]{\underline{#1}}
\require{color} % 緑色
\newcommand{\Keyword}[1]{ \textcolor{green}{\text{#1}} }%
\newcommand{\For}{\Keyword{For } }%
\newcommand{\Define}{\Keyword{Define } }%
\newcommand{\Subject}{\Keyword{Subject } }%
\newcommand{\Where}{\Keyword{Where } }
%\newcommand{\Let}{\Keyword{Let } }
`$

内容:

はじめに

なぜスケマティック圏なるものが必要となるかは、「半グラフからシステムの記述へ」に書いたとおりです。

スケマティック圏の動機・用途・目的は、システムの設計図・青写真をそのなかで描ける圏です。スケマティック圏の対象は、システムの素材であるコンポネントのインターフェイスとみなせます。スケマティック圏の射を使って、コンポネント達の繋ぎ合わせ方(How To Wire Them)を指定できます。

上記引用では、「システム」「コンポネント」「インターフェイス」などのソフトウェア寄りの言葉を使っていますが、特定の分野によらない一般的な概念です。スケマティック圏は、“もとになるモノ”を繋ぎ合わせて複合物を作るときの繋ぎ方を視覚的な絵図として表現するための圏(むしろ圏類似構造〈category-like structure〉)です。

スケマティック圏の動機・用途・目的は具体的なので、完全に抽象的公理化は向いてないように思えます。

スケマティック圏がうまく公理化できたとしても、公理は満たすが正体不明なスケマティック圏を使う機会はないと思うので、有限集合の圏 $`{\bf FinSet}`$ への忘却関手〈忠実関手〉を持つ圏に限定してもいいかも知れません。

上記引用の方針に沿って、特定具体的な圏への忘却関手を持つことをスケマティック圏の定義に含めます。

スケマティック圏は、単なる(構造付きの)圏ではなく、圏と複圏〈オペラッド〉が一緒になった構造として定義します。よって、これを圏と呼んでいいかは疑問ですが、いちいち「圏類似構造」というのも鬱陶しいので、「圏」という言葉を使います。

スケマティック圏の定義

スケマティック圏(正確には圏類似構造)は、次の構成素からなります。

  • 余デカルト・モノイド圏 $`\cat{C}`$ 、スケマティック圏の台〈underlying thing〉。
  • 写像 $`N: |\cat{C}| \to |\cat{C}|`$ 、否定〈negation〉と呼ぶ。
  • $`X \in |\cat{C}|`$ ごとに射 $`\nu_X : X \to N(X) \In \cat{C}`$ 。否定の構造射〈structure morphism〉と呼ぶ。
  • 射のクラス $`W \subseteq \mrm{Mor}(\cat{C})`$ 、$`W`$ に属する射をワイヤリング射〈wiring morphism〉と呼ぶ。
  • オペラッド〈複圏〉 $`\cat{W}`$ 、ワイヤリング・オペラッド〈wiring operad〉と呼ぶ。$`\cat{W}`$ のオペレーション〈複射〉をワイヤリング・オペレーション〈wiring operation〉と呼ぶ。

半グラフからシステムの記述へ」では、ワイヤリング・オペラッドが入っていませんでした。その後考えてみて、台である余デカルト・モノイド圏 $`\cat{C}`$ とは別に、$`\cat{W}`$ を入れるのがいいと思ったのです。

スケマティック圏は、$`(\cat{C}, N, \nu, W, \cat{W})`$ と書くことになりますが、次の約束をします。

  • 射の集合 $`W`$ はオペラッド $`\cat{W}`$ の定義の一部といえる(後述)ので省略してよい。
  • $`N`$ が恒等写像、$`\nu_X`$ がすべて恒等射のときは省略してよい。

よって、否定と構造射が恒等であるスケマティック圏は $`(\cat{C}, \cat{W})`$ と書けます。

スケマティック圏を記号の乱用を使って書くと混乱しそうなので、スケマティック圏 $`\cat{S}`$ は次の形で書くことにします。

$`\quad \cat{S} = (\cat{C}^\cat{S}, N^\cat{S}, \nu^\cat{S}, W^\cat{S}, \cat{W}^\cat{S})`$

スケマティック圏がひとつしか登場しないときは:

$`\quad \cat{S} = (\cat{C}, N, \nu, W, \cat{W})`$

スケマティック圏は完全に抽象的・公理的に定義されるわけではなくて、ひとつの具体的なスケマティック圏を決めて、その標準的なスケマティック圏への忘却関手を持つものとして定義します。次節で標準的なスケマティック圏を定義します。

標準スケマティック圏

これから定義する標準スケマティック圏〈the standard schematic category〉を $`{\bf SC}`$ とします。$`{\bf SC}`$ は次のように書けます。

$`\quad {\bf SC} = ({\bf F}, \id_{|{\bf F}|}, (\id_X)_{X\in |{\bf F}|}, W^{\bf SC}, {\bf W})`$

つまり、

  • $`\cat{C}^{\bf SC} = {\bf F}`$
  • $`N^{\bf SC} = \id_{|{\bf F}|}`$
  • $`\nu^{\bf SC} = (\id_X)_{X \in |{\bf F}|}`$
  • $`\cat{W}^{\bf SC} = {\bf W}`$

先の約束により短く書くなら:

$`\quad {\bf SC} = ({\bf F}, {\bf W})`$

したがって、余デカルト・モノイド圏 $`{\bf F}`$ とオペラッド $`{\bf W}`$ を記述すれば標準スケマティック圏 $`{\bf SC}`$ はハッキリとします。

まず、余デカルト・モノイド圏 $`{\bf F}`$ は次のものです。

$`\quad {\bf F} = ({\bf FinSet}, +, \emptyset)`$

つまり、有限集合の圏にモノイド積として直和を考えた対象モノイド圏です。$`{\bf FinSet}`$ とは別な名前 $`{\bf F}`$ を使ったのは余デカルト・モノイド圏であることを強調するため、そして名前を短くしたかったからです。

標準スケマティック圏 $`{\bf SC}`$ の否定〈negation〉は $`|{\bf F}|`$ の恒等写像です。否定が恒等写像のとき「否定はない」とも言いますが、単なる言い回しで「否定は恒等写像である」と同義です。

$`{\bf SC}`$ の射(台 $`{\bf F}`$ の射をそう呼びます) $`w`$ がワイヤリング射であるとは次のことです。

  1. $`w`$ は、適当な対象 $`X`$ に対する自己射〈endomorphism〉 $`w:X \to X \In {\bf F}`$ である。
  2. $`w`$ は対合〈involution〉である。つまり $`w;w = \id_X`$ 。
  3. $`w`$ は不動点を持たない。つまり、$`\forall x\in X.\, w(x) \ne x`$ 。

この条件は、「テンソルの可視化のための半グラフ」で出したパートナー指定対合〈partner designation involution〉=ワイヤリング対合〈wiring involution〉の条件です。$`{\bf SC}`$ の($`{\bf F}`$ の)ワイヤリング射の全体を次のように置きます。

$`\quad W = W^{\bf SC} \subseteq \mrm{Endmor}({\bf F})`$

$`\mrm{Endmor}(\hyp)`$ は圏の自己射の全体の集合です。

あとはオペラッド $`{\bf W}`$ を定義すれば、標準スケマティック圏 $`({\bf F}, {\bf W})`$ の定義が済みます。$`{\bf W}`$ の定義は次節にします。

標準ワイヤリング・オペラッド

スケマティック圏のワイヤリング・オペラッドは正確に言えば対称オペラッド〈symmetric operad〉です。複数の対象を持つかも知れないオペラッドを色付きオペラッド〈colored operad〉ということもあるので、より丁寧には対称色付きオペラッド〈symmetric colored operad〉です。対称オペラッドの理論は整備されているので、自前でゴチャゴチャやるより、これを利用するのが手っ取り早いです。

オペラッド〈色付きオペラッド〉は複圏〈multicategory〉とも呼ばれ、圏と同様に、対象〈object〉の集合と射(オペレーション〈operation〉、または複射〈multimorphism | multiarrow | multimap〉と呼ばれる)の集合、そして演算で定義されます。

標準ワイヤリング・オペラッド〈the standard wiring operad〉、つまり標準スケマティック圏のワイヤリング・オペラッドである $`{\bf W}`$ を定義しましょう。対象の集合 $`\mrm{Obj}({\bf W})`$ は次のように定義します。

$`\quad \mrm{Obj}({\bf W}) := |{\bf F}| = |{\bf FinSet}|`$

オペレーション〈複射〉のプロファイルは、対象のリストと(単一の)対象とのペアとなります。例えば:

$`\quad w:(A_1, \cdots, A_n) \to B \In {\bf W}`$

特定のプロファイルを持つすべてのオペレーション〈複射〉の集合を次のように書きます。

$`\quad {\bf W}( (A_1, \cdots, A_n), B)`$

圏のホムセットの類似物なので、マルチホムセット〈multihomset〉と呼びます。$`\mrm{List}(\mrm{Obj}({\bf W}))\times \mrm{Obj}({\bf W})`$ の要素ごとにマルチホムセットが対応します。

$`\quad \mrm{List}(\mrm{Obj}({\bf W}))\times \mrm{Obj}({\bf W}) \ni ( (A_1, \cdots, A_n), B)
\mapsto \\
\qquad {\bf W}( (A_1, \cdots, A_n), B) \in |{\bf Set}|
`$

$`{\bf W}`$ のマルチホムセットは次のように定義されます。

$`\For (A_1, \cdots, A_n) \in \mrm{List}(\mrm{Obj}({\bf W}))\\
\For B \in \mrm{Obj}({\bf W})\\
\Define {\bf W}( (A_1, \cdots, A_n), B) := W( (\sum_{i = 1}^n A_i) + B) \\
\quad := \{ w \in {\bf F}( (\sum_{i = 1}^n A_i) + B, (\sum_{i = 1}^n A_i) + B) \mid w \in W \}
`$

ここで、$`W = W^{\bf SC}`$ は $`{\bf F}`$ のワイヤリング射の集合なので、オペレーション〈複射〉の実体はワイヤリング射です。ワイヤリング射は有限集合のあいだの写像に過ぎないので具体的で馴染み深いものです。

さらにここで注意しておきたいことは、$`{\bf W}`$ のオペレーション〈複射〉は半グラフであることです。半グラフ〈semi-graph〉 $`(P, B, c, b, w)`$ は次の形で定義されました(「テンソルの可視化のための半グラフ」参照)。

$`\quad \xymatrix{
{} & {\bf 1} \ar[d]^{c}
\\
% @(inDir, outDir)
P \ar@(ul, dl)[0,0]_{w}
\ar[r]^-{b}
& B
}\\
\quad \text{ in } {\bf FinSet}
`$

$`w:(A_1, \cdots, A_n) \to B \In {\bf W}`$ が半グラフであることは、次のように当てはめれば分かります。

  • $`P = (\sum_{i = 1}^n A_i) + B`$
  • $`B = \{0, 1, \cdots, n\}`$
  • $`c : {\bf 1} \to B`$ は、$`0`$ をポインティングする写像
  • $`b : P \to B`$ は、$`A_i`$ の要素を $`i`$ に、$`B`$ の要素を $`0`$ にマップする写像
  • $`w : P \to P`$ はワイヤリング射としての $`w`$

ボックス達が通し番号で識別されていて、キャンバスボックス〈外部ボックス〉が0番になっているような半グラフです。繋ぎ合わせ方(How To Wire Them)の指定にボックスの名前はどうでもいいので、通し番号でも問題ありません。

次に、オペレーション〈複射〉のオペラッド結合〈operadic composition〉を定義します。オペラッド結合として、ナロー結合〈narrow composition〉を採用する流儀と、ワイド結合〈wide composition〉を採用する流儀がありますが、ちょっとだけ簡単だという理由でここではナロー結合を使います。次の2つのオペレーション〈複射〉(オペラッドの結合演算と混同しないように)を考えます。

$`\quad w: (A_1, \cdots, A_n) \to B \In {\bf W} \\
\quad v: (C_1, \cdots, C_k, \cdots, C_m) \to C_{0} \In {\bf W} \\
\Where C_k = B
`$

$`w`$ と $`v`$ のプロファイルの書き方がチグハグなのは、後で使う記法の都合です。$`w, v`$ に対して、次の結合を定義します。

$`\quad u = w \,;_k v = v \circ_k w`$

先に「モノイド圏上のテンプレート・オペラッド:具体例とソフトウェア的解釈」と「入れ子の半グラフとバエズ/ドーラン・ツリー」を読んでおくと、結合の直感的意味を納得しやすいでしょう。

リスト $`(C_1, \cdots, C_k, \cdots, C_m)`$ の $`C_k`$ を取り除き、$`C_k`$ があった位置にリスト $`(A_1, \cdots, A_n)`$ を押し込んだ〈splice〉リストを、

$`\quad (C_1, \cdots, A_1, \cdots, A_n, \cdots, C_m)`$

と書きます。このリストの長さは $`m - 1 + n`$ です。結合したオペレーションのプロファイルは次のようになります。

$`\quad u = w \,;_k v = v \circ_k w : (C_1, \cdots, A_1, \cdots, A_n, \cdots, C_m) \to C_{0}`$

$`v`$ の実体はワイヤリング射(不動点を持たない対合)なので、写像としての $`u`$ は次のように書けます。

$`\quad u: (C_1 + \cdots + A_1 + \cdots + A_n + \cdots + C_m + C_{0}) \to \\
\qquad (C_1 + \cdots + A_1 + \cdots + A_n + \cdots + C_m + C_{0}) \In {\bf FinSet}`$

$`u`$ の値は、$`w`$ と $`v`$ の値から決めます。使うアルゴリズムは、「不動点なし対合のオペラッド結合」で述べたランド・オア・ホップのアルゴリズムです。「不動点なし対合のオペラッド結合」の記号と合わせるために次のような定義をします。

$`\quad A = \sum_{i = 1}^n A_i\\
\quad B = C_k\\
\quad C = \sum_{i = 0, i \ne k}^{m} C_i
`$

直和の順番を入れ替えると、次のように書けます。

$`\quad w : A + B \to A + B\\
\quad v : B + C \to B + C\\
\quad u : A + C \to A + C
`$

実際に $`u`$ を構成するには、$`w`$ と $`v`$ に対してランド・オア・ホップのアルゴリズムを適用します。$`u`$ が不動点なし対合になることは「不動点なし対合のオペラッド結合」で示しています。

対象 $`X \in \mrm{Obj}({\bf W}) = |{\bf FinSet}|`$ に対して、恒等オペレーション〈恒等複射〉の定義も必要です。

$`\quad \id_X : (X) \to X \In {\bf W}`$

恒等オペレーション(恒等写像と混同しないように) $`\id_X`$ の実体である不動点なし対合は対称射で定義します。

$`\Define (\id_X \text { as operation}) :=
(\sigma_{X, X}: X + X \to X + X \text{ as mapping})`$

このように定義したオペラッド結合と恒等オペレーションが、オペラッド〈対称色付きオペラッド | 複圏〉の公理を満たすことの確認は(難しくはないにしろ)だいぶ面倒です。ここでは省略します。

一般のスケマティック圏

一般のスケマティック圏は、標準スケマティック圏 $`({\bf F}, {\bf W})`$ への忘却関手を持つ圏類似構造です。$`\quad \cat{S} = (\cat{C}, N, \nu, W, \cat{W})`$ が「スケマティック圏の定義」で述べた構造だとします。これに加えて、忘却関手を $`U`$ とします。$`U`$ は次の2つの忘却関手をオーバーロード、あるいは総称しています。

$`\quad U_\cat{C} :\cat{C} \to {\bf F} \In {\bf SymMonCAT}\\
\quad U_\cat{W} :\cat{W} \to {\bf W} \In {\bf SymMultiCAT}
`$

$`U_\cat{C}`$ はホムセットごとに単射、つまり忠実関手です。モノイド関手としては、対称厳密モノイド関手だとします。$`U_\cat{W}`$ も同様に、マルチホムセットごとに単射で、厳密の対称複圏〈対称オペラッド〉の構造を保つ複関手(オペラッドの準同型射)だとします。忘却関手 $`U`$($`U_\cat{C}`$ と $`U_\cat{W}`$)による値は下線〈アンダーライン〉を引いて表すことにします。

さらに、次の法則も満たすとします。

$`\For A \in |\cat{C}|\\
\quad \u{N(A)} = \u{A}\\
\quad \u{\nu_A} = \id_{\u{A}}\\
\For f \in \mrm{Mor}(\cat{C})\\
\quad f \in W \Imp \u{f} \in W^{\bf SC}
`$

$`\cat{C}`$ と $`\cat{W}`$ の関係性も標準スケマティック圏の場合と同じです。次のように定義されます。

$`\Define \mrm{Obj}(\cat{W}) := |\cat{C}|\\
\For (A_1, \cdots, A_n) \in \mrm{List}(\mrm{Obj}( \cat{W} ) )\\
\For B \in \mrm{Obj}(\cat{W})\\
\Define \cat{W}( (A_1, \cdots, A_n), B) := W( (\sum_{i = 1}^n A_i) + N(B) )
`$

標準スケマティック圏と異なるのは、否定 $`N(B)`$ を使っているところです。これは、極性がある場合に効いてきます。

一般のスケマティック圏は、標準スケマティック圏の対象〈有限集合〉に次のような構造を載せたモノを対象とします。

  • ポート極性
  • ワイヤーの向き(タチの良いポート極性から誘導される)
  • ポート型〈ポート色〉
  • ポート達のあいだの全順序

そしてそれから

スケマティック圏は、ストリング図類似の絵を描く場所です。具体的なスケマティック圏を定義すると、そのなかで描ける絵図の種類が決まります。特定のスケマティック圏を固定したとき、そこで描ける絵図の全体はどんな構造と機能を持つか? は興味深い問題だし、実用性もあります。

前節最後に述べたような構造を載せたスケマティック圏を具体的に構成することがまずやるべきことでしょう。