エンドとコエンドは、その名前から双対なんだろうとは誰でも思うでしょう。しかし、定義の仕方によっては双対性が見えにくいこともあります。この記事では、エンドとコエンドの双対性が出来るだけ見えやすくなるような定義と記法を提示します。$`\newcommand{\END}{ \overline{\prod} }
\newcommand{\COEND}{ \underline{\sum} }
\newcommand{\LEFT}{ \overline{L} }
\newcommand{\RIGHT}{ \overline{R} }
\newcommand{\COLEFT}{ \underline{L} }
\newcommand{\CORIGHT}{ \underline{R} }
\newcommand{\cat}[1]{ \mathcal{#1} }
\newcommand{\mbf}[1]{ \mathbf{#1} }
\newcommand{\mrm}[1]{ \mathrm{#1} }
\newcommand{\o}[1]{ \overline{#1} }
\newcommand{\id}{ \mathrm{id} }
\newcommand{\In}{ \text{ in }}
\newcommand{\On}{ \text{ on }}
\newcommand{\op}{ \mathrm{op}}
`$
内容:
エンド/コエンドの記号
エンド/コエンドに関係する幾つかの過去記事があります。
通常、エンドもコエンドも積分記号で書かれます。束縛変数を下に書くか、上に書くかでエンドとコエンドを区別します。
- エンド: $`{\displaystyle \int_{x\in |\cat{C|}} }`$
- コエンド: $`{\displaystyle \int^{x\in |\cat{C|}} }`$
上記過去記事の最初の3つの記事では、次の記法を使っています。
- エンド: $`{\displaystyle \END_{\,x\in |\cat{C|}} }`$
- コエンド: $`{\displaystyle \COEND^{\,x\in |\cat{C|}} }`$
総積記号〈パイ記号〉と総和記号〈シグマ記号〉を使っているのは、エンドは集合の総直積の部分集合、コエンドは集合の総直和の商集合になるからです。
$`\quad {\displaystyle \END_{\,x\in |\cat{C|}} P(x, x) \subseteq \prod_{x\in |\cat{C}| } P(x, x) }\\
\quad {\displaystyle \COEND^{\,x\in |\cat{C|}} P(x, x) = \left(\sum_{x\in |\cat{C|}} P(x, x) \right)/\simeq
}`$
オーバーライン/アンダーライン〈上線/下線〉がないパイ記号/シグマ記号は、集合達の総直積と総直和です。$`\simeq`$ はとある同値関係です。
エンド/コエンドを定義する際は、圏 $`\cat{C}`$ は小さい圏と仮定している*1ので、$`|\cat{C}|`$ は単なる普通の集合です。したがって、集合 $`|\cat{C}|`$ でインデックス付けられた集合族の総直積と総直和も単なる普通の集合です。エンドは普通の集合の部分集合、コエンドは普通の集合の商集合です。
連立方程式系と関係族の同値閉包
前節で、「エンドは部分集合/コエンドは商集合」と言いました。より詳しく言うと:
- エンドは、連立方程式系の解空間〈解集合〉として定義される。
- コエンドは、関係族の同値閉包である同値関係による商集合として定義される。
ここで、これら2つの概念が双対っぽく見えるような記法を約束しましょう。
$`l, r:X \to Y \In \mbf{Set}`$ があるとき、$`l = r`$ は集合 $`X`$ 上の方程式〈equation〉です。その解空間〈solution space〉は次のようです。
$`\quad \{x\in X \mid l(x) = r(x) \}`$
$`I`$ をインデックス集合〈indexing set | インデキシング集合〉として、インデックス付けられた方程式の族〈indexed family of equations〉を考えます。それは次のように書けます。
$`\quad \left( l_i = r_i \On X \right)_{i \in I} \\
\text{Where } l_i, r_i : X \to Y_i \In \mbf{Set}
`$
これを連立方程式系〈system of equations〉と呼びます。連立方程式系の解空間は次のように書くことにします。
$`\quad \left\langle l_i = r_i \On X \right\rangle_{i\in I}\\
:= \{ x\in X \mid \forall i\in I.\, l_i(x) = r_i(x) \}
`$
次に、ある観点からは連立方程式系の双対である関係族を定義します。集合 $`X`$ 上の関係族〈family of relations〉とは、インデックス付けられた関係の族〈indexed family of relations〉です。
$`\quad \left( R_i \On X \right)_{i \in I}\\
\text{Where } R_i \subseteq X \times X
`$
関係族があると、それから $`X`$ 上の同値関係を定義できます。次の手順です。
- すべての関係達の合併 $`\widetilde{R} := {\displaystyle \bigcup_{i\in I}R_i}`$ を作る。
- 関係 $`\widetilde{R}\subseteq X\times X`$ の反射的対称的推移的閉包〈reflexive-symmetric-transitive closure〉を作る。
こうして作った同値関係を、関係族の同値閉包〈equivalence closure〉と呼ぶことにします。定義から同値閉包は、関係族のすべての関係を含む最小の同値関係です。
関係族 $`\left( R_i \On X \right)_{i \in I}`$ に対して、その同値閉包による商集合を次のように書くことにします。
$`\quad \left[ R_i \On X \right]^{i\in I}`$
山形括弧と角括弧、下付きと上付きによって双対っぽい感じを出しています。双対に感じるか/見えるかは、慣れの問題もあるので、慣れやすいようにそれっぽい記法にしました。連立方程式系と関係族、そして解空間(部分集合)と同値閉包の商集合は、ある観点からは双対なのです。このことは、エンド/コエンドの双対性を見るときに使います。
総直積の射影と総直和の入射
$`I`$ はインデックス集合だとして、$`A`$ は $`I`$ でインデックス付けられた集合族〈$`I`$-indexed family of sets〉だとします。つまり:
$`\quad A:I \to |\mbf{Set}| \In \mbf{SET}`$
集合族 $`A`$ の総直積〈パイ型〉と総直和〈シグマ型〉は次のように書きます。
- 総直積: $`\prod_{i\in I}A(i)`$ または $`{\displaystyle \prod_{i\in I}A(i)}`$
- 総直和: $`\sum_{i\in I}A(i)`$ または $`{\displaystyle \sum_{i\in I}A(i)}`$
総直積は集合圏における極限対象、総直和は余極限対象であることに注意してください。極限対象からは射影〈projection〉があり、余極限対象への入射〈injection | 余射影 | coprojection〉があります。射影と入射は次のように書くことにします。
$`\text{For } a\in I \\
\quad \pi^a : {\displaystyle \prod_{i\in I}A(i)} \to A(a) \In \mbf{Set}\\
\quad \iota_a : A(a) \to {\displaystyle \sum_{i\in I}A(i)} \In \mbf{Set}
`$
入射は単射です。入射を包含写像だとみなして、次のように考えることも多いです。(いつも包含とみなす、とは言ってません。)
$`\quad A(a) \subseteq {\displaystyle \sum_{i\in I}A(i)}`$
総直積〈パイ型〉と総直和〈シグマ型〉のあいだには次の関係があります。
$`\quad {\displaystyle \prod_{i\in I}A(i)} = \mrm{Sect}(\pi : {\displaystyle \sum_{i\in I}A(i)} \to I)
`$
ここで、$`\pi`$ はバンドルの射影であり、総直積の射影〈成分射影〉$`\pi^a`$ とは別物です。どちらも「射影」と呼ぶので注意してください。$`\mrm{Sect}`$ は、バンドルのセクション達の集合を表します。バンドルの射影が全射でないなら、セクションがないので総直積は空集合になります。
総直積〈パイ型〉の射影〈成分射影〉 $`\pi^a`$ は、セクションをインデックス点 $`a`$ で評価〈evaluation〉することなので、次のように書けます。
$`\text{For } a\in I \\
\text{For } s\in {\displaystyle \prod_{i\in I}A(i)}\\
\quad \pi^a(s) = s(a) \; \in A(a)
`$
また、総直和〈シグマ型〉の入射〈ファイバー埋め込み〉 $`\iota_a`$ は、タグ $`a`$ によるタギングだと考えて、次のように書けます。
$`\text{For } a\in I \\
\text{For } x\in A(a)\\
\quad \iota_a(x) = (a, x) \; \in {\displaystyle \sum_{i\in I}A(i)}
`$
インデックス引数 $`a\in I`$ による評価と、タグ $`a\in I`$ によるタギングは、ある観点からは双対な操作なのです。
集合に対する射の左作用と右作用
$`\cat{C}`$ を小さい圏、$`P`$ を自己プロ関手だとします。つまり:
$`\quad P: \cat{C}^\op \times \cat{C} \to \mbf{Set} \In \mbf{CAT}`$
自己プロ関手を正方行列になぞらえて、対象 $`x\in |\cat{C}|`$ に対する $`P(x, x)`$ を対角成分〈diagonal component〉と呼ぶことにします。$`x \mapsto P(x, x)`$ は、$`|\cat{C}|`$ をインデックス集合とする集合族になります。エンド/コエンドでは、自己プロ関手の対角成分集合族が重要な役割を演じます。
プロ関手に関して、その左作用と右作用を定義できます(「状態遷移系としての前層・余前層・プロ関手」参照)。ここでは、二種類の左作用、二種類の右作用、合計四種類の作用に注目します。
$`f:a \to b\In \cat{C}`$ に対して、次の図のような右作用 $`\RIGHT_f`$ 、左作用 $`\LEFT_f`$ を考えます。
$`\text{For }f: a\to b \In \cat{C}\\
\quad \xymatrix {
P(a, a) \ar[dr]_{\RIGHT_f}
& {}
& P(b, b) \ar[dl]^{\LEFT_f}
\\
{}
& P(a, b)
& {}
}\\
\quad \In \mbf{Set}
`$
具体的な定義は次のようです。
- $`\RIGHT_f := P(\o{\id_a}, f)`$
- $`\LEFT_f := P(\o{f}, \id_b)`$
ここで、$`\o{f}`$ は、$`\cat{C}^\op`$ の射とみなした $`f`$ のことです(このオーバーライン記法〈上線記法〉は「状態遷移系としての前層・余前層・プロ関手」で導入しました)。反対圏の射を示すオーバーラインと、$`R, L`$ の上に引いているオーバーラインとは用法が全然違うので注意してください。
次に、$`g:b \to a\In \cat{C}`$ に対して、次の図のような右作用 $`\CORIGHT^g`$ 、左作用 $`\COLEFT^g`$ も考えます。
$`\text{For }g: b\to a \In \cat{C}\\
\quad \xymatrix {
{}
& P(a, b) \ar[dl]_{\CORIGHT^g} \ar[dr]^{\COLEFT^g}
& {}
\\
P(a, a)
& {}
& P(b, b)
}\\
\quad \In \mbf{Set}
`$
具体的な定義は次のようです。
- $`\CORIGHT^g := P(\o{\id_a}, g)`$
- $`\COLEFT^g := P(\o{g} , \id_b)`$
エンド/コエンドの定義
$`\cat{C}`$ を小さい圏、$`P`$ を自己プロ関手だとします。
自己プロ関手 $`P`$ のエンドを定義するために、$`f:a \to b\In \cat{C}`$ ごとに次の図式(可換図式ではない!)を考えます。
$`\quad
\xymatrix{
{}
& {\displaystyle \prod_{x\in |\cat{C}| } P(x, x) }
\ar[dl]_{\pi^{a,a}} \ar[dr]^{\pi^{b, b}}
& {}
\\
P(a, a) \ar[dr]_{\RIGHT_f}
& {}
& P(b, b) \ar[dl]^{\LEFT_f}
\\
{}
& P(a, b)
& {}
}\\
\quad \In \mbf{Set}
`$
このひとつの図式に対してひとつの方程式を作ることができます。
$`\quad \pi^{a, a} ; \RIGHT_f = \pi^{b, b} ; \LEFT_f \On {\displaystyle \prod_{x\in |\cat{C}| } P(x, x) }`$
$`f`$ を動かしてやると、インデックス集合 $`\mrm{Mor}(\cat{C})`$ でインデックス付けられた連立方程式系になります。$`a = \mrm{dom}(f), b = \mrm{cod}(f)`$ に注意してください。
$`\quad \left( \pi^{a, a} ; \RIGHT_f = \pi^{b, b} ; \LEFT_f \On {\displaystyle \prod_{x\in |\cat{C}|} P(x, x)} \right)_{f \in \mrm{Mor}(\cat{C})}`$
連立方程式系があるので、その解空間を考えることができます。
$`\quad \left\langle \pi^{a, a} ; \RIGHT_f = \pi^{b, b} ; \LEFT_f \On {\displaystyle \prod_{x\in |\cat{C}|} P(x, x) }\right\rangle_{f \in \mrm{Mor}(\cat{C})}`$
これが $`P`$ のエンド〈end〉の定義です。
次に、自己プロ関手 $`P`$ のコエンドを定義するために、$`g:b \to a\In \cat{C}`$ ごとに次の図式(可換図式ではない!)を考えます。
$`\quad
\xymatrix {
{}
& P(a, b) \ar[dl]_{\CORIGHT^g} \ar[dr]^{\COLEFT^g}
& {}
\\
P(a, a) \ar[dr]_{\iota_{a, a} }
& {}
& P(b, b) \ar[dl]^{\iota_{b, b} }
\\
{}
& {\displaystyle \sum_{x\in |\cat{C}|} P(x, x) }
& {}
}\\
\quad \In \mbf{Set}
`$
このひとつの図式に対してひとつの関係(中置関係記号で書く)を作ることができます。
$`\text{For }g:b \to a \In \cat{C}\\
\text{For }p, q \in {\displaystyle \sum_{x\in |\cat{C}|} P(x, x) } \\
\quad p \sim_g q :\Leftrightarrow \exists t \in P(a,b).\, p = (\CORIGHT^g; \iota_{a, a})(t) \land q = (\COLEFT^g ; \iota_{b, b})(t)
`$
$`g`$ を動かしてやると、インデックス集合 $`\mrm{Mor}(\cat{C})`$ でインデックス付けられた関係族になります。$`b = \mrm{dom}(g), a = \mrm{cod}(g)`$ に注意してください。
$`\quad \left( \sim_g \On {\displaystyle \sum_{x\in |\cat{C}|} P(x, x)} \right)_{g \in \mrm{Mor}(\cat{C})}`$
関係族があるので、その同値閉包の商集合を考えることができます。
$`\quad \left[ \sim_g \On {\displaystyle \sum_{x\in |\cat{C}|} P(x, x)} \right]^{g \in \mrm{Mor}(\cat{C})}`$
これが $`P`$ のコエンド〈coend〉の定義です。
おわりに
エンド/コエンドの定義に出てくる概念・図式・手順を比べてみると、それぞれが双対になっているのが分かると思います。連立方程式系の解空間はイコライザーによっても定義可能だし、関係族の同値閉包の商集合はコイコライザーによっても定義可能です。イコライザー/コイコライザーによる定式化だとより双対性が鮮明です(具体性に欠けますが)。
エンド/コエンドのどちらか一方だけしか必要がない場面もありますが、せっかく双対概念なので、ふたつ一緒に理解しておくのがオススメです。
*1:実際には、大きな圏に対してエンド/コエンドを作るときもあります。