ストリング図は,圏論のいくつかの概念を視覚的にわかりやすい形で表すための強力なツールとして知られています。圏論の基礎的な書籍では,ストリング図よりも可換図式が用いられていることが多いと思いますが,個人的には圏論の基礎を学ぶ際にもストリング図を用いたほうがわかりやすい場面が少なくないのではないかと考えています(人によるとは思いますが)。
そこで,ストリング図の威力とおもしろさを伝えられたらと思い,連載記事を書くことにしました。この連載では,圏論の初学者を主な対象とし,数学を専門としない人でもある程度理解しやすいように書きたいと思います。
初回である今回の記事では,圏の定義を説明しつつ,ストリング図を紹介します。また,圏の具体例をいくつか挙げます。なお,今回の記事ではストリング図が活躍する場面はあまりありませんが,今後の記事ではストリング図が威力を発揮する場面が増えると思います。
#1: 圏の定義と具体例(この記事)
#2:
関手と自然変換
#3:
垂直合成と水平合成
まず,圏の定義を示します。圏になじみがない読者にとってはこの定義は難しいと感じるかもしれません。しかし,この定義をすぐに完全に理解できなくても構いません。すぐ後で行う補足説明やその後で示す圏の具体例を読めば,理解が深まるのではないかと思います。
圏$\cC$とは「対象とよばれるもの」の集まりと「射とよばれるもの」の集まりから構成され,次の条件をすべて満たすものである。
以降では,ストリング図のことをしばしば単に図式とよぶことにします。
各射$f$を次の図式で表すことにします。
射$f$ $$\tag{1}\label{eq:f}$$
規則1は,射をこの図式のように表せることを主張していると考えるとわかりやすいかもしれません。
四角形のブロック$f$が$\cC$の射を表しており,その上下から伸びた2本の線$a,b$が$\cC$の対象を表しています。これらが圏$\cC$の射や対象であることを表すため,ブロックや線の左側の領域に色(ここでは黄色)を付け,さらにラベル「$\cC$」を付けています。なお,$f$を表すブロックの形は四角である必要はなく,丸などでも構いません。
ブロック$f$の上下からは線が1本ずつ伸びています。下側から伸びた線が$f$のドメイン$a$を表しており,上側から伸びた線が$f$のコドメイン$b$を表しています。規則1により各射$f$はドメイン$a$とコドメイン$b$を一つずつもつため,各射$f$に対して$a$と$b$が定まっています。
以降では,$\cC$の対象の集まりを$\ob \cC$と書き($\ob$はobjectの意味),$\cC$の射の集まりを$\mor \cC$と書きます($\mor$はmorphismの意味)。また,圏$\cC$の$a$から$b$への射全体の集まりを$\cC(a,b)$と書きます。射$f$のドメインを$\dom f$と書き,コドメインを$\cod f$と書きます。$a$が$\cC$の対象であることは$a \in \ob \cC$と表せますが,この代わりに$a \in \cC$と書くことがしばしばあります。$a$から$a$自身への射を,しばしば$a$上の射とよびます。
規則2は,2本の射$f$と$g$を任意に選んだとき,$f$のコドメイン(つまりブロック$f$の上側の線)と$g$のドメイン(つまりブロック$g$の下側の線)が等しいならば合成できるという規則です。図式では,合成は次に示すように「縦方向につなげる」ことで表されます。
射の合成$gf$
この式の左辺は2本の射$f$と$g$の合成を表しており,右辺は合成後の射$gf$を表していると解釈すると,わかりやすいかもしれません。この右辺が示すように,合成後の射$gf$のドメインは$a$であり,コドメインは$c$です。以降では,射$gf$のように述べた場合には,しばしば断りなく$f$と$g$が合成可能である(つまり$f$のコドメインと$g$のドメインが等しい)ことを仮定しているとします。
なお,この図式の右辺における黄色の領域では,ラベル$\cC$を省略しています。この図式のように,同じ圏は同じ色で表すものとし,重複するラベルは通常は省略します。
規則3では,結合律とよばれる条件について述べられています。結合律$h(gf)=(hg)f$は,次の図式で表されます。
結合律:$h(gf)=(hg)f$
この図式の破線は補助線を表しており,ここでは補助線内の合成を先に行うことを意味するものと思ってください。このため,左辺は$h(gf)$,右辺は$(hg)f$を表しています。
この規則により$h(gf) = (hg)f$が成り立つことが保証されていますので,$h(gf)$や$(hg)f$のことを$hgf$と書いても厳密性が損なわれることはありません。上のような図式においては,両辺から補助線を削除しても問題ないことを意味します。このため,しばしば$hgf$のように書いたり,上のような図式から補助線を削除したりすることにします。
規則4では,単位律とよばれる規則について述べられています。以降では,対象$a$の恒等射$1_a \colon a \to a$を次の図式で表すことにします。
恒等射$1_a$
このとき,単位律$1_b f = f = f 1_a$は次の図式で表されます。
単位律:$1_b f = f = f 1_a$
左側の等号は,$f$に$1_b$を合成したものが$f$に等しいことを表しています。同様に,右側の等号は,$f$に$1_a$を合成したものが$f$に等しいことを表しています。このため,直観的には,恒等射との合成は「何もしないこと」と同じであると解釈できます。上の図式においては,恒等射を表す破線を(単なる補助線とみなして)省略しても問題ないといえます。中央の式と比べて,左辺では線$b$が長くなっており,右辺では線$a$が長くなっていますが,線の長さの違いは無視できると解釈できます。
また,上の図式は,恒等射$1_a$を「対象$a$と本質的に同じようなもの」と捉えても問題ないことを暗示しています。実際,図式では,$1_a$と$a$をどちらも単なる線で表して普段はこれらを区別しません。各対象$a$を恒等射$1_a$のことだとみなすと,圏とは(射の合成が結合律と単位律を満たすような)射の集まりのことであるといえます。
圏の具体例は数多くありますが,ここではその一部のみを紹介します。これから示す例のうちわからないものがあれば無視しても構いません。
まず,対象が1個($*$とおきます)のみであるような圏について考えます。このような圏はモノイドとよばれます。モノイド$\cM$は,その対象は$*$しかありませんから,射の集まり($\bM$と表すことにします)のみから構成されているとみなせます。対象が$*$のみであることを考慮すると,モノイドの定義は次のように言い換えられます。
集合$\bM$が次の規則をすべて満たすとき,モノイドとよぶ。
(備考:規則(1)~(3)が定義1の規則(2)~(4)にそれぞれ対応している。)
なお,定義2における積は射の合成のことであり,単位元$1$は$*$の恒等射です。
モノイドの具体例をいくつか示します。
0以上の整数を自然数とよび,自然数全体から成る集合を$\Natural$とおきます。$\bM=\Natural$であるような(つまり$\Natural$の各要素を射とするような)モノイドが考えられます。ただし,射$f,g \in \bM$の合成は自然数の和$f+g$とします。0が単位元です。
念のため,この例が規則2~4を満たすことを確認しておきます。規則2(射の合成)を満たすことは,たとえば次式からわかります。
射の合成の例($+1$と$+2$の合成は$+3$)
ただし,わかりやすく表現するため,射(つまり自然数)$f$を表すブロックを「$+f$」のように表しています。より一般的には,任意の$f,g \in \bM$に対して$f+g \in \bM$が成り立ちます。なお,図式における線のラベル*は省略しています(モノイドは1個の対象しかもちませんので,線のラベルを省略しても問題ありません)。
規則3の結合律$h+(g+f) = (h + g) + f$を満たすことは,たとえば次式(を一般化したもの)から容易にわかります。
結合律の例
規則4の単位律$0+f = f = f+0$を満たすことは,たとえば次式(を一般化したもの)からわかります。
単位律の例
以降の例では規則2~4を満たすことの確認は省略しますが,いずれの例でもすぐに確かめられると思います。
群とよばれる構造は,モノイドの特別な場合です。具体的には,モノイドのうち,各射$f$に対して$f f^{-1} = 1 = f^{-1} f$(ただし$1$は単位元)を満たすような射$f^{-1}$(逆元とよばれます)が存在するようなものが群とよばれます。
1以上の整数$n$を固定したとき,$n$次正方行列を射とする,つまり$\bM$が$n$次正方行列全体であるようなモノイドが考えられます。射(つまり$n$次正方行列)$A,B \in \bM$の合成は行列としての積$BA$とします。$n$次単位行列が単位元です。なお,逆行列をもたないような$n$次正方行列が存在するため,このモノイドは群ではありません。
タスクを射とするモノイドが考えられます。ここで,タスクとは「朝食を食べる」や「歯を磨く」のような作業のことを表していると考えてください。射$f,g \in \bM$の合成$gf$は,タスク$f$を行った後でタスク$g$を行うという一連のタスクであるとします。たとえば,タスク「ドアの鍵をかける」とタスク「駅に出かける」の合成は,タスク「ドアの鍵をかけてから駅に出かける」です。「何もしない」が単位元です。(ただし,「何もしない」と任意のタスク$f$の合成はタスク$f$であり,タスク$f$と「何もしない」の合成もタスク$f$であるとします。)
次に,モノイドとは限らない(つまり対象が一般に複数個ある)ような圏の例を挙げます。
極端な例として,恒等射以外の射をもたない圏を考えます。このような圏は,離散圏とよばれます。離散圏では射は恒等射しかありませんので,対象の集まりが定まれば射の集まりは自動的に定まります。とくに,任意の集合$X$は,$X$の各要素$x$を対象$x$(および恒等射$1_x$)に対応付ければ離散圏とみなせます。
$1$以上の整数をいくつか集めた集合(たとえば$\cN \coloneqq \{1,2,4,8\}$)を対象の集まりとして,各$m,n \in \cN$に対して$m$行$n$列の行列(各成分は実数)を対象$n$から対象$m$への射とする圏($\mathbf{Mat}$とおきます)が考えられます。2本の射$A$と$B$の合成は,行列としての積$BA$とします。$n$次単位行列が$n$上の恒等射です。
射の合成の例を示します。
圏$\mathbf{Mat}$における射の合成の例($l \times m$行列$B$と$m \times n$行列$A$の積は$l \times m$行列$BA$)
いくつかの集合の集まり$\cX \coloneqq \{X_1,X_2,\dots,X_n\}$を対象の集まりとして,各対象$X_i,X_j$に対して$X_i$から$X_j$への写像を対象$X_i$から対象$X_j$への射とする圏が考えられます。射の合成は写像の合成とします。$X_i$上の恒等写像(つまり$X_i$の各要素をその要素自身に写す写像)が$X_i$上の恒等射です。
さらに具体的な例として,(素朴な)プログラムの圏とでもいえるような圏$\mathbf{Prog}$を考えます。この圏における射の合成の例を示します。
圏$\mathbf{Prog}$における射の合成の例
ここで,$\mathrm{Int}$(整数全体),$\mathrm{Bool} \coloneqq \{\mathrm{true},\mathrm{false}\}$,$\mathrm{String}$(文字列全体)は$\mathbf{Prog}$の対象とします。この圏の射は関数で,対象は関数の引数や戻り値の型だと解釈できます(ここでは,「プログラム」らしさを出すために,写像のことを「関数」とよんでいます)。射$f \colon \mathrm{Int} \to \mathrm{Bool}$の例としては,奇数を$\mathrm{true}$に写して偶数を$\mathrm{false}$に写すような写像が考えられます。また,射$g \colon \mathrm{Bool} \to \mathrm{String}$の例としては,$\mathrm{true}$を文字列"odd"に写して$\mathrm{false}$を文字列"even"に写すような写像が考えられます。このとき射$gf \colon \mathrm{Int} \to \mathrm{String}$は,奇数を"odd"に写して偶数を"even"に写すような写像です。
例2.3の特別な場合として,すべての集合の集まりを対象の集まりとして,集合$X$から集合$Y$への写像を対象$X$から対象$Y$への射とする圏が考えられます。この圏を集合の圏とよび$\Set$と書きます。射$f$と射$g$の合成は写像としての合成$g \c f$であり,恒等射は恒等写像です。
この圏$\Set$を利用して任意の集合の要素を図式で表す方法を導入しておきます。この連載では,1個の要素から成る集合(1点集合とよびます)の一つを代表して$\{*\}$と書くことにします。任意の集合$X$とその要素$x \in X$を考え,$x$に対応する次の写像を考えます。
$$
\tilde{x} \colon \{*\} \ni * \mapsto x \in X
$$
つまり,$\tilde{x}$は1点集合$\{*\}$の唯一の要素$*$を$X$の要素$x$に写すような写像です。この写像$\tilde{x}$は,明らかに$x$のみから一意に定まります。また,逆に$\tilde{x}$が与えられれば,$x$は$x = \tilde{x}(*)$と求まります。このため,$x$と$\tilde{x}$は本質的には同じものを表しているといえて,これらを同一視できます。以降ではこれらを同一視します。このとき,$x$(つまり$\tilde{x}$)は1点集合$\{*\}$から集合$X$への写像(つまり$\Set$の射)として,次の図式で表せます。
$x \in X$を写像$* \mapsto x$として表す
この図式のように,1点集合$\{*\}$をグレーの点線で表し,ラベル「$\{*\}$」はしばしば省略します。
任意の体$\K$について,$\K$上のすべてのベクトル空間の集まりを対象の集まりとして,ベクトル空間$\V$からベクトル空間$\W$への線形写像を対象$\V$から対象$\W$への射とする圏が考えられます。この圏をベクトル空間の圏とよび,$\VecK$と書きます。射$f$と射$g$の合成は写像としての合成$g \c f$であり,恒等射は恒等写像です。
また,圏$\VecK$と同様ですが,対象を有限次元ベクトル空間に限定した圏を有限次元ベクトル空間の圏とよび,$\FinVecK$と書きます。つまり,圏$\FinVecK$の対象は$\K$上の有限次元ベクトル空間で,射は線形写像で,射の合成は写像としての合成で,恒等射は恒等写像です。
すべてのモノイドの集まりを対象の集まりとして,モノイド$\cM$からモノイド$\cN$へのモノイド準同型とよばれる写像を対象$\cM$から対象$\cN$への射とする圏が考えられます。この圏をモノイドの圏とよび$\Mon$と書きます。射$f$と射$g$の合成は写像としての合成$g \c f$であり,恒等射は恒等写像です。
モノイド$\cM$がその任意の射$f,g$に対して$fg = gf$を満たすとき,可換であるとよびます。このとき,圏$\Mon$と同様ですが,対象を可換モノイドに限定した圏を可換モノイドの圏とよび$\CMon$と書きます。
自然数を対象とするような圏($\mathbf{Pos}$とおきます)を考えます。ただし,各対象$x,y \in \Natural$について,この圏$\mathbf{Pos}$の$x$から$y$への射は$x \le y$ならば1本のみ存在して,$x > y$ならば存在しないものとします。これにより,$x$から$y$への射が存在することは$x \le y$であることと同値です。各$a \in \Natural$に対して$a \le a$ですので恒等射$1_a$が存在します。
射の合成の例を示します。$a \le b \le c$を満たす任意の$a,b,c \in \Natural$に対して,次式が成り立ちます。
圏$\mathbf{Pos}$における射の合成の例
この式は,圏$\mathbf{Pos}$における射の合成を表しています。または,不等号$\le$が推移律(つまり$a \le b$かつ$b \le c$ならば$a \le c$であるという規則)を満たすことを表していると解釈できます。
圏論における基本的な概念である圏の定義を示し,対象や射を図式(ストリング図)で表す方法を紹介しました。圏はある規則を満たすような対象の集まりと射の集まりのことといえます。図式を用いると,圏が満たすべき規則を視覚的に理解できると思います。今後の連載では,このような図式を積極的に用いて,圏論の基礎的な概念をわかりやすく説明したいと思います。