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

ご連絡は上記 X アカウントに DM にてお願いします。

参照用 記事

これは良い! プロ関手の代替としての混合圏

本日3投稿目。

プロ関手とその結合〈プロ結合〉は重要なんですが、分かりにくいんですよね。もっと分かりやすい概念として混合圏を紹介します。「混合圏」は僕が命名したのですが、混合圏に関係する概念として「ヘテロ射〈heteromorphism〉、ブリッジ〈bridge〉、コラージュ〈collage〉」といった言葉は昔からたまにみかけるものでした。これらがプロ関手に相当する構造を定義することは知っていましたが、マイナーな概念だから安全に無視可能〈safely ignorable〉だと思い、まともに考えたことはありませんでした。

混合圏は、プロ関手のコラージュ(コグラフ〈cograph〉ともいう)を、プロ関手から独立した概念として定義したものです。前述した通り、これといった呼び名はないものの、古くから(一部では)使われていた概念です。

標準的な(多数派の)プロ関手の定義に比べて、混合圏のメリットは、結合〈プロ結合〉の定義が初等的で単純明快なことです。コエンドは使わず、直感的に自明に近い定義になります。素晴らしい。

混合圏は、捻じれアロー圏〈twisted arrow category〉やレンズ/オプティック(「レンズ/プロ関手とWeb処理アーキテクチャ」参照)などとも親和性が高く、プロ関手の状態遷移系解釈(「状態遷移系としての前層・余前層・プロ関手」「双遷移系達の3次元の圏 // 双遷移系」参照)と共に、ソフトウェアの数理モデリングに適切そうです。$`\newcommand{\cat}[1]{\mathcal{#1}}
\newcommand{\mrm}[1]{\mathrm{#1}}
\newcommand{\mbf}[1]{\mathbf{#1}}
%\newcommand{\o}[1]{\overline{#1}}
\newcommand{\id}{\mathrm{id}}
\newcommand{\op}{\mathrm{op}}
\newcommand{\In}{\text{ in }}
\newcommand{\hyp}{ \text{-} }
%\newcommand{\twoto}{\Rightarrow }
\newcommand{\pto} {\not\to }
\newcommand{\C} {\mathop{\diamond} }
`$

内容:

混合圏

混合圏は、圏 $`\cat{C}`$ の対象と射にマークが付けられたものです。マーク付け〈marking〉の規則は:

  1. 対象には、$`0`$ か $`1`$ のどちらかのマークを付ける。
  2. 射には、$`0, 1, \mrm{b}`$ のいずれかのマークを付ける。
  3. マーク付けは圏の構造と整合する。

三番目の条件が曖昧なので、もっとちゃんとした定義をします。

$`\vec{\mbf{2}}`$ を次のような圏だとします。

  • 対象達の集合: $`|\vec{\mbf{2}}| := \{0, 1\}`$
  • 射達の集合: $`\mrm{Mor}(\vec{\mbf{2}}) := \{\id_0, \id_1, \mrm{b}\}`$ 、ここで $`b:0\to 1`$
  • 射の結合と恒等射は自明

$`\vec{\mbf{2}}`$ のなかで、恒等射ではない射は $`\mrm{b}:0\to 1`$ だけです。文字 'b' は bridge のつもりです(後述)。

圏 $`\cat{C}`$ のマーク付け $`m`$ とは、次のような関手です。

$`\quad m : \cat{C} \to \vec{\mbf{2}} \In \mbf{CAT}`$

関手 $`m`$ の対象パート $`m_\mrm{obj}: |\cat{C}| \to \{0, 1\}`$ が対象へのマーク付けです。関手 $`m`$ の射パート $`m_\mrm{mor}: \mrm{Mor}(\cat{C}) \to \{\id_0, \id_1, \mrm{b}\}`$ が射へのマーク付けです。ただしマークとしては、対象 $`0,1`$ と恒等射 $`\id_0, \id_1`$ を同一視しています。

このようなマーク付けを持った圏を混合圏〈mixed category〉と呼ぶことにします。記号の乱用で、混合圏を次のように書きます。

$`\quad \cat{C} = (\cat{C}, m)`$

マーク付けは関手なので、逆像(関手のファイバー)を考えることができます。

$`\quad \cat{C}_0 := m^{-1}(0)\\
\quad \cat{C}_1 := m^{-1}(1)
`$

圏 $`\cat{C}`$ の部分圏 $`\cat{C}_0`$ は、$`0`$ でマークされた対象と射からなる部分圏です。同様に、$`1`$ でマークされた対象と射からなる部分圏が $`\cat{C}_1`$ です。これら2つの部分圏は、圏 $`\cat{C}`$ のなかで無交差〈disjoint〉です。$`\cat{C}_0`$ にも $`\cat{C}_1`$ にも属する対象・射は存在しません。

$`\vec{\mbf{2}}`$ の射 $`\mrm{b}`$ の $`m`$ による逆像は、次のような射の集合です。

$`\quad \{f\in \mrm{Mor}(\cat{C})\mid \mrm{dom}(m(f)) = 0 \,\land\, \mrm{cod}(m(f)) = 1\}`$

上記の集合に属する射を混合圏 $`\cat{C}`$ のヘテロ射〈heteromorphism〉と呼びます。ヘテロ射の集合を次のように書きます。

$`\quad \mrm{Het}(\cat{C}) \subseteq \mrm{Mor}(\cat{C})`$

2つの部分圏 $`\cat{C}_0, \cat{C}_1`$ は自己完結的で分離さていますが、ヘテロ射により繋がっています。ヘテロ射を経由することにより、$`\cat{C}_0`$ の中から $`\cat{C}_1`$ の中へと移動できます。$`\cat{C}_1`$ から $`\cat{C}_0`$ へと向かう射は存在しません。したがって、$`\cat{C}_1`$ の中から $`\cat{C}_0`$ の中へは(射に沿って)移動できません。

さらに次の記法も使います。

$`\text{For }A, B\in |\cat{C}_0|\\
\quad \mrm{Hom}^0_\cat{C}(A, B) := \mrm{Hom}_{\cat{C}_0}(A, B) = \cat{C}_0(A, B)`$

$`\text{For }X, Y\in |\cat{C}_1|\\
\quad \mrm{Hom}^1_\cat{C}(X, Y) := \mrm{Hom}_{\cat{C}_1}(X, Y) = \cat{C}_1(X, Y)`$

$`\text{For }A\in |\cat{C}_0|, X\in |\cat{C}_1|\\
\quad \mrm{Het}_\cat{C}(A, X) := \mrm{Hom}_{\cat{C}}(A, X) = \cat{C}(A, X)`$

通常の意味での圏 $`\cat{C}`$ のホムセットを、三種類に分類しています。

  1. 狭義のホムセット $`\mrm{Hom}^0_\cat{C}(A, B)`$
  2. 狭義のホムセット $`\mrm{Hom}^1_\cat{C}(X, Y)`$
  3. ヘトセット〈hetset〉 $`\mrm{Het}_\cat{C}(A, X)`$

狭義のホムセットに属する射をアロー〈arrow〉、特に $`\mrm{Hom}^0_\cat{C}(\hyp,\hyp)`$ に属する射は左アロー〈left arrow〉、$`\mrm{Hom}^1_\cat{C}(\hyp, \hyp)`$ に属する射は右アロー〈right arrow〉と呼びます。ヘトセットに属する射〈ヘテロ射〉をブリッジ〈bridge〉とも呼びます。ヘトセットはブリッジ達の集合とも言えます。

空間位置に起因する「左右」を用語に使うのは好ましくないのですが、両側加群〈two-sided module | bimodule〉や双遷移系〈bi-transition system〉の左右と揃える意味で「左右」を使いました。

混合拡大

ここから先、$`\cat{C},\cat{D}`$ などは通常の圏、$`\cat{P}, \cat{Q}`$ などは混合圏を表すとします。

通常の圏のペア $`(\cat{C}, \cat{D})`$ に対して、次のような混合圏 $`\cat{P}`$ があるとします。

  • $`\cat{P}_0 = \cat{C}`$
  • $`\cat{P}_1 = \cat{D}`$

このとき、混合圏 $`\cat{P}`$ を、ペア $`(\cat{C}, \cat{D})`$ の混合拡大〈mixed extension〉と呼び、次のように書きます。

$`\quad (\cat{C}, \cat{D}) \subseteq_{\mrm{mix}} \cat{P}`$

$`\cat{C}, \cat{D}`$ は、圏としての $`\cat{P}`$ の充満部分圏となります。対象集合については次が言えます。

$`\quad |\cat{C}| + |\cat{D}| \cong |\cat{P}|`$

$`\cat{P}`$ が $`(\cat{C}, \cat{D})`$ の混合拡大であることを、別な記法で次のようにも書きます。

$`\qquad \cat{P} : \cat{C} \pto \cat{D}\\
:\Longleftrightarrow
(\cat{C}, \cat{D}) \subseteq_\mrm{mix} \cat{P}
`$

$`\cat{P} : \cat{C} \pto \cat{D}`$ は、(このブログで使っている)プロ関手の記法と同じです。混合圏は、事実上プロ関手と同じなのです。もし、プロ関手の(標準的な)定義を知っていれば、混合圏がプロ関手のコラージュ〈コグラフ〉になっていることを確認してみてください。

混合圏の結合

通常の圏を対象として、混合圏をとする圏(とりあえずは1-圏)を構成できます。これは、プロ関手を射とする圏と事実上同じものです。しかし、射の結合〈合成〉の定義の容易さは全然違います。混合圏の結合は、特に新しい概念を必要とせず、直感的に自明です。

サイズの問題〈size issue〉を避けるために、圏は小さい圏だけを考えます。これから定義する圏 $`\mbf{MixedCat}`$ は、対象が小さい圏で、が混合圏である圏です。混合圏は圏 $`\mbf{MixedCat}`$ の射なので、域〈ドメイン〉と余域〈コドメイン〉が必要です。次のように定義します。

$`\quad \mrm{dom}(\cat{P}) := \cat{P}_0 \:(\cat{P}_0 \subseteq \cat{P})\\
\quad \mrm{cod}(\cat{P}) := \cat{P}_1 \:(\cat{P}_1 \subseteq \cat{P})
`$

つまり、圏 $`\mbf{MixedCat}`$ においては:

$`\quad \cat{P} : \cat{P}_0 \to\cat{P}_1 \In \mbf{MixedCat}`$

先に定義した記法との関係は:

$`\qquad \cat{P} : \cat{C} \to\cat{D} \In \mbf{MixedCat}\\
\Longleftrightarrow
\cat{P} : \cat{C} \pto \cat{D}\\
\Longleftrightarrow
(\cat{C}, \cat{D}) \subseteq_\mrm{mix} \cat{P}
`$

圏 $`\mbf{MixedCat}`$ の結合〈composition〉の図式順演算子記号を '$`\diamond`$' とします。次の状況を考えます。

$`\quad \cat{P} : \cat{C} \to \cat{D} \In \mbf{MixedCat}\\
\quad \cat{Q} : \cat{D} \to \cat{E} \In \mbf{MixedCat}\\
\quad \cat{R} := \cat{P}\C\cat{Q} : \cat{C} \to \cat{E} \In \mbf{MixedCat}
`$

演算 $`\C`$ を定義するには、混合圏 $`\cat{P}`$ と $`\cat{Q}`$ から新しい混合圏 $`\cat{R}`$ を作る手順を記述すればいいわけです。

まず、対象集合は次のように定義します。

$`\quad |\cat{R}| := |\cat{C}| + |\cat{E}|`$

狭義のホムセットは次のようです。

$`\text{For }A, B\in |\cat{C}|\\
\quad \mrm{Hom}^0_{\cat{R}}(A, B) = \cat{R}_0(A, B) := \cat{C}(A, B)\\
\text{For }S, T\in |\cat{E}|\\
\quad \mrm{Hom}^1_{\cat{R}}(S, T) = \cat{R}_1(S, T) := \cat{E}(S, T)
`$

ヘトセット(ブリッジ達の集合)は次のようです。

$`\text{For }A\in |\cat{C}|, S\in |\cat{E}|\\
\quad \mrm{Het}_{\cat{R}}(A, S) :=
\left({\displaystyle \sum_{(X, Y)\in |\cat{D}|\times |\cat{D}|} }
\mrm{Het}_{\cat{P}}(A, X)\times \cat{D}(X, Y) \times \mrm{Het}_{\cat{Q}}(Y, S)\right)/\sim
`$

「なーんだ、やっぱり複雑じゃないか」と思うでしょうが、それはテキスト数式で書いているからです。図式で考えれば簡単です。

$`\quad \xymatrix@C+1.5pc{
{}
&X \ar[dd]|{g} \ar@/^/[dr]^{g;b}
&{}
\\
A \ar@/^/[ur]^a \ar@/_/[dr]_{a;g}
&{}
&S\\
{}
&Y \ar@/_/[ur]_b
&{}
}`$

上の図をよく見て考えましょう。$`\cat{C}`$ の対象 $`A`$ から、$`\cat{E}`$ の対象 $`S`$ に至るブリッジは、図のような3つの射を繋いだものです。

  1. $`A`$ から $`X`$ に至る $`\cat{P}`$ のブリッジ $`a`$
  2. $`X`$ から $`Y`$ に至る $`\cat{D}`$ のアロー $`g`$
  3. $`Y`$ から $`S`$ に至る $`\cat{Q}`$ のブリッジ $`b`$

プリッジとブリッジを直接繋ぐ場合でも、中間にダミーの恒等射(例えば、$`\id_X`$)を挟めば3つの射を繋いだものとみなせます。3つの射なので、三つ組 $`(a, g, b)`$ で表現できます。三つ組 $`(a, g, b)`$ 達の集合が $`\mrm{Het}_{\cat{P}}(A, X)\times \cat{D}(X, Y) \times \mrm{Het}_{\cat{Q}}(Y, S)`$ です。$`\cat{D}`$ の対象ペア $`(X,Y)`$ は動かしていいので、すべての $`(X,Y)`$ にわたって三つ組達を寄せ集めた集合は次です。

$`\quad {\displaystyle \sum_{(X, Y)\in |\cat{D}|\times |\cat{D}|} }
\mrm{Het}_{\cat{P}}(A, X)\times \cat{D}(X, Y) \times \mrm{Het}_{\cat{Q}}(Y, S)`$

三つ組 $`(a, g, b)`$ は重複した表現になります。上の図を見れば分かるように、次の三つ組達は同じブリッジを表しています。

  1. $`(a, \id_X, g;b)`$
  2. $`(a, g, b)`$
  3. $`(a;g, \id_Y, b)`$

ブリッジの三つ組表現は冗長なのです。冗長さを取り除くには、同じブリッジを表す三つ組は同値だとみなす同値関係 $`\sim`$ により三つ組達の集合の商〈quotient〉をとります。それが、上記の $`/\sim`$ の部分です。

オフィシャルな手順としては、三つ組をすべて寄せ集めてから商集合を作ればブリッジの集合となるのですが、要は、上の図のなかで三つ組の経路〈パス〉が同じブリッジかどうかを判断すればいいのです。経路〈パス〉が同じブリッジかどうかは、通常の圏論の直感に従えば大丈夫です。

以上のようにして、圏 $`\cat{D}`$ のアロー(恒等アローもあり)を経由するブリッジ達の集合 $`\mrm{Het}_{\cat{R}}(A, S)`$ が確定します。

ヘトセットの族 $`\mrm{Het}_\cat{R}(\hyp, \hyp)`$ が決まってしまえば、混合圏 $`\cat{R} = \cat{P}\C\cat{Q}`$ は決まったも同然です。細かい部分を確認すれば、混合圏 $`\cat{P}`$ と $`\cat{Q}`$ の結合(混合圏 $`\cat{R}`$)が確定します。

おわりに

通常(多数派)のプロ関手の結合の定義ではコエンド〈coend〉が出てきます。コエンドは直感的には理解しにくい難しい概念です。それに、なんでコエンドが出てくるのか唐突でよく分かりません。

それに比べて、混合圏の結合は、ブリッジを繋ぐ構成です。中間の圏を経由する“長いブリッジ”の作り方は直感的です。中継に使った中間の圏を忘れてしまえば混合圏の結合が出来上がります。

コエンドを使う定義と結局は同値なんですが、結合にコエンド不要という特徴は混合圏の大きなメリットだと思います。