圏に関する初歩的な概念を小さな例で理解する ~ 関手と自然変換

近頃は圏論の勉強をしている。以前にも一度チャレンジしたことがあったが、そのときは表現可能関手とか米田の補題あたりでさっぱり分からなくなって諦めてしまった。今回はなんとか米田の補題まで理解できるように頑張りたい。

しかし、久々に勉強してみて思ったのが、基本中の基本である関手とか自然変換のあたりですでに難しいということである。以前はこのあたりの理解が甘いまま無理やり本を読み進めたことでギブアップしてしまったように思うので、今回は足元を固めながら進めたい。

そんなわけで、本稿では圏に関するいくつかの初歩的な概念を例を用いて考えてみたい。ただし、あれこれ詰め込み過ぎると記事のボリュームが大きくなり過ぎるので、本稿では関手と自然変換に関する概念をいくつかピックアップする。

例はある程度小さい方が本質を掴みやすいという持論があるので、本稿では圏の対象が有限個しかないような小さな例を取り上げることにする。

以下では圏と関手の定義については既知であるとする。

関手に関する概念

忠実な関手

まずは忠実な関手(faithful functor)について考える。定義をBasic Category TheoryのPDF版[1]から引用する(引用の都合上、あとで扱う充満な関手(full functor)の定義も含まれている)。

忠実な関手(faithful functor)、充満な関手(full functor)
A functor  F: \mathcal{A} \to \mathcal{B} is faithful (respectively, full) if for each  A, A′ \in \mathcal{A}, the function
 \displaystyle{
\begin{eqnarray}
\mathcal{A}(A,A′) &\to& \mathcal{B}(F(A),F(A′)) \\
f &\mapsto& F(f)
\end{eqnarray}
}
is injective (respectively, surjective).

ただし、 \mathcal{A}(A,A′) A \to A'という \mathcal{A}の射の集合を表す。厳密にはこの射の集まりが集合になるかどうかについては微妙な話があるが、ここでは集合であると考えておく。

忠実な関手の例を以下に示す。

忠実な関手の例

