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

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

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

参照用 記事

落第厳密モノイド圏

「落第」の意味は、例えば、なんかの資格を取ろうと試験を受けたが落ちて資格を取れなかった、とそんな感じです。落第厳密モノイド圏は、厳密モノイド圏になりたかったけど、公理を満たし切れずになれなかった圏です。

実は、パッと見厳密モノイド圏っぽい落第モノイド圏に出会い、厳密モノイド圏と勘違いしてしまいました。厳密モノイド圏にはなれない圏であっても、モノイド積もどきは有意義な演算で、モノイド圏以外の構造(豊穣圏や二重圏の構造など)を持つケースもあります。落第したからダメな奴ってわけでもないのです。$`\newcommand{\In}{\text{ in }}
\newcommand{\cat}[1]{\mathcal{#1} }
\newcommand{\mrm}[1]{\mathrm{#1}}
\newcommand{\lis}[1]{\boldsymbol{#1}}
\newcommand{\conc}{\mathop{\#} }
\newcommand{\id}{\mathrm{id}}
\newcommand{\Iff}{\Leftrightarrow}
\require{color}
\newcommand{\Keyword}[1]{ \textcolor{green}{\text{#1}} }%
\newcommand{\For}{\Keyword{For } }%
%\newcommand{\Let}{\Keyword{Let } }%
\newcommand{\Declare}{\Keyword{Declare } }%
\newcommand{\Define}{\Keyword{Define } }%
\newcommand{\Where}{\Keyword{Where } }%
%`$

内容:

及第の厳密モノイド圏

最初に、落第ではなくてちゃんとした(及第の)厳密モノイド圏の例を紹介します。テンソルの圏です。「テンソル」はとんでもない多義語ですが、ここでのテンソルは行列の多次元版のことです。テンソルの圏を考える場合、先に係数域を決めますが、ここでは係数域を実数体 $`{\bf R}`$ に固定して「実数係数の」は省略します。

テンソルの圏を $`{\bf Tens}`$ として、その対象(の集合)は次のように定義します。

$`\Define |{\bf Tens}| := \mrm{List}({\bf N}_{\ge 1})`$

ここで、$`{\bf N}_{\ge 1}`$ は正の自然数の集合*1です。したがって、テンソルの圏の対象は正自然数のリストです。正自然数のリストは $`\lis{n}, \lis{m}`$ などの太字で記します。

テンソルの圏のホムセットは:

$`\For \lis{n}, \lis{m}\in |{\bf Tens} | \\
\Define {\bf Tens}(\lis{n}, \lis{m}) := \mrm{Map}(\prod(\bar{\lis{n}})\times \prod(\bar{\lis{m}}), {\bf R})`$

記号 $`\prod(\bar{\lis{n}})`$ の意味を説明します。まず、自然数 $`n\in {\bf N}`$ に対して、

$`\quad \bar{0} := \{\}\\
\quad \bar{1} := \{1\}\\
\quad \bar{2} := \{1, 2\}\\
\quad \bar{n} := \{1, 2, \cdots , n\}`$

正自然数のリスト $`\lis{n} = (n_1, n_2\cdots, n_k) \in \mrm{List}({\bf N}_{\ge 1})`$ に対しては、

$`\quad \bar{()} := ()\\
\quad \overline{(n)} := (\bar{n})\\
\quad \overline{(n_1, n_2)} := (\bar{n_1}, \bar{n_2})\\
\quad \overline{(n_1, n_2, \cdots, n_k)} := (\bar{n_1}, \bar{n_2}, \cdots, \bar{n_k})`$

例えば、

$`\quad \overline{(2, 3)} = (\bar{2}, \bar{3}) = (\{1, 2\}, \{1, 2, 3\})`$

さらに、一般に集合のリスト $`\lis{A} = (A_1, A_2, \cdots, A_k)`$ に対して*2

$`\quad \prod( () ) := {\bf 1} = \{*\} = \{()\}\\
\quad \prod( (A) ) := A\\
\quad \prod( (A_1,A_2) ) := A_1 \times A_2\\
\quad \prod( (A_1,A_2, \cdots, A_k) ) := A_1 \times A_2 \times \cdots, \times A_k
`$

