8.3 積としての随伴関手
\(\mathcal{C}\)は対象\(A,B\)を有する圏とする。\(A\)と\(B\)の積は、\(A \times B\)と書かれる\(\mathcal{C}\)の対象と二つの射\(fst : A \times B \rightarrow A \)および\(snd : A \times B \rightarrow B \)との組で、以下の普遍性を満たすものをいう。
積の普遍性:任意の対象\(X\)および射の対\(p:X \rightarrow A\)および\(q:X \rightarrow B\)が与えられた時、一意的な射\(h : X \rightarrow A \times B\)が存在する。
それでは、積を随伴関手で表すことを考えよう。
上図において、積を可換図式で表したのが左側で、積を随伴関手として表したのが右側である。左側と右側の対応関係を最初に示そう。
それでは、右側が随伴関手となっていることを見ていこう。右図で、元々あった圏\(\mathcal{C}\)を右側に書き、そこには、任意の射\(X\)と、\(A\)と\(B\)の積\(A \times B\)を書き、二つの対象に対する射を\(h:X \rightarrow A \times B\)とした。また、対の圏\(\mathcal{C} \times \mathcal{C} \)を左側に書き。そこには、対象\( < X,X > \)と対象\( < A,B > \)とを書き、これに対する射を\( < p,q > : < X,X > \rightarrow < A, B > \)とした。そして、\(\mathcal{C}\)から\(\mathcal{C} \times \mathcal{C} \)への関手を\(\Delta: Y \rightarrow < Y,Y > \)とした(\(\Delta\)は対角関手(diagonal functor)と呼ばれる)。また、\(\mathcal{C} \times \mathcal{C} \)から\(\mathcal{C}\)への関手を\(Product: < Y,Z > \rightarrow Y \times Z\)とした。
さて、右図が圏論での積となっているとき、即ち、\(h\)が一意的に定まっているとき、\(\Delta\)は左随伴関手であることを、\(Product\)は右随伴関手であることを示そう。
まず、\(h\)がどのような関数であるかを見ておこう。この関数は\(p,q\)が与えられると一意に決まる関数である。そこで、Haskellで次のような関数を定義してみよう。
factorizer :: (c -> a) -> (c -> b) -> (c -> (a,b)) factorizer p q = \x -> (p x, q x)
これより、
fst . factorizer p q = p snd factorizer p q = q
は明らかである。これより、
h = factorizer p q
を得る。さて、\(h\)が分かったところで、右図が随伴になるためには、
\begin{eqnarray}
ϵ &:& \Delta \circ Product \rightarrow I_{\mathcal{C} \times \mathcal{C} } \\
η &:& I_\mathcal{C} \rightarrow R \circ \Delta
\end{eqnarray}
となることと示せばよい。
1)自然変換\(ϵ\)が成り立つことの証明
最初に
\begin{eqnarray}
ϵ &:& \Delta \circ Product \rightarrow I_{\mathcal{C} \times \mathcal{C} }
\end{eqnarray}
を示そう。
右図を90度時計回りに回転すると次の図を得る。
\(ϵ\)は自然変換であるので、成分ごとに考えればよい。このため、\(A \times B\)と\(X\)について考えればよい。
最初に、\(A \times B\)について考えてみることとしよう。\(X\)を\(A \times B\)で置き換えると下図を得る。
このとき、\(h = id_{A \times B}\)である。これより、\( < p,q > = < fst,snd > \) で、
\begin{eqnarray}
fst (A \times B) &=& A \\
snd (A \times B) &=& B
\end{eqnarray}
である。これより、
\begin{eqnarray}
p (A \times B) &=& fst (A \times B) = A \\
q (A \times B) &=& snd (A \times B) = B
\end{eqnarray}
今得た関係を可換図式で示すと下図のようになる。
従って、
\begin{eqnarray}
η : I_\mathcal{C} \rightarrow R \circ \Delta
\end{eqnarray}
が成分\( < A \times B > \)については示すことができた。
次に成分\(X\)について考えてみよう。証明に用いる図は下図のようになる。
これも、\( A \times B \)の場合と同様に証明することができる。
2)自然変換\(η\)が成り立つことの証明
次に
\begin{eqnarray}
η &:& I_\mathcal{C} \rightarrow R \circ \Delta
\end{eqnarray}
を示そう。
\(η\)も自然変換であるので、成分ごとに考えればよい。このため、\(A \times B\)と\(X\)について考えればよい。
最初に、\(A \times B\)について考えてみることとしよう。\(X\)を\(A \times B\)で置き換えると下図を得る。
これは、先と同じように証明できる。
また、成分\(X\)についても同様に証明できる。
1)と2)の証明より、\(h\)が一意的に決まるとき、積を関手\(\Delta\)と関手\(Product\)を用いて下図のように表すことができ、
そして、
\begin{eqnarray}
\mathcal{C} \times \mathcal{C}( \Delta X , < A,B > ) \cong \mathcal{C}( X , A \times B )
\end{eqnarray}
となる。なお、\(\Delta X =< X,X > \)であり、\(Product < A,B > = A \times B\)である。これより、\(\Delta\)は左随伴関手で、\(Product\)は右随伴関手であるといえる。
逆に、\(\Delta\)は左随伴関手で、\(Product\)は右随伴関手である時、これは積を表しているということを証明しなければならないが、これについては\(h\)が一意に定まるため、自明である。
なお、圏\(\mathcal{C} \times \mathcal{C} \)は双関手\((,) \ A \ B\)により作られた圏である。