数学: モナドから導かれる随伴の圏 (3)$
モナド ── 定義と随伴により引き起こされるモナド,
随伴から導かれるモナドの例 ── maybe モナドモナドから導かれる随伴 (1) ── Eilenberg-Moore 圏モナドから導かれる随伴 (2) ── Kleisli 圏 の続き.
集合 $S$ を固定する. $S$ の各元を「状態」と呼ぶことにする.
与えられた集合に対して, 状態 $S$ との直積を与える関手 $S\times- : \mathbf{Set} \rightarrow \mathbf{Set}$ と, $S$ から集合 $A$ への関数の集合 (これを $A^S$ と記す) を与える関手 $(-)^S : \mathbf{Set} \rightarrow \mathbf{Set}$ は随伴関係 $S\times- \dashv (-)^S$ をなす.
この随伴からモナド $((S\times-)^S,\eta,\mu)$ が導かれる.
単位 (unit) $\eta : 1_{\mathbf{Set}} \Rightarrow (S\times-)^S$ は各集合 $A$ に対して
\begin{equation*}
\DeclareMathOperator{\Aff}{Aff}
\DeclareMathOperator{\Ar}{Ar}
\DeclareMathOperator{\Arccos}{Arccos}
\DeclareMathOperator{\Arcsin}{Arcsin}
\DeclareMathOperator{\Arr}{Arr}
\DeclareMathOperator{\arr}{arr}
\DeclareMathOperator{\Aut}{Aut}
\DeclareMathOperator{\Auto}{Auto}
\DeclareMathOperator{\Axiom}{Axiom}
\DeclareMathOperator{\Bilin}{Bilin}
\DeclareMathOperator{\card}{card}
\DeclareMathOperator{\Catelem}{\int}
\DeclareMathOperator{\Cocone}{Cocone}
\DeclareMathOperator{\Cod}{cod}
\DeclareMathOperator{\Codomain}{cod}
\DeclareMathOperator{\Coin}{coin}
\DeclareMathOperator{\coker}{coker}
\DeclareMathOperator{\Colim}{colim}
\DeclareMathOperator{\comp}{comp}
\DeclareMathOperator{\Conf}{Conf}
\DeclareMathOperator{\Conj}{Conj}
\DeclareMathOperator{\Dom}{dom}
\DeclareMathOperator{\Domain}{dom}
\DeclareMathOperator{\Edge}{Edge}
\DeclareMathOperator{\Ev}{ev}
\DeclareMathOperator{\GCD}{gcd}
\DeclareMathOperator{\Gr}{Gr}
\DeclareMathOperator{\Hom}{Hom}
\DeclareMathOperator{\Id}{id}
\DeclareMathOperator{\IM}{Im}
\DeclareMathOperator{\im}{im}
\DeclareMathOperator{\Ind}{ind}
\DeclareMathOperator{\INIT}{init}
\DeclareMathOperator{\iso}{iso}
\DeclareMathOperator{\LCM}{lcm}
\DeclareMathOperator{\Map}{Map}
\DeclareMathOperator{\mor}{arr}
\DeclareMathOperator{\Nat}{Nat}
\DeclareMathOperator{\Ob}{Ob}
\DeclareMathOperator{\ob}{ob}
\DeclareMathOperator{\ord}{ord}
\DeclareMathOperator{\Path}{Path}
\DeclareMathOperator{\PConf}{PConf}
\DeclareMathOperator{\Point}{Point}
\DeclareMathOperator{\Prob}{Prob}
\DeclareMathOperator{\RE}{Re}
\DeclareMathOperator{\Res}{res}
\DeclareMathOperator{\Sect}{Sect}
\DeclareMathOperator{\SF}{SF}
\DeclareMathOperator{\SkelCat}{sk}
\DeclareMathOperator{\Spec}{Spec}
\DeclareMathOperator{\Sq}{Sq}
\DeclareMathOperator{\Struct}{Struct}
\DeclareMathOperator{\Sub}{Sub}
\DeclareMathOperator{\Sym}{Sym}
\DeclareMathOperator{\TERM}{term}
\DeclareMathOperator{\Vertex}{Vert}
\newcommand{\Abs}[1]{\lvert{#1}\rvert}
\newcommand{\Bs}{\backslash}
\newcommand{\Cdot}{\,\cdot^{\mathrm{op}}}
\newcommand{\Comma}[2]{{{#1}\!\downarrow\!{#2}}}
\newcommand{\CommaCat}[2]{(#1/#2)}
\newcommand{\Complement}[1]{{\smash[t]{\mathstrut #1}}^{\mathrm{c}}}
\newcommand{\Emph}[1]{\textit{#1}}
\newcommand{\Eqclass}[4]{{#1#2#3}_{#4}}
\newcommand{\EqCls}[2]{{\left[#1\right]}_{#2}}
\newcommand{\Eqcls}[1]{\left[#1\right]}
\newcommand{\Expt}[2]{{\smash[t]{\mathstrut #1}}^{\mathstrut #2}}
\newcommand{\FnRest}[2]{{#1}|{#2}}
\newcommand{\Func}[2]{\mathrm{Func}(#1,#2)}
\newcommand{\g}{\varg}
\newcommand{\Inc}[2]{\mathrm{incl}\left(#1,#2\right)}
\newcommand{\Incl}[2]{\mathrm{incl}_{#1}^{#2}}
\newcommand{\InclArrow}[2]{\morphism(0,0)/>->/<450,0>[\Incl{#1}{#2} : {#1}\,\,`{#2};]}
\newcommand{\Ip}{\amalg}
\newcommand{\Lb}[1]{\mathrm{lb}(#1)}
\newcommand{\LH}{\mathrm{LH}}
\newcommand{\Lowerset}[1]{\downarrow\!\!{#1}}
\newcommand{\Leadsto}{\quad\leadsto\quad}
\newcommand{\Lrsquigarrow}{\quad\leftrightsquigarrow\quad}
\newcommand{\Mb}[1]{\mathbf{#1}}
\newcommand{\Mbb}[1]{\mathbb{#1}}
\newcommand{\Mi}[1]{\mathit{#1}}
\newcommand{\Mlb}[1]{\mathrm{mlb}(#1)}
\newcommand{\Mr}[1]{\mathrm{#1}}
\newcommand{\Ms}[1]{\mathscr{#1}}
\newcommand{\Mt}[1]{\mathtt{#1}}
\newcommand{\Mub}[1]{\mathrm{mub}(#1)}
\newcommand{\newinf}{\mathop{\mathrm{inf}\vphantom{\mathrm{sup}}}}
\newcommand{\newsup}{\mathop{\smash{\mathrm{sup}}}}
\newcommand{\Opp}[1]{#1^{\mathrm{op}}}
\newcommand{\Prj}[2]{\mathrm{proj}\left(#1,#2\right)}
\newcommand{\Proj}[2]{\mathrm{proj}^{#1}_{#2}}
\newcommand{\Pw}{\mathbf{P}}
\newcommand{\Rn}[1]{{\bmdefine{R}}^{#1}}
\newcommand{\q}{\hspace{1em}}
\newcommand{\qq}{\hspace{0.5em}}
\newcommand{\Rel}[1]{\langle{#1}\rangle}
\newcommand{\Rest}[2]{{#1}|{#2}}
\newcommand{\Slash}[1]{{\ooalign{\hfil/\hfil\crcr$#1$}}}
\newcommand{\SliCat}[2]{{#1}\,\big/\,{#2}}
\newcommand{\Src}{d^{0,\mathrm{op}}}
\newcommand{\ssqrt}[1]{\sqrt{\smash[b]{\mathstrut #1}}}
\newcommand{\Tgt}{d^{1,\mathrm{op}}}
\newcommand{\TwArCat}[1]{\mathrm{Tw}(#1)}
\newcommand{\Ub}[1]{\mathrm{ub}(#1)}
\newcommand{\Un}[1]{{1}_{#1}}
\newcommand{\Upperset}[1]{\uparrow\!\!{#1}}
\newcommand{\VectCat}[1]{#1 \mathchar`- \mathbf{Vect}}
\newcommand{\VS}{\vspace*{-1ex}}
\newcommand{\Wbar}[1]{\widebar{#1}}
\newcommand{\Ab}{\mathbf{Ab}}
\newcommand{\Adj}{\mathbf{Adj}}
\newcommand{\Affine}{\mathbf{Affine}}
\newcommand{\Ban}{\mathbf{Ban}}
\newcommand{\bbDelta}{\Delta\mkern-12mu\Delta}
\newcommand{\Card}{\mathbf{Card}}
\newcommand{\CAT}{\mathbf{CAT}}
\newcommand{\Cat}{\mathbf{Cat}}
\newcommand{\cgHaus}{\mathbf{cgHaus}}
\newcommand{\Ch}{\mathbf{Ch}}
\newcommand{\cHaus}{\mathbf{cHaus}}
\newcommand{\Cluster}{\mathbf{Cluster}}
\newcommand{\CMonoid}{\mathbf{CMonoid}}
\newcommand{\CRing}{\mathbf{CRing}}
\newcommand{\DirGraph}{\mathbf{DirGraph}}
\newcommand{\End}{\mathbf{End}}
\newcommand{\Euclid}{\mathbf{Euclid}}
\newcommand{\Field}{\mathbf{Field}}
\newcommand{\Fin}{\mathbf{Fin}}
\newcommand{\FinMetric}{\mathbf{FinMetric}}
\newcommand{\Four}{\mathbbm{4}}
\newcommand{\Graph}{\mathbf{Graph}}
\newcommand{\GrMod}{\mathbf{GrMod}}
\newcommand{\Grp}{\mathbf{Grp}}
\newcommand{\Group}{\mathbf{Group}}
\newcommand{\Groupoid}{\mathbf{Groupoid}}
\newcommand{\Haus}{\mathbf{Haus}}
\newcommand{\Htpy}{\mathbf{Htpy}}
\newcommand{\Man}{\mathbf{Man}}
\newcommand{\Mapsdown}{\rotatebox{270}{$\mapsto$}}
\newcommand{\Mapsup}{\rotatebox{90}{$\mapsto$}}
\newcommand{\Mat}{\mathbf{Mat}}
\newcommand{\Meas}{\mathbf{Meas}}
\newcommand{\Measure}{\mathbf{Measure}}
\newcommand{\Mod}{\mathbf{Mod}}
\newcommand{\Model}{\mathbf{Model}}
\newcommand{\Mon}{\mathbf{Mon}}
\newcommand{\Monoid}{\mathbf{Monoid}}
\newcommand{\oMega}{\bbomega}
\newcommand{\One}{\mymathbb{1}}
\newcommand{\Ord}{\mathrm{Ord}}
\newcommand{\PCluster}{\mathbf{PCluster}}
\newcommand{\POs}{\mathbf{Poset}}
\newcommand{\Poset}{\mathbf{Poset}}
\newcommand{\PROJ}{\mathbf{Proj}}
\newcommand{\Psh}{\mathbf{Psh}}
\newcommand{\Ring}{\mathbf{Ring}}
\newcommand{\Rng}{\mathbf{Rng}}
\newcommand{\SET}{\mathbf{SET}}
\newcommand{\Set}{\mathbf{Set}}
\newcommand{\setmid}{\mathrel{}\middle|\mathrel{}}
\newcommand{\Sh}{\mathbf{Sh}}
\newcommand{\Shv}{\mathbf{Shv}}
\newcommand{\Three}{\mymathbb{3}}
\renewcommand{\Top}{\mathbf{Top}}
\newcommand{\Two}{\mymathbb{2}}
\newcommand{\Vect}{\mathbf{Vect}}
\newcommand{\Zero}{\mymathbb{0}}
\newcommand{\sA}{\mathscr{A}}
\newcommand{\sB}{\mathscr{B}}
\newcommand{\sC}{\mathscr{C}}
\newcommand{\sD}{\mathscr{D}}
\newcommand{\sE}{\mathscr{E}}
\newcommand{\sF}{\mathscr{F}}
\newcommand{\sG}{\mathscr{G}}
\newcommand{\sH}{\mathscr{H}}
\newcommand{\sI}{\mathscr{I}}
\newcommand{\sJ}{\mathscr{J}}
\newcommand{\sK}{\mathscr{K}}
\newcommand{\sL}{\mathscr{L}}
\newcommand{\sM}{\mathscr{M}}
\newcommand{\sN}{\mathscr{N}}
\newcommand{\sO}{\mathscr{O}}
\newcommand{\sP}{\mathscr{P}}
\newcommand{\sQ}{\mathscr{Q}}
\newcommand{\sR}{\mathscr{R}}
\newcommand{\sS}{\mathscr{S}}
\newcommand{\sT}{\mathscr{T}}
\newcommand{\sU}{\mathscr{U}}
\newcommand{\sV}{\mathscr{V}}
\newcommand{\sW}{\mathscr{W}}
\newcommand{\sX}{\mathscr{X}}
\newcommand{\sY}{\mathscr{Y}}
\newcommand{\sZ}{\mathscr{Z}}
\newcommand{\bfA}{\mathbf{A}}
\newcommand{\bfB}{\mathbf{B}}
\newcommand{\bfC}{\mathbf{C}}
\newcommand{\bfD}{\mathbf{D}}
\newcommand{\bfE}{\mathbf{E}}
\newcommand{\bfF}{\mathbf{F}}
\newcommand{\bfG}{\mathbf{G}}
\newcommand{\bfH}{\mathbf{H}}
\newcommand{\bfI}{\mathbf{I}}
\newcommand{\bfJ}{\mathbf{J}}
\newcommand{\bfK}{\mathbf{K}}
\newcommand{\bfL}{\mathbf{L}}
\newcommand{\bfM}{\mathbf{M}}
\newcommand{\bfN}{\mathbf{N}}
\newcommand{\bfO}{\mathbf{O}}
\newcommand{\bfP}{\mathbf{P}}
\newcommand{\bfQ}{\mathbf{Q}}
\newcommand{\bfR}{\mathbf{R}}
\newcommand{\bfS}{\mathbf{S}}
\newcommand{\bfT}{\mathbf{T}}
\newcommand{\bfU}{\mathbf{U}}
\newcommand{\bfV}{\mathbf{V}}
\newcommand{\bfW}{\mathbf{W}}
\newcommand{\bfX}{\mathbf{X}}
\newcommand{\bfY}{\mathbf{Y}}
\newcommand{\bfZ}{\mathbf{Z}}
\newcommand{\bfa}{\mathbf{a}}
\newcommand{\bfb}{\mathbf{b}}
\newcommand{\bfc}{\mathbf{c}}
\newcommand{\bfd}{\mathbf{d}}
\newcommand{\bfe}{\mathbf{e}}
\newcommand{\bff}{\mathbf{f}}
\newcommand{\bfg}{\mathbf{g}}
\newcommand{\bfh}{\mathbf{h}}
\newcommand{\bfi}{\mathbf{i}}
\newcommand{\bfj}{\mathbf{j}}
\newcommand{\bfk}{\mathbf{k}}
\newcommand{\bfl}{\mathbf{l}}
\newcommand{\bfm}{\mathbf{m}}
\newcommand{\bfn}{\mathbf{n}}
\newcommand{\bfo}{\mathbf{o}}
\newcommand{\bfp}{\mathbf{p}}
\newcommand{\bfq}{\mathbf{q}}
\newcommand{\bfr}{\mathbf{r}}
\newcommand{\bfs}{\mathbf{s}}
\newcommand{\bft}{\mathbf{t}}
\newcommand{\bfu}{\mathbf{u}}
\newcommand{\bfv}{\mathbf{v}}
\newcommand{\bfw}{\mathbf{w}}
\newcommand{\bfx}{\mathbf{x}}
\newcommand{\bfy}{\mathbf{y}}
\newcommand{\bfz}{\mathbf{z}}
\newcommand{\frA}{\mathfrak{A}}
\newcommand{\frB}{\mathfrak{B}}
\newcommand{\frC}{\mathfrak{C}}
\newcommand{\frD}{\mathfrak{D}}
\newcommand{\frE}{\mathfrak{E}}
\newcommand{\frF}{\mathfrak{F}}
\newcommand{\frG}{\mathfrak{G}}
\newcommand{\frH}{\mathfrak{H}}
\newcommand{\frI}{\mathfrak{I}}
\newcommand{\frJ}{\mathfrak{J}}
\newcommand{\frK}{\mathfrak{K}}
\newcommand{\frL}{\mathfrak{L}}
\newcommand{\frM}{\mathfrak{M}}
\newcommand{\frN}{\mathfrak{N}}
\newcommand{\frO}{\mathfrak{O}}
\newcommand{\frP}{\mathfrak{P}}
\newcommand{\frQ}{\mathfrak{Q}}
\newcommand{\frR}{\mathfrak{R}}
\newcommand{\frS}{\mathfrak{S}}
\newcommand{\frT}{\mathfrak{T}}
\newcommand{\frU}{\mathfrak{U}}
\newcommand{\frV}{\mathfrak{V}}
\newcommand{\frW}{\mathfrak{W}}
\newcommand{\frX}{\mathfrak{X}}
\newcommand{\frY}{\mathfrak{Y}}
\newcommand{\frZ}{\mathfrak{Z}}
\newcommand{\Fra}{\mathfrak{a}}
\newcommand{\Frb}{\mathfrak{b}}
\newcommand{\Frc}{\mathfrak{c}}
\newcommand{\Frd}{\mathfrak{d}}
\newcommand{\Fre}{\mathfrak{e}}
\newcommand{\Frf}{\mathfrak{f}}
\newcommand{\Frg}{\mathfrak{g}}
\newcommand{\Frh}{\mathfrak{h}}
\newcommand{\Fri}{\mathfrak{i}}
\newcommand{\Frj}{\mathfrak{j}}
\newcommand{\Frk}{\mathfrak{k}}
\newcommand{\Frl}{\mathfrak{l}}
\newcommand{\Frm}{\mathfrak{m}}
\newcommand{\Frn}{\mathfrak{n}}
\newcommand{\Fro}{\mathfrak{o}}
\newcommand{\Frp}{\mathfrak{p}}
\newcommand{\Frq}{\mathfrak{q}}
\newcommand{\Frr}{\mathfrak{r}}
\newcommand{\Frs}{\mathfrak{s}}
\newcommand{\Frt}{\mathfrak{t}}
\newcommand{\Fru}{\mathfrak{u}}
\newcommand{\Frv}{\mathfrak{v}}
\newcommand{\Frw}{\mathfrak{w}}
\newcommand{\Frx}{\mathfrak{x}}
\newcommand{\Fry}{\mathfrak{y}}
\newcommand{\Frz}{\mathfrak{z}}
\newcommand{\rA}{\mathrm{A}}
\newcommand{\rB}{\mathrm{B}}
\newcommand{\rC}{\mathrm{C}}
\newcommand{\rD}{\mathrm{D}}
\newcommand{\rE}{\mathrm{E}}
\newcommand{\rF}{\mathrm{F}}
\newcommand{\rG}{\mathrm{G}}
\newcommand{\rH}{\mathrm{H}}
\newcommand{\rI}{\mathrm{I}}
\newcommand{\rJ}{\mathrm{J}}
\newcommand{\rK}{\mathrm{K}}
\newcommand{\rL}{\mathrm{L}}
\newcommand{\rM}{\mathrm{M}}
\newcommand{\rN}{\mathrm{N}}
\newcommand{\rO}{\mathrm{O}}
\newcommand{\rP}{\mathrm{P}}
\newcommand{\rQ}{\mathrm{Q}}
\newcommand{\rR}{\mathrm{R}}
\newcommand{\rS}{\mathrm{S}}
\newcommand{\rT}{\mathrm{T}}
\newcommand{\rU}{\mathrm{U}}
\newcommand{\rV}{\mathrm{V}}
\newcommand{\rW}{\mathrm{W}}
\newcommand{\rX}{\mathrm{X}}
\newcommand{\rY}{\mathrm{Y}}
\newcommand{\rZ}{\mathrm{Z}}
\newcommand{\sfA}{\mathsf{A}}
\newcommand{\sfB}{\mathsf{B}}
\newcommand{\sfC}{\mathsf{C}}
\newcommand{\sfD}{\mathsf{D}}
\newcommand{\sfE}{\mathsf{E}}
\newcommand{\sfF}{\mathsf{F}}
\newcommand{\sfG}{\mathsf{G}}
\newcommand{\sfH}{\mathsf{H}}
\newcommand{\sfI}{\mathsf{I}}
\newcommand{\sfJ}{\mathsf{J}}
\newcommand{\sfK}{\mathsf{K}}
\newcommand{\sfL}{\mathsf{L}}
\newcommand{\sfM}{\mathsf{M}}
\newcommand{\sfN}{\mathsf{N}}
\newcommand{\sfO}{\mathsf{O}}
\newcommand{\sfP}{\mathsf{P}}
\newcommand{\sfQ}{\mathsf{Q}}
\newcommand{\sfR}{\mathsf{R}}
\newcommand{\sfS}{\mathsf{S}}
\newcommand{\sfT}{\mathsf{T}}
\newcommand{\sfU}{\mathsf{U}}
\newcommand{\sfV}{\mathsf{V}}
\newcommand{\sfW}{\mathsf{W}}
\newcommand{\sfX}{\mathsf{X}}
\newcommand{\sfY}{\mathsf{Y}}
\newcommand{\sfZ}{\mathsf{Z}}
\newcommand{\bbA}{\mathbbm{A}}
\newcommand{\bbB}{\mathbbm{B}}
\newcommand{\bbC}{\mathbbm{C}}
\newcommand{\bbD}{\mathbbm{D}}
\newcommand{\bbE}{\mathbbm{E}}
\newcommand{\bbF}{\mathbbm{F}}
\newcommand{\bbG}{\mathbbm{G}}
\newcommand{\bbH}{\mathbbm{H}}
\newcommand{\bbI}{\mathbbm{I}}
\newcommand{\bbJ}{\mathbbm{J}}
\newcommand{\bbK}{\mathbbm{K}}
\newcommand{\bbL}{\mathbbm{L}}
\newcommand{\bbM}{\mathbbm{M}}
\newcommand{\bbN}{\mathbbm{N}}
\newcommand{\bbO}{\mathbbm{O}}
\newcommand{\bbP}{\mathbbm{P}}
\newcommand{\bbQ}{\mathbbm{Q}}
\newcommand{\bbR}{\mathbbm{R}}
\newcommand{\bbS}{\mathbbm{S}}
\newcommand{\bbT}{\mathbbm{T}}
\newcommand{\bbU}{\mathbbm{U}}
\newcommand{\bbV}{\mathbbm{V}}
\newcommand{\bbW}{\mathbbm{W}}
\newcommand{\bbX}{\mathbbm{X}}
\newcommand{\bbY}{\mathbbm{Y}}
\newcommand{\bbZ}{\mathbbm{Z}}
\newcommand{\bba}{\mathbbm{a}}
\newcommand{\bbb}{\mathbbm{b}}
\newcommand{\bbc}{\mathbbm{c}}
\newcommand{\bbd}{\mathbbm{d}}
\newcommand{\bbe}{\mathbbm{e}}
\newcommand{\bbf}{\mathbbm{f}}
\newcommand{\bbg}{\mathbbm{g}}
\newcommand{\bbh}{\mathbbm{h}}
\newcommand{\bbi}{\mathbbm{i}}
\newcommand{\bbj}{\mathbbm{j}}
\newcommand{\bbk}{\mathbbm{k}}
\newcommand{\bbl}{\mathbbm{l}}
\newcommand{\bbm}{\mathbbm{m}}
\newcommand{\bbn}{\mathbbm{n}}
\newcommand{\bbo}{\mathbbm{o}}
\newcommand{\bbp}{\mathbbm{p}}
\newcommand{\bbq}{\mathbbm{q}}
\newcommand{\bbr}{\mathbbm{r}}
\newcommand{\bbs}{\mathbbm{s}}
\newcommand{\bbt}{\mathbbm{t}}
\newcommand{\bbu}{\mathbbm{u}}
\newcommand{\bbv}{\mathbbm{v}}
\newcommand{\bbw}{\mathbbm{w}}
\newcommand{\bbx}{\mathbbm{x}}
\newcommand{\bby}{\mathbbm{y}}
\newcommand{\bbz}{\mathbbm{z}}
\newdir{ >}{{ }*!/-5pt/@{>}}
\eta_A : A \rightarrow (S \times A)^S, \qquad (\eta_A(a))(s) = (s,a)
\end{equation*} と定義される. 結果の $(s,a)$ を, 入力 $a \in A$ と現在の状態 $s \in S$ の対と考える.
また, 余単位 (counit) $\epsilon : S \times (-)^S \Rightarrow \Un{\Set}$ は 状態 $s \in S$ と, 各状態における入力を与える関数 $f : S \rightarrow A$ とに対して,
\begin{equation*}
\epsilon_A : S \times A^S \rightarrow A, \qquad \epsilon_A(s,f) = f(s)
\end{equation*} と定義される. つまり, 各 $\epsilon_A : S \times A^S \rightarrow A$ は各状態における入力を与える評価関数 (evaluation function) と見なせる.
3 つ組 $((S\times-)^S,\eta,\mu)$ は図式に対する計算により
\begin{equation*}
\begin{xy}
\xymatrix@=36pt {
(S\times(S\times(S \times A)^S)^S)^S
\ar[r]^(.55){(S\times\mu_A)^S}
\ar[d]_{\mu_{(S \times A)^S}}
& (S\times(S \times A)^S)^S ->
\ar[d]^{\mu_A} \\
(S\times(S \times A)^S)^S
\ar[r]_{\mu_A}
& (S \times A)^S
}
\end{xy}
\qquad
\begin{xy}
\xymatrix@=36pt {
(S \times A)^S \ar[r]^(.4){\eta_{(S \times A)^S}} \ar[dr]_{\Un{(S \times A)^S}}
& (S\times(S \times A)^S)^S \ar[d]^{\mu_A}
& (S \times A)^S \ar[l]_(0.4){(S\times\eta_A)^S} \ar[dl]^{\Un{(S \times A)^S}} \\
& (S \times A)^S &
}
\end{xy}
\end{equation*}
を可換にし, 実際にモナドになっていることがわかる.
この余単位 $\epsilon$ を用いて, モナド $S\times(-)^S$ の積 (multiplication) $\mu : (S\times(S\times(-)^S))^S \Rightarrow (S\times-)^S$ を明示的に書き下してみる.
$\mu=(-)^S\epsilon(S\times-) : (S\times(S \times -)^S)^S \rightarrow (S\times-)^S$ である. $u \in (S\times(S \times A)^S)^S$ をとり, 状態 $s \in S$ に対して,
\begin{equation*}
u(s) = (u_1(s),u_2(s))
\end{equation*} とおく. $u_1(s) \in S$, $u_2(s) : S \rightarrow S \times A$ である.
$u_1(s)$ は状態 $s$ に対する新しい状態, $u_2(s)$ は状態 $s$ に対する新たな状態と入力の対を与える.
このとき,
\begin{equation*}
\mu_A(u)(s) = ((-)^S\epsilon(S\times-))_A(u))(s) = ((\epsilon_{S \times A})^S(u))(s) = \epsilon_{S \times A}(u(s)) = \epsilon_{S \times A}(u_1(s),u_2(s)) = u_2(s)(u_1(s))
\end{equation*} となる.
Kleisli 圏における対象は集合であり, この集合を状態の集まりであると考える.
Kleisli 圏 $\Set_{(S\times-)^S}$ における射 $f : A \rightsquigarrow B$ は $\rC$ における関数 $f : A \rightarrow (S \times B)^S$ であるが, この関数 $f$ は $f : A \times S \rightarrow B \times S$ と見なせる.
入力 $a$ と現在の状態 $s$ の対 $(a,s) \in A \times S$ に対して
\begin{equation*}
f(a,s) = (f_s(a), s'(a,s))
\end{equation*} とおく. このとき, $f_s(a)$ は入力と状態の対 $(a,s)$ によって決まる出力 $f_s(a) \in B$ と, アップデートされた状態 $s'(a,s) \in S$ の対と考えられる.
たとえば, 関数型プログラミング言語 Haskell においては, このアップデートされた状態 $s'(a,s)$ は計算 $f$ の「副作用 (side effect)」として扱われる.
**数学: モナドから導かれる随伴の圏 (3)$
モナド ── 定義と随伴により引き起こされるモナド,
随伴から導かれるモナドの例 ── maybe モナドモナドから導かれる随伴 (1) ── Eilenberg-Moore 圏モナドから導かれる随伴 (2) ── Kleisli 圏 の続き.
集合 $S$ を固定する. $S$ の各元を「状態」と呼ぶことにする.
与えられた集合に対して, 状態 $S$ との直積を与える関手 $S\times- : \mathbf{Set} \rightarrow \mathbf{Set}$ と, $S$ から集合 $A$ への関数の集合 (これを $A^S$ と記す) を与える関手 $(-)^S :z \mathbf{Set} \rightarrow \mathbf{Set}$ は随伴関係 $S\times- \dashv (-)^S$ をなす.
この随伴からモナド $((S\times-)^S,\eta,\mu)$ が導かれる.
単位 (unit) $\eta : 1_{\mathbf{Set}} \Rightarrow (S\times-)^S$ は各集合 $A$ に対して
\begin{equation*}
\DeclareMathOperator{\Aff}{Aff}
\DeclareMathOperator{\Ar}{Ar}
\DeclareMathOperator{\Arccos}{Arccos}
\DeclareMathOperator{\Arcsin}{Arcsin}
\DeclareMathOperator{\Arr}{Arr}
\DeclareMathOperator{\arr}{arr}
\DeclareMathOperator{\Aut}{Aut}
\DeclareMathOperator{\Auto}{Auto}
\DeclareMathOperator{\Axiom}{Axiom}
\DeclareMathOperator{\Bilin}{Bilin}
\DeclareMathOperator{\card}{card}
\DeclareMathOperator{\Catelem}{\int}
\DeclareMathOperator{\Cocone}{Cocone}
\DeclareMathOperator{\Cod}{cod}
\DeclareMathOperator{\Codomain}{cod}
\DeclareMathOperator{\Coin}{coin}
\DeclareMathOperator{\coker}{coker}
\DeclareMathOperator{\Colim}{colim}
\DeclareMathOperator{\comp}{comp}
\DeclareMathOperator{\Conf}{Conf}
\DeclareMathOperator{\Conj}{Conj}
\DeclareMathOperator{\Dom}{dom}
\DeclareMathOperator{\Domain}{dom}
\DeclareMathOperator{\Edge}{Edge}
\DeclareMathOperator{\Ev}{ev}
\DeclareMathOperator{\GCD}{gcd}
\DeclareMathOperator{\Gr}{Gr}
\DeclareMathOperator{\Hom}{Hom}
\DeclareMathOperator{\Id}{id}
\DeclareMathOperator{\IM}{Im}
\DeclareMathOperator{\im}{im}
\DeclareMathOperator{\Ind}{ind}
\DeclareMathOperator{\INIT}{init}
\DeclareMathOperator{\iso}{iso}
\DeclareMathOperator{\LCM}{lcm}
\DeclareMathOperator{\Map}{Map}
\DeclareMathOperator{\mor}{arr}
\DeclareMathOperator{\Nat}{Nat}
\DeclareMathOperator{\Ob}{Ob}
\DeclareMathOperator{\ob}{ob}
\DeclareMathOperator{\ord}{ord}
\DeclareMathOperator{\Path}{Path}
\DeclareMathOperator{\PConf}{PConf}
\DeclareMathOperator{\Point}{Point}
\DeclareMathOperator{\Prob}{Prob}
\DeclareMathOperator{\RE}{Re}
\DeclareMathOperator{\Res}{res}
\DeclareMathOperator{\Sect}{Sect}
\DeclareMathOperator{\SF}{SF}
\DeclareMathOperator{\SkelCat}{sk}
\DeclareMathOperator{\Spec}{Spec}
\DeclareMathOperator{\Sq}{Sq}
\DeclareMathOperator{\Struct}{Struct}
\DeclareMathOperator{\Sub}{Sub}
\DeclareMathOperator{\Sym}{Sym}
\DeclareMathOperator{\TERM}{term}
\DeclareMathOperator{\Vertex}{Vert}
\newcommand{\Abs}[1]{\lvert{#1}\rvert}
\newcommand{\Bs}{\backslash}
\newcommand{\Cdot}{\,\cdot^{\mathrm{op}}}
\newcommand{\Comma}[2]{{{#1}\!\downarrow\!{#2}}}
\newcommand{\CommaCat}[2]{(#1/#2)}
\newcommand{\Complement}[1]{{\smash[t]{\mathstrut #1}}^{\mathrm{c}}}
\newcommand{\Emph}[1]{\textit{#1}}
\newcommand{\Eqclass}[4]{{#1#2#3}_{#4}}
\newcommand{\EqCls}[2]{{\left[#1\right]}_{#2}}
\newcommand{\Eqcls}[1]{\left[#1\right]}
\newcommand{\Expt}[2]{{\smash[t]{\mathstrut #1}}^{\mathstrut #2}}
\newcommand{\FnRest}[2]{{#1}|{#2}}
\newcommand{\Func}[2]{\mathrm{Func}(#1,#2)}
\newcommand{\g}{\varg}
\newcommand{\Inc}[2]{\mathrm{incl}\left(#1,#2\right)}
\newcommand{\Incl}[2]{\mathrm{incl}_{#1}^{#2}}
\newcommand{\InclArrow}[2]{\morphism(0,0)/>->/<450,0>[\Incl{#1}{#2} : {#1}\,\,`{#2};]}
\newcommand{\Ip}{\amalg}
\newcommand{\Lb}[1]{\mathrm{lb}(#1)}
\newcommand{\LH}{\mathrm{LH}}
\newcommand{\Lowerset}[1]{\downarrow\!\!{#1}}
\newcommand{\Leadsto}{\quad\leadsto\quad}
\newcommand{\Lrsquigarrow}{\quad\leftrightsquigarrow\quad}
\newcommand{\Mb}[1]{\mathbf{#1}}
\newcommand{\Mbb}[1]{\mathbb{#1}}
\newcommand{\Mi}[1]{\mathit{#1}}
\newcommand{\Mlb}[1]{\mathrm{mlb}(#1)}
\newcommand{\Mr}[1]{\mathrm{#1}}
\newcommand{\Ms}[1]{\mathscr{#1}}
\newcommand{\Mt}[1]{\mathtt{#1}}
\newcommand{\Mub}[1]{\mathrm{mub}(#1)}
\newcommand{\newinf}{\mathop{\mathrm{inf}\vphantom{\mathrm{sup}}}}
\newcommand{\newsup}{\mathop{\smash{\mathrm{sup}}}}
\newcommand{\Opp}[1]{#1^{\mathrm{op}}}
\newcommand{\Prj}[2]{\mathrm{proj}\left(#1,#2\right)}
\newcommand{\Proj}[2]{\mathrm{proj}^{#1}_{#2}}
\newcommand{\Pw}{\mathbf{P}}
\newcommand{\Rn}[1]{{\bmdefine{R}}^{#1}}
\newcommand{\q}{\hspace{1em}}
\newcommand{\qq}{\hspace{0.5em}}
\newcommand{\Rel}[1]{\langle{#1}\rangle}
\newcommand{\Rest}[2]{{#1}|{#2}}
\newcommand{\Slash}[1]{{\ooalign{\hfil/\hfil\crcr$#1$}}}
\newcommand{\SliCat}[2]{{#1}\,\big/\,{#2}}
\newcommand{\Src}{d^{0,\mathrm{op}}}
\newcommand{\ssqrt}[1]{\sqrt{\smash[b]{\mathstrut #1}}}
\newcommand{\Tgt}{d^{1,\mathrm{op}}}
\newcommand{\TwArCat}[1]{\mathrm{Tw}(#1)}
\newcommand{\Ub}[1]{\mathrm{ub}(#1)}
\newcommand{\Un}[1]{{1}_{#1}}
\newcommand{\Upperset}[1]{\uparrow\!\!{#1}}
\newcommand{\VectCat}[1]{#1 \mathchar`- \mathbf{Vect}}
\newcommand{\VS}{\vspace*{-1ex}}
\newcommand{\Wbar}[1]{\widebar{#1}}
\newcommand{\Ab}{\mathbf{Ab}}
\newcommand{\Adj}{\mathbf{Adj}}
\newcommand{\Affine}{\mathbf{Affine}}
\newcommand{\Ban}{\mathbf{Ban}}
\newcommand{\bbDelta}{\Delta\mkern-12mu\Delta}
\newcommand{\Card}{\mathbf{Card}}
\newcommand{\CAT}{\mathbf{CAT}}
\newcommand{\Cat}{\mathbf{Cat}}
\newcommand{\cgHaus}{\mathbf{cgHaus}}
\newcommand{\Ch}{\mathbf{Ch}}
\newcommand{\cHaus}{\mathbf{cHaus}}
\newcommand{\Cluster}{\mathbf{Cluster}}
\newcommand{\CMonoid}{\mathbf{CMonoid}}
\newcommand{\CRing}{\mathbf{CRing}}
\newcommand{\DirGraph}{\mathbf{DirGraph}}
\newcommand{\End}{\mathbf{End}}
\newcommand{\Euclid}{\mathbf{Euclid}}
\newcommand{\Field}{\mathbf{Field}}
\newcommand{\Fin}{\mathbf{Fin}}
\newcommand{\FinMetric}{\mathbf{FinMetric}}
\newcommand{\Four}{\mathbbm{4}}
\newcommand{\Graph}{\mathbf{Graph}}
\newcommand{\GrMod}{\mathbf{GrMod}}
\newcommand{\Grp}{\mathbf{Grp}}
\newcommand{\Group}{\mathbf{Group}}
\newcommand{\Groupoid}{\mathbf{Groupoid}}
\newcommand{\Haus}{\mathbf{Haus}}
\newcommand{\Htpy}{\mathbf{Htpy}}
\newcommand{\Man}{\mathbf{Man}}
\newcommand{\Mapsdown}{\rotatebox{270}{$\mapsto$}}
\newcommand{\Mapsup}{\rotatebox{90}{$\mapsto$}}
\newcommand{\Mat}{\mathbf{Mat}}
\newcommand{\Meas}{\mathbf{Meas}}
\newcommand{\Measure}{\mathbf{Measure}}
\newcommand{\Mod}{\mathbf{Mod}}
\newcommand{\Model}{\mathbf{Model}}
\newcommand{\Mon}{\mathbf{Mon}}
\newcommand{\Monoid}{\mathbf{Monoid}}
\newcommand{\oMega}{\bbomega}
\newcommand{\One}{\mymathbb{1}}
\newcommand{\Ord}{\mathrm{Ord}}
\newcommand{\PCluster}{\mathbf{PCluster}}
\newcommand{\POs}{\mathbf{Poset}}
\newcommand{\Poset}{\mathbf{Poset}}
\newcommand{\PROJ}{\mathbf{Proj}}
\newcommand{\Psh}{\mathbf{Psh}}
\newcommand{\Ring}{\mathbf{Ring}}
\newcommand{\Rng}{\mathbf{Rng}}
\newcommand{\SET}{\mathbf{SET}}
\newcommand{\Set}{\mathbf{Set}}
\newcommand{\setmid}{\mathrel{}\middle|\mathrel{}}
\newcommand{\Sh}{\mathbf{Sh}}
\newcommand{\Shv}{\mathbf{Shv}}
\newcommand{\Three}{\mymathbb{3}}
\renewcommand{\Top}{\mathbf{Top}}
\newcommand{\Two}{\mymathbb{2}}
\newcommand{\Vect}{\mathbf{Vect}}
\newcommand{\Zero}{\mymathbb{0}}
\newcommand{\sA}{\mathscr{A}}
\newcommand{\sB}{\mathscr{B}}
\newcommand{\sC}{\mathscr{C}}
\newcommand{\sD}{\mathscr{D}}
\newcommand{\sE}{\mathscr{E}}
\newcommand{\sF}{\mathscr{F}}
\newcommand{\sG}{\mathscr{G}}
\newcommand{\sH}{\mathscr{H}}
\newcommand{\sI}{\mathscr{I}}
\newcommand{\sJ}{\mathscr{J}}
\newcommand{\sK}{\mathscr{K}}
\newcommand{\sL}{\mathscr{L}}
\newcommand{\sM}{\mathscr{M}}
\newcommand{\sN}{\mathscr{N}}
\newcommand{\sO}{\mathscr{O}}
\newcommand{\sP}{\mathscr{P}}
\newcommand{\sQ}{\mathscr{Q}}
\newcommand{\sR}{\mathscr{R}}
\newcommand{\sS}{\mathscr{S}}
\newcommand{\sT}{\mathscr{T}}
\newcommand{\sU}{\mathscr{U}}
\newcommand{\sV}{\mathscr{V}}
\newcommand{\sW}{\mathscr{W}}
\newcommand{\sX}{\mathscr{X}}
\newcommand{\sY}{\mathscr{Y}}
\newcommand{\sZ}{\mathscr{Z}}
\newcommand{\bfA}{\mathbf{A}}
\newcommand{\bfB}{\mathbf{B}}
\newcommand{\bfC}{\mathbf{C}}
\newcommand{\bfD}{\mathbf{D}}
\newcommand{\bfE}{\mathbf{E}}
\newcommand{\bfF}{\mathbf{F}}
\newcommand{\bfG}{\mathbf{G}}
\newcommand{\bfH}{\mathbf{H}}
\newcommand{\bfI}{\mathbf{I}}
\newcommand{\bfJ}{\mathbf{J}}
\newcommand{\bfK}{\mathbf{K}}
\newcommand{\bfL}{\mathbf{L}}
\newcommand{\bfM}{\mathbf{M}}
\newcommand{\bfN}{\mathbf{N}}
\newcommand{\bfO}{\mathbf{O}}
\newcommand{\bfP}{\mathbf{P}}
\newcommand{\bfQ}{\mathbf{Q}}
\newcommand{\bfR}{\mathbf{R}}
\newcommand{\bfS}{\mathbf{S}}
\newcommand{\bfT}{\mathbf{T}}
\newcommand{\bfU}{\mathbf{U}}
\newcommand{\bfV}{\mathbf{V}}
\newcommand{\bfW}{\mathbf{W}}
\newcommand{\bfX}{\mathbf{X}}
\newcommand{\bfY}{\mathbf{Y}}
\newcommand{\bfZ}{\mathbf{Z}}
\newcommand{\bfa}{\mathbf{a}}
\newcommand{\bfb}{\mathbf{b}}
\newcommand{\bfc}{\mathbf{c}}
\newcommand{\bfd}{\mathbf{d}}
\newcommand{\bfe}{\mathbf{e}}
\newcommand{\bff}{\mathbf{f}}
\newcommand{\bfg}{\mathbf{g}}
\newcommand{\bfh}{\mathbf{h}}
\newcommand{\bfi}{\mathbf{i}}
\newcommand{\bfj}{\mathbf{j}}
\newcommand{\bfk}{\mathbf{k}}
\newcommand{\bfl}{\mathbf{l}}
\newcommand{\bfm}{\mathbf{m}}
\newcommand{\bfn}{\mathbf{n}}
\newcommand{\bfo}{\mathbf{o}}
\newcommand{\bfp}{\mathbf{p}}
\newcommand{\bfq}{\mathbf{q}}
\newcommand{\bfr}{\mathbf{r}}
\newcommand{\bfs}{\mathbf{s}}
\newcommand{\bft}{\mathbf{t}}
\newcommand{\bfu}{\mathbf{u}}
\newcommand{\bfv}{\mathbf{v}}
\newcommand{\bfw}{\mathbf{w}}
\newcommand{\bfx}{\mathbf{x}}
\newcommand{\bfy}{\mathbf{y}}
\newcommand{\bfz}{\mathbf{z}}
\newcommand{\frA}{\mathfrak{A}}
\newcommand{\frB}{\mathfrak{B}}
\newcommand{\frC}{\mathfrak{C}}
\newcommand{\frD}{\mathfrak{D}}
\newcommand{\frE}{\mathfrak{E}}
\newcommand{\frF}{\mathfrak{F}}
\newcommand{\frG}{\mathfrak{G}}
\newcommand{\frH}{\mathfrak{H}}
\newcommand{\frI}{\mathfrak{I}}
\newcommand{\frJ}{\mathfrak{J}}
\newcommand{\frK}{\mathfrak{K}}
\newcommand{\frL}{\mathfrak{L}}
\newcommand{\frM}{\mathfrak{M}}
\newcommand{\frN}{\mathfrak{N}}
\newcommand{\frO}{\mathfrak{O}}
\newcommand{\frP}{\mathfrak{P}}
\newcommand{\frQ}{\mathfrak{Q}}
\newcommand{\frR}{\mathfrak{R}}
\newcommand{\frS}{\mathfrak{S}}
\newcommand{\frT}{\mathfrak{T}}
\newcommand{\frU}{\mathfrak{U}}
\newcommand{\frV}{\mathfrak{V}}
\newcommand{\frW}{\mathfrak{W}}
\newcommand{\frX}{\mathfrak{X}}
\newcommand{\frY}{\mathfrak{Y}}
\newcommand{\frZ}{\mathfrak{Z}}
\newcommand{\Fra}{\mathfrak{a}}
\newcommand{\Frb}{\mathfrak{b}}
\newcommand{\Frc}{\mathfrak{c}}
\newcommand{\Frd}{\mathfrak{d}}
\newcommand{\Fre}{\mathfrak{e}}
\newcommand{\Frf}{\mathfrak{f}}
\newcommand{\Frg}{\mathfrak{g}}
\newcommand{\Frh}{\mathfrak{h}}
\newcommand{\Fri}{\mathfrak{i}}
\newcommand{\Frj}{\mathfrak{j}}
\newcommand{\Frk}{\mathfrak{k}}
\newcommand{\Frl}{\mathfrak{l}}
\newcommand{\Frm}{\mathfrak{m}}
\newcommand{\Frn}{\mathfrak{n}}
\newcommand{\Fro}{\mathfrak{o}}
\newcommand{\Frp}{\mathfrak{p}}
\newcommand{\Frq}{\mathfrak{q}}
\newcommand{\Frr}{\mathfrak{r}}
\newcommand{\Frs}{\mathfrak{s}}
\newcommand{\Frt}{\mathfrak{t}}
\newcommand{\Fru}{\mathfrak{u}}
\newcommand{\Frv}{\mathfrak{v}}
\newcommand{\Frw}{\mathfrak{w}}
\newcommand{\Frx}{\mathfrak{x}}
\newcommand{\Fry}{\mathfrak{y}}
\newcommand{\Frz}{\mathfrak{z}}
\newcommand{\rA}{\mathrm{A}}
\newcommand{\rB}{\mathrm{B}}
\newcommand{\rC}{\mathrm{C}}
\newcommand{\rD}{\mathrm{D}}
\newcommand{\rE}{\mathrm{E}}
\newcommand{\rF}{\mathrm{F}}
\newcommand{\rG}{\mathrm{G}}
\newcommand{\rH}{\mathrm{H}}
\newcommand{\rI}{\mathrm{I}}
\newcommand{\rJ}{\mathrm{J}}
\newcommand{\rK}{\mathrm{K}}
\newcommand{\rL}{\mathrm{L}}
\newcommand{\rM}{\mathrm{M}}
\newcommand{\rN}{\mathrm{N}}
\newcommand{\rO}{\mathrm{O}}
\newcommand{\rP}{\mathrm{P}}
\newcommand{\rQ}{\mathrm{Q}}
\newcommand{\rR}{\mathrm{R}}
\newcommand{\rS}{\mathrm{S}}
\newcommand{\rT}{\mathrm{T}}
\newcommand{\rU}{\mathrm{U}}
\newcommand{\rV}{\mathrm{V}}
\newcommand{\rW}{\mathrm{W}}
\newcommand{\rX}{\mathrm{X}}
\newcommand{\rY}{\mathrm{Y}}
\newcommand{\rZ}{\mathrm{Z}}
\newcommand{\sfA}{\mathsf{A}}
\newcommand{\sfB}{\mathsf{B}}
\newcommand{\sfC}{\mathsf{C}}
\newcommand{\sfD}{\mathsf{D}}
\newcommand{\sfE}{\mathsf{E}}
\newcommand{\sfF}{\mathsf{F}}
\newcommand{\sfG}{\mathsf{G}}
\newcommand{\sfH}{\mathsf{H}}
\newcommand{\sfI}{\mathsf{I}}
\newcommand{\sfJ}{\mathsf{J}}
\newcommand{\sfK}{\mathsf{K}}
\newcommand{\sfL}{\mathsf{L}}
\newcommand{\sfM}{\mathsf{M}}
\newcommand{\sfN}{\mathsf{N}}
\newcommand{\sfO}{\mathsf{O}}
\newcommand{\sfP}{\mathsf{P}}
\newcommand{\sfQ}{\mathsf{Q}}
\newcommand{\sfR}{\mathsf{R}}
\newcommand{\sfS}{\mathsf{S}}
\newcommand{\sfT}{\mathsf{T}}
\newcommand{\sfU}{\mathsf{U}}
\newcommand{\sfV}{\mathsf{V}}
\newcommand{\sfW}{\mathsf{W}}
\newcommand{\sfX}{\mathsf{X}}
\newcommand{\sfY}{\mathsf{Y}}
\newcommand{\sfZ}{\mathsf{Z}}
\newcommand{\bbA}{\mathbbm{A}}
\newcommand{\bbB}{\mathbbm{B}}
\newcommand{\bbC}{\mathbbm{C}}
\newcommand{\bbD}{\mathbbm{D}}
\newcommand{\bbE}{\mathbbm{E}}
\newcommand{\bbF}{\mathbbm{F}}
\newcommand{\bbG}{\mathbbm{G}}
\newcommand{\bbH}{\mathbbm{H}}
\newcommand{\bbI}{\mathbbm{I}}
\newcommand{\bbJ}{\mathbbm{J}}
\newcommand{\bbK}{\mathbbm{K}}
\newcommand{\bbL}{\mathbbm{L}}
\newcommand{\bbM}{\mathbbm{M}}
\newcommand{\bbN}{\mathbbm{N}}
\newcommand{\bbO}{\mathbbm{O}}
\newcommand{\bbP}{\mathbbm{P}}
\newcommand{\bbQ}{\mathbbm{Q}}
\newcommand{\bbR}{\mathbbm{R}}
\newcommand{\bbS}{\mathbbm{S}}
\newcommand{\bbT}{\mathbbm{T}}
\newcommand{\bbU}{\mathbbm{U}}
\newcommand{\bbV}{\mathbbm{V}}
\newcommand{\bbW}{\mathbbm{W}}
\newcommand{\bbX}{\mathbbm{X}}
\newcommand{\bbY}{\mathbbm{Y}}
\newcommand{\bbZ}{\mathbbm{Z}}
\newcommand{\bba}{\mathbbm{a}}
\newcommand{\bbb}{\mathbbm{b}}
\newcommand{\bbc}{\mathbbm{c}}
\newcommand{\bbd}{\mathbbm{d}}
\newcommand{\bbe}{\mathbbm{e}}
\newcommand{\bbf}{\mathbbm{f}}
\newcommand{\bbg}{\mathbbm{g}}
\newcommand{\bbh}{\mathbbm{h}}
\newcommand{\bbi}{\mathbbm{i}}
\newcommand{\bbj}{\mathbbm{j}}
\newcommand{\bbk}{\mathbbm{k}}
\newcommand{\bbl}{\mathbbm{l}}
\newcommand{\bbm}{\mathbbm{m}}
\newcommand{\bbn}{\mathbbm{n}}
\newcommand{\bbo}{\mathbbm{o}}
\newcommand{\bbp}{\mathbbm{p}}
\newcommand{\bbq}{\mathbbm{q}}
\newcommand{\bbr}{\mathbbm{r}}
\newcommand{\bbs}{\mathbbm{s}}
\newcommand{\bbt}{\mathbbm{t}}
\newcommand{\bbu}{\mathbbm{u}}
\newcommand{\bbv}{\mathbbm{v}}
\newcommand{\bbw}{\mathbbm{w}}
\newcommand{\bbx}{\mathbbm{x}}
\newcommand{\bby}{\mathbbm{y}}
\newcommand{\bbz}{\mathbbm{z}}
\newdir{ >}{{ }*!/-5pt/@{>}}
\eta_A : A \rightarrow (S \times A)^S, \qquad (\eta_A(a))(s) = (s,a)
\end{equation*} と定義される. 結果の $(s,a)$ を, 入力 $a \in A$ と現在の状態 $s \in S$ の対と考える.
また, 余単位 (counit) $\epsilon : S \times (-)^S \Rightarrow \Un{\Set}$ は 状態 $s \in S$ と, 各状態における入力を与える関数 $f : S \rightarrow A$ とに対して,
\begin{equation*}
\epsilon_A : S \times A^S \rightarrow A, \qquad \epsilon_A(s,f) = f(s)
\end{equation*} と定義される. つまり, 各 $\epsilon_A : S \times A^S \rightarrow A$ は各状態における入力を与える評価関数 (evaluation function) と見なせる.
3 つ組 $((S\times-)^S,\eta,\mu)$ は図式に対する計算により
\begin{equation*}
\begin{xy}
\xymatrix@=36pt {
(S\times(S\times(S \times A)^S)^S)^S
\ar[r]^(.55){(S\times\mu_A)^S}
\ar[d]_{\mu_{(S \times A)^S}}
& (S\times(S \times A)^S)^S ->
\ar[d]^{\mu_A} \\
(S\times(S \times A)^S)^S
\ar[r]_{\mu_A}
& (S \times A)^S
}
\end{xy}
\qquad
\begin{xy}
\xymatrix@=36pt {
(S \times A)^S \ar[r]^(.4){\eta_{(S \times A)^S}} \ar[dr]_{\Un{(S \times A)^S}}
& (S\times(S \times A)^S)^S \ar[d]^{\mu_A}
& (S \times A)^S \ar[l]_(0.4){(S\times\eta_A)^S} \ar[dl]^{\Un{(S \times A)^S}} \\
& (S \times A)^S &
}
\end{xy}
\end{equation*}
を可換にし, 実際にモナドになっていることがわかる.
この余単位 $\epsilon$ を用いて, モナド $S\times(-)^S$ の積 (multiplication) $\mu : (S\times(S\times(-)^S))^S \Rightarrow (S\times-)^S$ を明示的に書き下してみる.
$\mu=(-)^S\epsilon(S\times-) : (S\times(S \times -)^S)^S \rightarrow (S\times-)^S$ である. $u \in (S\times(S \times A)^S)^S$ をとり, 状態 $s \in S$ に対して,
\begin{equation*}
u(s) = (u_1(s),u_2(s))
\end{equation*} とおく. $u_1(s) \in S$, $u_2(s) : S \rightarrow S \times A$ である.
$u_1(s)$ は状態 $s$ に対する新しい状態, $u_2(s)$ は状態 $s$ に対する新たな状態と入力の対を与える.
このとき,
\begin{equation*}
\mu_A(u)(s) = ((-)^S\epsilon(S\times-))_A(u))(s) = ((\epsilon_{S \times A})^S(u))(s) = \epsilon_{S \times A}(u(s)) = \epsilon_{S \times A}(u_1(s),u_2(s)) = u_2(s)(u_1(s))
\end{equation*} となる.
Kleisli 圏における対象は集合であり, この集合を状態の集まりであると考える.
Kleisli 圏 $\Set_{(S\times-)^S}$ における射 $f : A \rightsquigarrow B$ は $\rC$ における関数 $f : A \rightarrow (S \times B)^S$ であるが, この関数 $f$ は $f : A \times S \rightarrow B \times S$ と見なせる.
入力 $a$ と現在の状態 $s$ の対 $(a,s) \in A \times S$ に対して
\begin{equation*}
f(a,s) = (f_s(a), s'(a,s))
\end{equation*} とおく. このとき, $f_s(a)$ は入力と状態の対 $(a,s)$ によって決まる出力 $f_s(a) \in B$ と, アップデートされた状態 $s'(a,s) \in S$ の対と考えられる.
たとえば, 関数型プログラミング言語 Haskell においては, このアップデートされた状態 $s'(a,s)$ は計算 $f$ の「副作用 (side effect)」として扱われる.