例えば、

$`\quad \prod( \overline{(2, 3)} )\\
= \prod( (\bar{2}, \bar{3}) )\\
= \prod( (\{1, 2\}, \{1, 2, 3\}) )\\
= \{1, 2\} \times \{1, 2, 3\}\\
= \{(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3)\}
`$

次の書き方はみな同じ意味です。

  1. $`f:\lis{n} \to \lis{m} \In {\bf Tens}`$
  2. $`f \in {\bf Tens}(\lis{n}, \lis{m})`$
  3. $`f \in \mrm{Map}(\prod(\bar{\lis{n}})\times \prod(\bar{\lis{m}}), {\bf R})`$

$`f:\lis{n} \to \lis{m} \In {\bf Tens}`$ の成分表示(ラムダ記法使用)は次のように書きます。

$`\quad f \\
= \lambda\, (x, y)\in \prod(\bar{\lis{n}})\times \prod(\bar{\lis{m}}).\,f(y \mid x) \\
= (f(y \mid x) )_{y\in \prod(\bar{\lis{m}}),\, x\in \prod(\bar{\lis{n}})}
`$

$`x`$ と $`y`$ が逆順なのは習慣によります(嬉しい習慣じゃないけど)。成分表示がどうも見にくいと感じる人は「ストリング図と相性が良いテンソル計算 1/2」の記法に書き換えると視認性・可読性が向上します。

テンソルの結合とテンソル積は次のように定義します。

$`\For f:\lis{n} \to \lis{m}, g:\lis{m} \to \lis{l}\In {\bf Tens}\\
\Define g\circ f := \\
\quad \lambda\, (x, z)\in \prod(\bar{\lis{n}})\times \prod(\bar{\lis{l}}).\,
\sum_{y\in \prod(\bar{\lis{m}})} g(z \mid y) f(y \mid x) \\
\:\\
\For f:\lis{n} \to \lis{m}, h:\lis{p} \to \lis{q}\In {\bf Tens}\\
\Define f\otimes h := \\
\quad \lambda\, (x\conc s, y\conc t)\in \prod(\bar{\lis{n}}\conc \bar{\lis{p}} )\times \prod( \bar{\lis{m}}\conc \bar{\lis{q}} ).\,
f(y \mid x) h(t \mid s)
%`$

ここで、$`\conc`$ はリストの連接演算です。リストの連接を空白で書くなどして、できるだけスッキリ書けば:

$`\quad (g\circ f)(z \mid x) := \sum_{y} g(z \mid y) f(y \mid x)\\
\quad (f\otimes h)(y\, t \mid x\, s) := f(y \mid x) g(t \mid s)`$

左右の行ったり来たり*3がストレスになる人は「ストリング図と相性が良いテンソル計算 1/2」の記法で書いてみてください。書く手間は増えますがストレスは減ります。

恒等テンソルは次のように定義します。

$`\For \lis{n} \in |{\bf Tens}|\\
\Define \id_\lis{n} := \lambda\, (x, x')\in \prod(\bar{\lis{n}})\times \prod(\bar{\lis{n}}).\, \delta(x, x')
`$

ここで、$`\delta`$ は任意の集合上に一般化したクロネッカーのデルタで、2つの引数が一致するならは 1 、そうでないなら 0 を返す関数です。

厳密モノイド圏

前節で定義した $`{\bf Tens}`$ は厳密モノイド圏〈strict monoidal category〉になります。この節で、厳密モノイド圏って何か? に答えます。厳密モノイド圏は、一般のモノイド圏に(モノイド積の)厳密性の条件を追加したものとして定義できますが、一般のモノイド圏に言及しない定義のほうが分かりやすいと思います。なのでここでは、一般のモノイド圏は出さずにモノイド概念だけに基づく厳密モノイド圏の定義をします。

圏の定義は既知だとして、$`\cat{C}`$ は圏だとします。圏の結合は $`;`$ または $`\circ`$ で書き、圏の恒等射は $`\id`$ と書くことにします(普通の記法です)。圏 $`\cat{C}`$ に厳密モノイド構造があるとはどういうことか -- 順に説明します。

