🗣️

随伴と随伴射~自然変換による随伴の定義~

2023/07/17に公開

随伴

関手 F : X \rightarrow AG : 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 \dashv G

と表し、FG左随伴(left adjoint) または GF右随伴(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 が係れば十分です。たとえば、単位元 \etax 成分 \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

です。

GitHubで編集を提案

Discussion