圏論的概念は、可換図式やペースティング図を使って定義や記述がされます。テキスト構文で書けないわけではないですが、矢鱈に煩雑になります。現実的には、図式なしではやっていけません。
この記事では、図式による定義を、明確かつ簡潔に書くためのフォーマットについて述べます。2つの事例を使って説明します。$`\newcommand{\cat}[1]{\mathcal{#1}}
\newcommand{\mrm}[1]{\mathrm{#1}}
\newcommand{\mbf}[1]{\mathbf{#1}}
%\newcommand{\twoto}{\Rightarrow }
%\newcommand{\op}{\mathrm{op} }
\newcommand{\inv}{\triangleleft }
\newcommand{\In}{\text{ in }}
\newcommand{\id}{\mathrm{id}}
%\newcommand{\u}[1]{\underline{#1}}
%\newcommand{\o}[1]{\overline{#1}}
\newcommand{\hyp}{ \text{-} }
%\newcommand{\Iff}{ \Leftrightarrow }
\newcommand{\Imp}{ \Rightarrow }
\newcommand{\parto}{\supset\!\to}
%
\newcommand{T}[1]{\text{#1}}
\require{color} % Using
\newcommand{\orange}[1]{ \textcolor{orange}{#1} }
\newcommand{\ora}[1]{ \textcolor{orange}{#1} }
\newcommand{\Keyword}[1]{ \textcolor{green}{\text{#1}} }%
\newcommand{\For}{\Keyword{For } }%
\newcommand{\When}{\Keyword{When } }%
\newcommand{\Subject}{\Keyword{Subject } }%
\newcommand{\Predicate}{\Keyword{Predicate } }%
\newcommand{\With}{\Keyword{With } }%
\newcommand{\Means}{\Keyword{Means } }%
`$
内容:
大枠の構文
以下のような日本語を考えます。
‥[パラメータ]‥ に対して、‥[主語]‥ が ‥[述語]‥ であるとは、‥‥
この日本語を次の構文で書くことにします。
$`\For param\: \Subject subj\: \Predicate pred\: \Means \cdots`$
可読性のために、空白や改行を挿入するのは自由です。主語〈subject〉には可能なら色を付けます。例えば次のように。
$`\For param\\
\Subject \\
\quad \ora{subj}\\
\Predicate pred\\
\Means\\
\quad \cdots
`$
具体例を挙げましょう。
$`\Subject \orange{n} \in \mbf{N}\\
\Predicate \T{は偶数}\\
\Means\\
\quad \exists k\in \mbf{N}.\, \orange{n} = 2 \times k
`$
これは、「$`n`$ は偶数 (ただし $`n`$ は自然数)」という文の意味を定義したものです。
パラメータを持つ例も:
$`\For a, b\in \mbf{N}\\
\Subject \orange{n} \in \mbf{N}\\
\Predicate \T{は }a, b \T{ の公約数}\\
\Means\\
\quad \exists k, l\in \mbf{N}.\, a = \orange{n}\times k \land b = \orange{n}\times l
`$
述語内に出現するパラメータは、常識的に補完できるので省略してもかまいません。
$`\For a, b\in \mbf{N}\\
\Subject \orange{n} \in \mbf{N}\\
\Predicate \T{は公約数}\\
\Means\\
\quad \exists k, l\in \mbf{N}.\, a = \orange{n}\times k \land b = \orange{n}\times l
`$
これは、「$`n`$ は $`a`$ と $`b`$ の公約数 (ただし $`a, b, n`$ は自然数)」という文の意味を定義したものです。
定義した述語は、それより後の定義で使ってかまいません。
$`\Subject \orange{n, m} \in \mbf{N}\\
\Predicate \T{は互いに素}\\
\Means\\
\quad \forall k\in \mbf{N}.\, (k\T{ は }\orange{n, m} \T{ の公約数} ) \Imp k = 1
`$
これはもちろん、「$`n`$ と $`m`$ は互いに素 (ただし $`n, m`$ は自然数)」という文の意味を定義したものです。
直積を定義する
圏論的概念を定義する具体例を挙げます。直積〈direct product〉を定義しましょう。
$`\For A, B\In \cat{C}\\
\Subject\\
\quad \xymatrix{
\orange{A}
&\orange{P} \ar@[orange][l]_{\orange{\pi_1} } \ar@[orange][r]^{\orange{\pi_2}}
&\orange{B}
} \In \cat{C}\\
\Predicate \text{は }A, B\T{ の直積}\\
\Means\\
\quad \xymatrix{
{}
&{X} \ar[dl]_f \ar[dr]^g \ar[d]^{!\, h}
&{}
\\
\orange{A}
&\orange{P} \ar@[orange][l]^{\orange{\pi_1} } \ar@[orange][r]_{\orange{\pi_2}}
&\orange{B}
}\\
\quad \text{commutative }\In \cat{C}
`$
いくつか注意事項を述べます。
主語〈subject〉は $`P`$ のような気がしますが、対象 $`P`$ だけがポツンと居ても直積としての役割を果たせないので、第一射影 $`\pi_1`$ と第二射影 $`\pi_2`$ も含めた構造全体を主語にしています。圏論の言葉で言えば、極限対象($`P`$ だけ)に注目するか、極限錐($`P`$ と $`P`$ から出る射達)に注目するかの違いがあります。もちろん、極限対象である $`P`$ に注目して、$`P`$ を主語にした定義をしてもかまいません(次節に関連した話題あり)。
定義の本体部に出てくる $`X, f, g`$ などの文字〈名前 | 変数〉は何も言われなくても全称限量子で束縛されているとします。つまり、暗黙に次のような限量子がかかっています。
$`\forall X \in |\cat{C}|.\\
\forall f \in \cat{C}(X, {A}).\\
\forall g \in \cat{C}(X, {B}).\\
\quad \cdots
`$
感嘆符が前置してある文字〈名前 | 変数〉は、一意存在限量子で束縛されているとします。つまり次のような限量子達を仮定します。
$`\forall X \in |\cat{C}|.\\
\forall f \in \cat{C}(X, {A}).\\
\forall g \in \cat{C}(X, {B}).\\
\exists! h \in \cat{C}(X, {P}).\\
\quad \cdots
`$
$`\T{commutative}`$ は可換図式であることを示すので、図式内の多角形はすべて可換です。今の場合は、左の三角形と右の三角形が可換です。このことを等式で表わすと次のようです。
$`\quad h; {\pi_1} = f\\
\quad h; {\pi_2} = g
`$
直積の定義の本体部をすべてテキスト数式で書くなら次のようです。
$`\forall X \in |\cat{C}|.\\
\forall f \in \cat{C}(X, {A}).\\
\forall g \in \cat{C}(X, {B}).\\
\exists! h \in \cat{C}(X, {P}).\\
\quad h; {\pi_1} = f\\
\quad h; {\pi_2} = g
`$
これだと、すぐにはイメージが湧きにくいですよね。それで結局、図式を描いたりします。
イコライザーを定義する
次の例はイコライザー〈equalizer | 等化子〉です。イコライザーになると、直積よりだいぶ面倒になります。幾つか準備をします。
図式全体が可換になるとは限らず、図式のなかに可換多角形と可換ではない多辺形が混じることがあります。そのときは、図式だけでの表現は無理があるので等式を併用します。以下はその例です。
$`\quad \xymatrix{
{}
&{E} \ar[dl]_e \ar[dr]^{e'}
&{}
\\
{A} \ar@/^/[rr]^f \ar@/_/[rr]_g
&{}
&{B}
}\\
\quad e;f = e'\\
\quad e;g = e'\\
\quad \In\cat{C}
`$
これは、以下のように書いても同じです。レイアウトが変わると違ったように見えるかも知れませんが、同じです。
$`\quad \xymatrix{
{E} \ar[r]^e \ar@/^1.5pc/[rr]^{e;f} \ar@/_1.5pc/[rr]_{e;g}
&{A} \ar@/^/[r]|f \ar@/_/[r]|g
&{B}
}\\
\quad e;f = e;g\\
\quad \In\cat{C}
`$
そもそも2次元に描くのが無理があって、工事現場の三角コーンとかパーティ用とんがり帽子を思い浮かべるといいでしょう。
次に、主語〈subject〉の選択の問題があります。前節でも、「$`P`$ だけを主語にする定義もアリ」と述べましたが、主語の選択はバリエーションがあります。今回は、イコライザーの極限錐全体を主語にしないで、極限錐の一部を主語にします。しかし、そうすると、定義の記述がやりにくくなります*1。そこで、主語を含む補助的図式も一緒に考えます。次のように書くことにします。
$`\For
\xymatrix{
A\ar@/^/[r]^f \ar@/_/[r]_g
&B
}\In \cat{C}\\
\Subject
\xymatrix{
\ora{E} \ar@[orange][r]^{\ora{e}}
&\ora{A}
}\\
\With\\
\quad \xymatrix{
{}
&{\ora{E}} \ar@[orange][dl]_{\ora{e}} \ar[dr]^{e'}
&{}
\\
{\ora{A}} \ar@/^/[rr]^f \ar@/_/[rr]_g
&{}
&{B}
}\\
\quad \ora{e};f = {e'}\\
\quad \ora{e};g = {e'}\\
\quad \In\cat{C}
`$
この場合、注目している主語は $`E\overset{e}{\to}A`$ ですが、主語に付属する周辺の構造も一緒に考えます。“拡大された主語”と言えます。
定義の本体が「‥‥ ならば ‥‥」という含意命題〈条件付き命題〉になることがあります。そのときは、論理記号の $`\Imp`$ を使います。
では、イコライザーの定義を書き下してみましょう。
$`\For
\xymatrix{
A\ar@/^/[r]^f \ar@/_/[r]_g
&B
}\In \cat{C}\\
\Subject
\xymatrix{
\ora{E} \ar@[orange][r]^{\ora{e}}
&\ora{A}
}\\
\With\\
\quad \xymatrix{
{}
&{\ora{E}} \ar@[orange][dl]_{\ora{e}} \ar[dr]^{e'}
&{}
\\
{\ora{A}} \ar@/^/[rr]^f \ar@/_/[rr]_g
&{}
&{B}
}\\
\quad \ora{e};f = {e'}\\
\quad \ora{e};g = {e'}\\
\quad \In\cat{C}\\
\Predicate \T{はイコライザー}\\
\Means\\
\quad \xymatrix{
{}
&{X} \ar[dl]_{d} \ar[dr]^{d'}
&{}
\\
{A} \ar@/^/[rr]^f \ar@/_/[rr]_g
&{}
&{B}
}\\
\quad d;f = d'\\
\quad d;g = d'\\
\quad \In\cat{C}\\
\Imp\\
\quad \xymatrix{
X \ar[dd]_{d} \ar[ddrr]^{d'} \ar@/^/[drr]^{!\,h}
&{}
&{}
\\
{}
&{}
&{\ora{E}} \ar@[orange][dll]_{\ora{e}} \ar[d]^{e'}
\\
{\ora{A}} \ar@/^/[rr]^f \ar@/_/[rr]_g
&{}
&{B}
}\\
\quad h;\ora{e} = d\\
\quad h;{e'} = d'
`$
これは全体として、「$`f, g:A\to B`$ に対して、$`e:E\to A`$ がイコライザーである」とはどういう意味か? を定義しています。定義の本体部分は含意命題〈条件付き命題〉になっています。定義の本体部分で初めて出てくる文字〈名前 | 変数〉は全称限量子で暗黙に束縛されるので、次のような全称限量子が先頭にあります。
$`\forall X\in |\cat{C}|.\\
\forall d\in \cat{C}(X, A).\\
\forall d'\in \cat{C}(X, B).
`$
感嘆符が付いた文字〈名前 | 変数〉は一意存在の限量子が付く約束だったので、次の一意存在限量子が使われます。
$`\exists! h\in \cat{C}(X, E).`$
残りは等式なので、全体をテキストの論理式で書き下すと以下のようになります。
$`\forall X\in |\cat{C}|.\\
\forall d\in \cat{C}(X, A).\\
\forall d'\in \cat{C}(X, B).\\
\quad d;f = d' \land d;g = d'\\
\quad \Imp\\
\quad \exists! h\in \cat{C}(X, E).\\
\qquad h;e = d \land h;e' = d'
`$
イコライザーを極限として考えれば、$`f, g:A\to B`$ を底面とする錐の圏の終対象がイコライザーだと言っていることになります(「圏論の極限を具体的に」参照)。
おわりに
今回は直積とイコライザーの定義を紹介しました。もっとたくさんの事例を実際に書き下すことにより、図式を使った定義・記述の一般的ルールやコツがハッキリしてくると思います。機会があれば、圏論の概念を図式で定義・記述する具体例をまた載せます。
*1:「錐の圏の終対象だ」と定義したいので、主語が錐のほうが都合がいいのです。