まず、圏 $`\cat{C}`$ の対象の集合、射の集合上に、それぞれモノイド構造が載ります。

  • $`(\conc):|\cat{C}|\times |\cat{C}| \to |\cat{C}|,\, I\in |\cat{C}|`$ があり、$`(|\cat{C}|, \conc, I)`$ はモノイドになる。
  • $`(\otimes):\mrm{Mor}(\cat{C})\times \mrm{Mor}(\cat{C}) \to \mrm{Mor}(\cat{C}),\, \id_I \in \mrm{Mor}(\cat{C})`$ があり、$`(\mrm{Mor}(\cat{C}), \otimes, \id_I)`$ はモノイドになる。

モノイド二項演算の記号は前節と同じ記号を使ってますが、今はテンソルの圏に限らない一般論をしています。

$`\cat{C}`$ には複数の構造が同時に載っている状況になります。

  • $`\cat{C}`$ は圏の構造を持つ。
  • $`|\cat{C}|`$ はモノイドの構造を持つ。
  • $`\mrm{Mor}(\cat{C})`$ はモノイドの構造を持つ。

これらの構造がバラバラでは嬉しくありません。3つの構造が互いに“協調する”ことを要求します。「射の集合上のモノイド単位が、対象の集合上のモノイド単位の恒等である」ことは、協調のひとつになっています。他の協調条件には次があります。

  1. $`\mrm{dom}(f\otimes g) = \mrm{dom}(f) \conc \mrm{dom}(g)`$
  2. $`\mrm{cod}(f\otimes g) = \mrm{cod}(f) \conc \mrm{cod}(g)`$
  3. $`\id_{A} \otimes \id_{B} = \id_{A \conc B}`$

ここまでの条件を一言でいえば、$`\mrm{dom}, \mrm{doc}, \mrm{id}`$ がモノイド準同型写像になっている、ということです。

そして交替律〈interchange law〉と呼ばれる次の法則です。

$`\quad (f;g)\otimes(f';g') = (f\otimes f');(g\otimes g')`$

前節の圏 $`{\bf Tens}`$ は、厳密モノイド圏の条件をすべて満足します。つまり、リストの連接演算 $`\conc`$ とテンソルのテンソル積 $`\otimes`$ を一緒に考えたテンソルの圏は厳密モノイド圏になります。

ひとつ注意をしておくと; ほとんど場合、対象の集合上のモノイド二項演算子記号と射の集合上のモノイド二項演算子記号はオーバーロードします。テンソルの圏ならば、リストの連接演算も $`\otimes`$ で書くことになります。

[補足]
交替律は、圏の結合がモノイド準同型写像になっていることを表現しています。このことを確認するために、圏の結合を、

$`\quad \mrm{comp}:\mrm{Mor}(\cat{C})\times \mrm{Mor}(\cat{C}) \supseteq\!\to \mrm{Mor}(\cat{C})`$

と書きます。圏の結合は普通の写像〈全域写像〉ではなくて部分写像〈partial map〉であることに注意してください。

$`|\cat{C}|`$ のモノイド構造の単位を $`\mrm{unit}_0 := I`$ 、$`\mrm{Mor}(\cat{C})`$ のモノイド構造の単位を $`\mrm{unit}_1 := \id_I`$ と置き、さらに次のモノイド構造を考えます。

$`\quad (\mrm{Mor}(\cat{C})\times \mrm{Mor}(\cat{C}) , \bar{\otimes}, \mrm{unit}_2)`$

これは直積集合上のモノイド構造であり、

$`\quad (\bar{\otimes}) : (\mrm{Mor}(\cat{C})\times \mrm{Mor}(\cat{C}))\times (\mrm{Mor}(\cat{C})\times \mrm{Mor}(\cat{C})) \to \mrm{Mor}(\cat{C})\times \mrm{Mor}(\cat{C})\\
\quad \mrm{unit}_2 \in \mrm{Mor}(\cat{C})\times \mrm{Mor}(\cat{C})\\
\:\\
\quad (f, g)\bar{\otimes}(f', g') := (f\otimes f', g\otimes g')\\
\quad \mrm{unit}_2 := (\mrm{unit}_1, \mrm{unit}_1) = (\id_I, \id_I)
`$

