bitterharvest’s diary

A Bitter Harvestは小説の題名。作者は豪州のPeter Yeldham。苦闘の末に勝ちえた偏見からの解放は命との引換になったという悲しい物語

随伴関手 - 随伴の定義

7.4 随伴の定義

数学で最も重要な概念はと問われた時、皆さんは何と答えるだろうか。私は、「等しい」だと思う。算数から数学へと教科の名前が変わり、少し大人になったと感じさせてくれた中学で、すぐに習ったのが三角形の合同であった。ある三角形を移動したり回転したりして、別の三角形にぴったりと重ね合わせることができるなら、二つの三角形は合同だというものだ。

大学になると「等しい」という概念をもう少し抽象的に学ぶようになる。それは「同型」だ。集合\(A,B\)が存在したときに、次の条件を満足する\(f: A \rightarrow B, g: B \rightarrow A\)が存在するとき、二つの集合は同型と言われる。その条件は、
\begin{eqnarray}
g \circ f=I_A \\
f \circ g=I_B
\end{eqnarray}
である。図で表すと次のようになる。なお、このような写像\(f,g\)を同型写像という。
f:id:bitterharvest:20180521112223p:plain

同型という概念は、合同という概念の上位概念となっているので、合同な二つの三角形はもちろん同型でもある。それでは、さらなる上位概念を圏においても定めたい。即ち、二つの圏が与えられた時に、これらが「等しい」といはどのようなことなのかを定めたい。

上の図は集合と関数から成り立っていたが、これらを対応する圏論の用語で置き換えると、集合のところは(局所的に小さな)圏\(\mathcal{C},\mathcal{D}\)となり、関数のところは関手\(R: \mathcal{C} \rightarrow \mathcal{D}, L: \mathcal{D} \rightarrow \mathcal{C}\)となる。
f:id:bitterharvest:20180521112303p:plain

条件は、そのまま置き換えると、
\begin{eqnarray}
L \circ R=I_\mathcal{C} \\
R \circ L=I_\mathcal{D}
\end{eqnarray}

ところで、上の条件は、左側の関手と右側の関手が等しいと言っている。圏論では、二つの関手が等しいという概念を別に用意している。自然同型(naturally isomorphic)だ。

下図を用いて自然変換(natural transoformation)を復習しておこう。
f:id:bitterharvest:20180521112327p:plain

\(\fbox {自然変換の定義:}\)
上の図で、関手\(F,G\)の自然変換\(\alpha\)とは、次の条件を満たすものである。
1) 自然変換\(\alpha\)は、全ての対象\(X \in \mathcal{C}\)に、\(\mathcal{D}\)の対象間での射\(\alpha_X:F(X) \rightarrow G(X)\)を対応させる。ここで、\(\alpha_X\)は自然変換\(\alpha\)の\(X\)での成分と呼ばれる。
2) 成分は全ての射\(f:X \rightarrow Y\)に対して、次を成り立たせる。
\begin{eqnarray}
\alpha_Y \circ F(f) = G(f) \circ \alpha_X
\end{eqnarray}
なお、ここでは、\(F,G\)が共に共変(covariant)である場合について定義したが、共に反変(contravariant)の時は、\(F(f),G(f)\)の矢印は反対になる。

次に、関手\(F,G\)が自然同型であるとは次のように定義される。なお、自然同型は、英語の方はいくつかの表現があり、先にあげたnaturally isomorphicのほかにnatural isomorphism, natural equivalence, isomorphism of functorsがある。

\(\fbox {自然同型の定義:}\)
全ての\(X \in \mathcal{C}\)の対象\(X\)に対して、射\(\alpha_X\)が\(\mathcal{D}\)において同型射(isomorphic)であるならば、\(\alpha\)は自然同型である。

ここで、同型射とは、同型写像と同じ意味である。即ち、\(\beta_X \circ \alpha_X = I_{F(X)}\), \(\alpha_X \circ \beta_X = I_{G(X)}\)となるような\(\beta_X: G(X) \rightarrow F(X)\)が存在することを言う。

そこで、等しいことの条件を緩めて、自然同型\(\simeq\)を用いると次のようになる。
\begin{eqnarray}
L \circ R \simeq I_\mathcal{C} \\
R \circ L \simeq I_\mathcal{D}
\end{eqnarray}

圏論の人々は、これでも条件がきつすぎると感じているので、さらに条件を次のように緩めている。そして、同型ではなく随伴(adjunction)と呼ぶ。定義は次のようになる。

\(\fbox {随伴の定義:}\)
二つの局所的に小さな圏\(\mathcal{C},\mathcal{D}\)において、関手の対\(R: \mathcal{C} \rightarrow \mathcal{D}, L: \mathcal{D} \rightarrow \mathcal{C}\)が次の条件を満たす時、随伴であるという。また、\(L,R\)のそれぞれを左随伴関手、右随伴関手という。また、\(L \circ R \)は圏\(\mathcal{C}\)での自己関手(endofunctor)、同様に\(R \circ L \)は圏\(\mathcal{D}\)での自己関手となっていることにも注意を払っておく必要がある。条件は

\begin{eqnarray}
\xi : L \circ R \rightarrow I_\mathcal{C} \\
\mu : I_\mathcal{D} \rightarrow R \circ L
\end{eqnarray}
が存在することである。

なお、\(\xi,\mu\)はそれぞれ\(counit,unit\)という関数名でも呼ばれる。Haskellではこれらの関数は別の名前で呼ばれている。即ち、\(counit\)はコモナド(comonad)での関数\(extract\)として、\(unit\)はモナド(monad)での関数\(return\)として使われる。