ここで、 \mathcal{A}, \mathcal{B}は圏、 Fは関手である。恒等射は圏の定義によりその存在が要請されるので、当然存在するだろうということで省略した。また、恒等射を Fで写した先の射も関手の定義により自動的に決まるため割愛した。上図の関係を式で書くと以下のようになる。

 \displaystyle{
\begin{eqnarray}
F(a) &=& b \\
F(a') &=& b' \\
F(f) &=& r
\end{eqnarray}
}

関手 Fが忠実であることを確かめてみる。まず、 \mathcal{A}から2つの対象を取り出す方法は4つある。すなわち、 (a, a), (a, a'), (a', a), (a', a')である。例えば (a, a')について考えると、 fという唯一の射が rという射に移されている。これは明らかに単射である。一方、 \mathcal{B}(b, b')には他にも sという射があるので全射ではない。他の対象の組についても同じように考えればよいが、詳細は割愛する。

結局、関手 Fは忠実だが充満ではないということが分かった。

充満な関手

続いて充満な関手(full functor)について考える。定義は先ほど述べた通りなので、さっそく例を以下に示す。

充満な関手の例

関手 Fが充満であることを確かめてみる。先ほどの例と同様に (a, a), (a, a'), (a', a), (a', a')という4つの対象の組について順番に考えていけばよい。例えば (a, a')について考えると、 f, gという射がいずれも rという射に移されている。これは明らかに全射である。一方、相異なる2つの射 f, gが同じ射に移されているため単射ではない。他の対象の組についても同じように考えればよいが、詳細は割愛する。

結局、関手 Fは充満だが忠実ではないということが分かった。

忠実充満な関手は圏の間の同型を定めるか?

私が初めて忠実とか充満という概念に触れたとき、てっきりこれは集合間の写像における全射とか単射と同じような性質を持つものなのかと思った。つまり、ある2つの圏の間に忠実かつ充満な関手(つまり忠実充満な関手)があれば、両者の間には何かしら同型っぽい関係が成り立つのではないかと考えた。

しかし、これは誤解である。例えば先ほどの充満な関手の例として示した図を見て欲しい。圏 \mathcal{B}には先ほどの話に全く登場しない b''という対象が存在した。忠実とか充満の定義では関手の domain となる圏(先ほどの例の場合は \mathcal{A})から対象を2つ選んで固定した場合の話しかしておらず、関手の codomain となる圏(先ほどの例の場合は \mathcal{B})がどうなっているかという情報が不足している。そのため、忠実充満な関手があるからと言って、2つの圏の間に同型のような対応関係があるとは言えないのである。

なお、ある2つの圏が本質的に同じもであると見なす際には圏同値という概念を用いるのが普通である。これについては本稿では書き切れないので、気が向いたらまた記事を書きたいと思う。

本質的全射

ここまでに紹介した2つの概念とはやや毛色が異なるが大事な概念として本質的全射がある。定義を本[1]より引用する。

本質的全射(essentially surjective)
A functor  F: A \to B is essentially surjective on objects if for all  B \in \mathcal{B}, there exists  A \in \mathcal{A} such that  F(A) \cong B.

本質的全射の例を以下に示す。

本質的全射の例

この図は先ほど充満な関手の例で出した図に sの逆射 s^{-1}を追加しただけである。これによって Fは本質的全射になる。具体的には、 \mathcal{B}の各対象に対してそれぞれ以下のような同型が成り立つ。

 \displaystyle{
\begin{eqnarray}
F(a) &\cong& b \\
F(a') &\cong& b' \cong b''
\end{eqnarray}
}

本質的全射のポイントは、関手を圏の対象に対する写像として見たときに全射にはなっていないことである。 \mathcal{B}の全ての対象に対して F(A) = Bとなるような A \in \mathcal{A}が存在する必要はなく、あくまで F(A) \cong Bであればよい。これは同型による差を無視することで全射と見なせるため"本質的"全射という名前なのだろう。

自然変換に関する概念

ある2つの関手 F, G: \mathcal{A} \to \mathcal{B}があったとき、この2つの関手の間の射のようなものを考えることができる。それが自然変換である。自然変換の定義を本[1]から引用する。

自然変換(natural transformation)
Let  \mathcal{A} and  \mathcal{B} be categories and let  \mathcal{A} \overset{F}{\underset{G}{\rightrightarrows}} \mathcal{B} be functors. A natural transformation  \alpha: F \to G is a family  \left(F(A) \xrightarrow{\alpha_A} G(A) \right)_{A \in \mathcal{A}} of maps in  \mathcal{B} such that for every map  A \xrightarrow{f} A′ in  \mathcal{A}, the square
 \displaystyle{
\require{AMScd}
\begin{CD}
F(A)  @>F(f)>>  F(A') \\
@V\alpha_AVV                     @VV\alpha_{A'}V \\
G(A)         @>>G(f)>  G(A')
\end{CD}
}
commutes. The maps  \alpha_A are called the components of  \alpha.

これにより、対象が圏 \mathcal{A}から \mathcal{B}への関手で射が自然変換であるような圏を考えることができる。これを関手圏(functor category)と呼び、 [\mathcal{A}, \mathcal{B}]と書く。

関手圏における同型は自然同型と呼ばれる。定義を本[1]より引用する。

自然同型(natural isomorphism)
Let  \mathcal{A} and  \mathcal{B} be categories. A natural isomorphism between functors from  \mathcal{A} to  \mathcal{B} is an isomorphism in  [\mathcal{A} , \mathcal{B}].

さらに、これには便利に使える以下のような同値な条件がある[1]。

自然同型と同値な条件
Let  F \overset{\alpha}{\Rightarrow} G be a natural transformation. Then  \alpha is a natural isomorphism if and only if  \alpha_A: F(A) → G(A) is an isomorphism for all  A \in \mathcal{A}.

ただし、本[1]の記号が特殊すぎてうまくはてなブログで記述できなかったため、一部記号を変更した。

自然変換が存在するが自然同型でない場合

私が初めて自然変換について勉強したとき、もうなんのこっちゃ分からんという状態になった。そんな過去の自分を救う気持ちで例を用いて考えてみる。以下のような2つの関手 F, G: \mathcal{A} \to \mathcal{B}があったとする。

自然変換の例

図で矢印がオレンジ色になっているところは単に F, Gで差がある部分を強調するためのものであり、オレンジだろうと水色だろうとどちらも関手の一部を表しているという点は変わらない。

それぞれの関手について式で表すと以下のようになる。

 \displaystyle{
\begin{eqnarray}
F(a) &=& b \\
F(a') &=& b' \\
F(f) &=& r \\
G(a) &=& b \\
G(a') &=& b'' \\
G(f) &=& s \circ r
\end{eqnarray}
}

このとき、自然変換 \alpha: F \Rightarrow Gが存在する。 \alphaの各成分を直接書き出すと以下のようになる。

 \displaystyle{
\begin{eqnarray}
\alpha_a &=& 1_b \\
\alpha_{a'} &=& s \\
\end{eqnarray}
}

これにより、例えば以下の可換図式が成り立つ。

 \displaystyle{
\require{AMScd}
\begin{CD}
F(a)  @>F(f)>>  F(a') \\
@V\alpha_aVV                     @VV\alpha_{a'}V \\
G(a)         @>>G(f)>  G(a')
\end{CD}
}

 \alpha_{a'}は同型射ではないので、 \alphaは自然同型ではない。

自然同型な場合

今度は以下のような例を考えてみよう。

自然同型の例

それぞれの関手について式で表すと以下のようになる。

 \displaystyle{
\begin{eqnarray}
F(a) &=& b \\
F(a') &=& b' \\
F(a'') &=& b' \\
F(f) &=& r \\
F(g) &=& 1_{b'} \\
G(a) &=& b \\
G(a') &=& b \\
G(a'') &=& b' \\
G(f) &=& 1_b \\
G(g) &=& r
\end{eqnarray}
}

このとき、自然変換 \alpha: F \Rightarrow Gが存在する。 \alphaの各成分を直接書き出すと以下のようになる。

 \displaystyle{
\begin{eqnarray}
\alpha_a &=& 1_b \\
\alpha_{a'} &=& r^{-1} \\
\alpha_{a''} &=& 1_{b'}
\end{eqnarray}
}

可換図式を (a, a'), (a, a''), (a', a'')それぞれについて書くと大変なのでやめておくが、それぞれについて以下の式が成り立つ。

 \displaystyle{
\begin{eqnarray}
\alpha_{a'} \circ F(f) &=& G(f) \circ \alpha_a \\
\alpha_{a''} \circ F(g) \circ F(f) &=& G(g) \circ G(f) \circ \alpha_a \\
\alpha_{a''} \circ F(g) &=& G(g) \circ \alpha_{a'}
\end{eqnarray}
}

ただし、関手の定義より F(g \circ f) = F(g) \circ F(f), G(g \circ f) = G(g) \circ G(f)であることを用いた。

 \alphaの成分はいずれも同型射なので \alphaは自然同型である。

まとめ

本稿では関手と自然変換に関する基本的な概念に対して小さな例を紹介した。本当はそれぞれについてもう何個か例を考えると理解が深まると思うのだが、そこはぜひご自身で考えてみて頂ければと思う。あるいは本[1]にも(もう少し難しいが)例が豊富に載っているので参照されたい。