圏の結合 $`\mrm{comp}`$ がモノイドの準同型写像であることは次のように書けます。

$`\quad \mrm{comp}( (f, g) \bar{\otimes} (f', g')) = \mrm{comp}( (f, g) ) \otimes \mrm{comp}( (f', g') )
\quad \mrm{comp}( \mrm{unit}_2 ) = \mrm{unit_1}
`$

二番目のモノイド単位の保存は次のことを意味します。

$`\quad \mrm{comp}( (\id_I, \id_I) ) = \id_I`$

これは恒等の性質から自動的に成立します。

一番目の、$`\mrm{comp}`$ によるモノイド積の保存を記法を変えて書けば交替律になります。
[/補足]

落第厳密モノイド圏とその例

圏 $`\cat{C}`$ の対象と射の集合上にそれぞれモノイド構造が載っていて、交替律を除いた厳密モノイド圏の条件を満たし、交替律は満たしてないとき、その圏を落第厳密モノイド圏〈dropout strict monoidal category〉と呼ぶことにします。この定義は、厳密モノイド圏の条件を弱めたものではなくて、明白に厳密モノイド圏ではない圏を定義しています -- 厳密モノイド圏の資格試験に落第しているのです。

落第厳密モノイド圏の実例を挙げます。

$`X`$ を2つ以上の要素を持つ集合として、次のような圏を $`\cat{C}`$ 考えます。$`{\bf Rel}`$ は関係圏です。

  • $`|\cat{C}| := \mrm{Pow}(X)`$
  • $`\cat{C}(A, B) := {\bf Rel}(A, B)`$
  • 結合と恒等射は関係圏のものをそのまま受け継ぐ。

$`\cat{C}`$ は $`{\bf Rel}`$ の充満部分圏となるので、圏の構造は明らかです。

$`|\cat{C}| = \mrm{Pow}(X)`$ には、集合の合併の演算によりモノイド構造を入れます。$`(\mrm{Pow}(X), \cup, \emptyset)`$ がモノイドになるのも明らかでしょう。

次に、$`\cat{C}`$ の射の集合 $`\mrm{Mor}(\cat{C})`$ にモノイド構造を入れます。$`\cat{C}`$ の射は集合なので、やはり集合の合併をモノイド演算にします。が、定義の細部はちょと面倒です。

$`\cat{C}`$ の射を、記号の乱用と3つ組を使って表現することにします。

$`\quad f = (f, A, B)\\
\Where\\
\quad A, B \in \mrm{Pow}(X)\\
\quad f \subseteq A\times B
`$

射 $`(f, A, B)`$ があり、$`A\subseteq A \subseteq X', B\subseteq B' \subseteq X`$ が与えられたとき、$`f`$ の拡張 $`\hat{f} = (\hat{f}, A', B')`$ を次のように定義します。

$`\quad \hat{f} = f\\
\quad \hat{f} \subseteq A'\times B'
`$

つまり、$`\hat{f}`$ と $`f`$ は同じ集合ですが、それが含まれる親集合を大きくしています。集合単体としては同じですが、圏 $`\cat{C}`$ の射としては(親集合が異なれば)異なる射になります。

この記法を使って、射の合併を次のように定義します。

$`\For f = (f, A, B), g = (g, C, D)\\
\Define f\cup g := \hat{f} \cup \hat{g} \\
\quad = (\hat{f}, A\cup C, B\cup D) \cup(\hat{g}, A\cup C, B\cup D)\\
\quad = (\hat{f}\cup\hat{g}, A\cup C, B\cup D)
`$

この演算 $`\cup`$ により、$`(\mrm{Mor}(\cat{C}), \cup, \id_\emptyset)`$ はモノイドになります。

次は定義から明らかでしょう。

  • $`\mrm{dom}(f \cup g) = \mrm{dom}(f) \cup \mrm{dom}(g)`$
  • $`\mrm{cod}(f \cup g) = \mrm{cod}(f) \cup \mrm{cod}(g)`$
  • $`\id_{A \cup B} = \id_A \cup \id_B`$

