このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

スパイダー付き圏における仮想スパイダー

スパイダー付き圏を定義したので、以前から使っていた描画技法の話ができますね(ニコ)。現実には存在しない射だけど、ストリング図では“射であるかのごとく”に描くと便利なもの -- 仮想スパイダーの話をします。$`%
\newcommand{\cat}[1]{ \mathcal{#1} }
\newcommand{\mrm}[1]{ \mathrm{#1} }
\newcommand{\id}{ \mathrm{id} }
\newcommand{\In}{ \text{ in } }
\require{color}
\newcommand{\Keyword}[1]{ \textcolor{green}{\text{#1}} }%
\newcommand{\For}{\Keyword{For } }%
\newcommand{\Let}{\Keyword{Let } }%
\newcommand{\Declare}{\Keyword{Declare } }%
\newcommand{\Define}{\Keyword{Define } }%
%`$

内容:

コンパクト閉圏の場合

$`\cat{C}`$ をコンパクト閉圏だとします。コンパクト閉圏の単位と余単位は、象形文字で書くことにします。ストリング図描画方向は上から下を仮定します。行きがかり上、双対ペアの左右も多数派と逆です(どうでもいいハナシだけど)。

  • 単位 $`\cap_X = \eta_X : I \to X\otimes X^* \In \cat{C}\; (X\in |\cat{C}|)`$
  • 余単位 $`\cup_X = \varepsilon_X : X^* \otimes X \to I \In \cat{C}\; (X\in |\cat{C}|)`$

コンパクト閉圏におけるカリー化/アンカリー化(随伴〈adjunction〉によるホムセット同型)は、単位/余単位を使って書けます。

$`\For A, B, C \in |\cat{C}|\\
\Let C^B := C\otimes B^*\\
\:\\
\Declare \mrm{Curry}_{A,B, C}:\cat{C}(A\otimes B, C) \to \cat{C}(A, C^B)\\
\For f \in \cat{C}(A\otimes B, C)\\
\Define \mrm{Curry}_{A,B, C}(f) := (\id_A \otimes \cap_B) ; (f \otimes \id_{B^*})\\
\:\\
\Declare \mrm{Uncurry}_{A,B, C}: \cat{C}(A, C^B) \to \cat{C}(A\otimes B, C) \\
\For g \in \cat{C}(A, C^B)\\
\Define \mrm{Uncurry}_{A,B, C}(g) := (g \otimes \id_B) ; (\id_{C} \otimes\cup_{B})
`$

カリー化を $`f^\cap`$ 、アンカリー化を $`g_\cup`$ と略記すると、互いに逆であることは次のように書けます。

  • $`(f^\cap)_\cup = {f^\cap}_\cup = f`$
  • $`(g_\cup)^\cap = {g_\cup}^\cap = g`$

$`{^\cap}_\cup,\, {_\cup}^\cap`$ が消えるのはニョロニョロ関係式〈snake {relation | equation | identity} 〉からです。

コンパクト閉圏は、規準的なトレース・オペレーターを持ちます。このトレース・オペレーターも、単位/余単位を使って書けます。

$`\For A, B, X \in |\cat{C}|\\
\:\\
\Declare \mrm{Tr}^X_{A,B}:\cat{C}(A\otimes X, B \otimes X) \to \cat{C}(A, B)\\
\For f \in \cat{C}(A\otimes X, B \otimes X)\\
\Define \mrm{Tr}^X_{A,B}(f) := (\id_A \otimes \cap_X) ; (f \otimes \id_{X^*}) ; (\id_B \otimes \cup_X )
`$

以上のようにコンパクト閉圏では、カリー化/反カリー化/トレースのような圏論的オペレーター〈圏論的コンビネータ〉が、スパイダー(恒等射、単位、余単位)と射の結合/射のモノイド積により具体的に表示できます。スパイダーを特別なワイヤーで描くストリング図との相性も非常に良いです。

射とオペレーターと仮想スパイダー

コンパクト閉圏の場合は特別に都合がいいのですが、一般的には、随伴によるホムセット同型やトレースがスパイダーにより露骨に〈explicitly〉書けるわけではありません。モノイド閉圏やトレース付きモノイド圏の定義では、スパイダー(特別な射)を使うのではなくて、オペレーターの振る舞いを公理化します。

一般的トレース付きモノイド圏の場合、コンパクト閉圏の場合とは違って、曲がったワイヤーに相当するスパイダー(特別な射)は存在しません(正確に言えば、存在を仮定していません)。しかし、ストリング図を描くときは曲がったワイヤーを描いています。その例は例えば以下の過去記事を眺めてください。

デカルト閉圏の場合でも、僕は、曲がったワイヤーと指数ケーブル($`C^B`$ を表すケーブル)を使ってカリー化を描いています。

射があるわけではないのに、スパイダー風に描いている描画要素を仮想スパイダー〈virtual spider〉と呼ぶことにします。

*1

仮想スパイダーは射ではない事は心得ている必要がありますが、ストリング図を描く際にはとても便利です。

よく使う便利な仮想スパイダーとして、マルコフ圏における条件化オペレーターを表す仮想スパイダーを紹介します。マルコフ圏 $`\cat{C}`$ 上に(一般化された)条件化オペレーター $`\mrm{Condit}`$ が備わっているとします。

$`\quad \mrm{Condit}^X_{A, B}: \cat{C}(X, A\otimes B) \to \cat{C}(A\otimes X, B)`$

条件化オペレーター $`\mrm{Condit}^X_{A, B}`$ に対応す射は存在しませんが、$`\cup_A`$ という仮想スパイダーを準備すると、条件化オペレーターは次のように書き下すことができます(あくまで仮想的にですが)。

$`\quad \mrm{Condit}^X_{A, B}(f) := (\id_A\otimes f);(\cup_A \otimes \id_B)`$

仮想スパイダー $`\cup_A`$ の描き方は「ワイヤーベンディングと条件化オペレーター 」で説明しています。ほんとのスパイダーと区別するために横線を添えています。

仮想スパイダーの使用は、暗黙的に既に常用されている描画法ですが、名前を付けて明示的に取り上げる意味はあるでしょう。なので取り上げました。