随伴
関手 F : X \rightarrow A、G : A \rightarrow X について、ある自然変換 \eta : 1_X \Rightarrow GF と \varepsilon : FG \Rightarrow 1_A が
\begin{align*}
\varepsilon F \circ F \eta = 1_F \\
G \varepsilon \circ \eta G = 1_G \\
\end{align*}
を満たすとき、
と表し、F は G の 左随伴(left adjoint) または G は F の 右随伴(right adjoint) であるといいます。
このとき、自然変換 \eta を単位元(unit)、\varepsilon を余単位元(counit)と呼びます。
随伴射
圏 X の対象 x と 圏 A の対象 a について、射 f : Fx \rightarrow a の右随伴射(right adjunct) \hat{f} : x \rightarrow Ga を
x \xrightarrow[]{\eta_x} GF x \xrightarrow[]{G f} Ga
つまり、
\hat{f} = Gf \circ \eta_x
と定めます。また、同様に射 g : x \rightarrow Ga の左随伴射(left adjunct) \bar{g} : F x \rightarrow a を
F x \xrightarrow[]{F g} FG a \xrightarrow[]{\varepsilon_a} a
つまり、
\bar{g} = \varepsilon_a \circ F g
と定めます。
例(単位元の随伴射)
随伴射が定まるためには、域に F が係る、もしくは余域に G が係れば十分です。たとえば、単位元 \eta の x 成分 \eta_x : x \rightarrow GF x を考えましょう。余域に G が係っているため、左随伴射
\bar{\eta}_x : F x \rightarrow F x
が定まります。定義に当てはめると、
\begin{align*}
\bar{\eta}_x &= \varepsilon_{Fx} \circ F \eta_x \\
&= (\varepsilon F \circ F \eta)_x \\
&= (1_F)_x \\
&= 1_{Fx}
\end{align*}
となります。つまり、\bar{\eta}_x = 1_{Fx} です。同様に \hat{\varepsilon}_a = 1_{Ga} も成り立ちます。
例(右随伴射の左随伴射)
f : F x \rightarrow a の右随伴射を g : x \rightarrow G a とします。つまり、g = \hat{f} です。g の余域には G が係っているため、左随伴射
\bar{g} : F x \rightarrow a
が定まります。定義に当てはめると、
\begin{align*}
\bar{g} &= \varepsilon_{a} \circ F g \\
&= \varepsilon_{a} \circ F (Gf \circ \eta_x) \\
&= \varepsilon_{a} \circ F (Gf \circ \eta_x) \\
&= \varepsilon_{a} \circ FGf \circ G\eta_x
\end{align*}
となります。ここで \varepsilon_{x} \circ FGf に注目します。図式で表すと、
FGF x \xrightarrow[]{FG f} FG a \xrightarrow[]{\varepsilon_a} a
です。一方で \varepsilon は 自然変換であるため図式
\begin{CD}
FGF x @>FG f>> FG a \\
@V \varepsilon_{Fx} VV @VV \varepsilon_a V \\
Fx @>>f> a
\end{CD}
が可換になります。つまり、
\varepsilon_{x} \circ FGf = f \circ \varepsilon_{Fx}
が成り立ちます。そのため、\bar{g} は
\begin{align*}
\bar{g} &= \varepsilon_{a} \circ FGf \circ G\eta_x \\
&= f \circ \varepsilon_{Fx} \circ G\eta_x \\
&= f \circ (\varepsilon F \circ G \eta)_x \\
&= f \circ (1_{F})_x \\
&= f \circ 1_{Fx} \\
&= f
\end{align*}
が成り立ちます。以上で示されたのは、
g = \hat{f} \implies \bar{g} = f
です。同様に
f = \bar{g} \implies \hat{f} = g
を示すことができます。つまり、
f = \bar{g} \iff \hat{f} = g
あるいは、より図式的に表すと
F x \rightarrow a \iff x \rightarrow G a
が成り立ちます。
例(カリー化と非カリー化)
関数 f : X \times Y \rightarrow Z をカリー化(currying)すると、
\hat{f} : X \rightarrow Z^Y
となります。一方で関数 g : X \rightarrow Z^Y を非カリー化(uncurrying)すると、
\bar{g} : X \times Y \rightarrow Z
となります。これは随伴射の例になっています。このときの随伴は
(\_) \times Y \dashv (\_)^Y
です。
Discussion