したがって、圏 $`\cat{C}`$ は落第厳密モノイド圏の条件を満たしています。これで、交替律まで満たすと落第してない厳密モノイド圏です。実際に落第していることを次節で示します。

落第の理由

$`X = \{1, 2\}`$ として、この集合から前節の手順で $`\cat{C}`$ を作ります。$`\cat{C}(\{1, 2\}, \{1, 2\})`$ を考えましょう。このホムセットは、ブーリアン係数の2×2行列と同一視できます。以下、射を行列とみなします。

$`%
\quad f =
\begin{bmatrix}0 & 0\\ 1 & 0\end{bmatrix}\\
\quad g =
\begin{bmatrix}0 & 1\\ 0 & 0\end{bmatrix}\\
%
\quad f' =
\begin{bmatrix}0 & 1\\ 0 & 1\end{bmatrix}\\
\quad g' =
\begin{bmatrix}0 & 0\\ 1 & 1\end{bmatrix}\\
%`$

この設定で、交替律の両辺を計算してみます。

$`%
\quad (f ; g)\cup (f' ; g') \\
= \left(\begin{bmatrix}0 & 0\\ 1 & 0\end{bmatrix} ; \begin{bmatrix}0 & 1\\ 0 & 0\end{bmatrix} \right) \cup
\left(\begin{bmatrix}0 & 1\\ 0 & 1\end{bmatrix} ; \begin{bmatrix}0 & 0\\ 1 & 1\end{bmatrix}\right)
\\
= \begin{bmatrix}0 & 1\\ 0 & 0\end{bmatrix}\begin{bmatrix}0 & 0\\ 1 & 0\end{bmatrix} + \begin{bmatrix}0 & 0\\ 1 & 1\end{bmatrix} \begin{bmatrix}0 & 1\\ 0 & 1\end{bmatrix}
\\
= \begin{bmatrix}1 & 0\\ 0 & 0\end{bmatrix} + \begin{bmatrix}0 & 0\\ 0 & 1\end{bmatrix}\\
= \begin{bmatrix}1 & 0\\ 0 & 1\end{bmatrix}
\\
%`$

$`%
\quad (f \cup f') ; (g \cup g') \\
= \left( \begin{bmatrix}0 & 0\\ 1 & 0\end{bmatrix} \cup \begin{bmatrix}0 & 1\\ 0 & 1\end{bmatrix}\right) ;
\left( \begin{bmatrix}0 & 1\\ 0 & 0\end{bmatrix} \cup \begin{bmatrix}0 & 0\\ 1 & 1\end{bmatrix}\right)\\
= \left( \begin{bmatrix}0 & 1\\ 0 & 0\end{bmatrix} + \begin{bmatrix}0 & 0\\ 1 & 1\end{bmatrix}\right) \left( \begin{bmatrix}0 & 0\\ 1 & 0\end{bmatrix} + \begin{bmatrix}0 & 1\\ 0 & 1\end{bmatrix}\right) \\
= \begin{bmatrix}0 & 1\\ 1 & 1\end{bmatrix} \begin{bmatrix}0 & 1\\ 1 & 1\end{bmatrix}\\
= \begin{bmatrix}1 & 1\\ 1 & 1\end{bmatrix}
%`$

というわけで、交替律は成立しません。

おわりに

前節で定義した落第厳密モノイド圏は厳密モノイド圏になり切れてないので、モノイド圏に対する技法を適用したりはできません。しかし、備えている演算は実用性が高いものです。モノイド圏になってなくても豊穣圏や二重圏の構造を持たせることができるので、実は豊かな構造を持つ圏なのです。

「あっ、交替律がダメだ」となっても捨てたものではありません。

*1:0 を入れてもかまわないのですが、あまりメリットはなく、0 を例外的に扱う手間が増えるので、ここでは 0 を除外します。

*2:単元集合の唯一の要素として空リストを選んでいるのは、計算を便利にするために重要な意味があります。

*3:左から右の書き順と、右から左の書き順が混じった表記法をバイダイレクショナルと言います。数式はバイダイレクショナルですが、込み入ったバイダイレクショナル記法は非常に読みにくくなります。