profunctor の線形分解

$
\newcommand{\CC}{\mathbb{C}}
\newcommand{\DD}{\mathbb{D}}
\newcommand{\EE}{\mathbb{E}}
\newcommand{\NN}{\mathbb{N}}
\newcommand{\End}[3]{\overline{\bigotimes_{#1\in\mathbb{#2}}}#3}
\newcommand{\CoEnd}[3]{\overline{\bigoplus_{#1\in\mathbb{#2}}}#3}
$

# 線形profunctor
[これまでの記事](https://qiita.com/289CH4n/items/fabdbe5ea7f073640b4f)では，profunctorの記法やエンド，コエンドによる合成の記法などを紹介した．

これらはには元ネタが存在し，一部界隈でアインシュタインの縮約記法と呼ばれているものである．

今回の記事では，これらの記法からさらに発展し，線形代数の一次結合のように，profunctorを表す記法を紹介する．

## アインシュタインの縮約記法
アインシュタインの縮約記法は，テンソルの縮約を簡潔に表現する記法である．

通常，$\CC$上のベクトル空間$V$の元$v$は$V$の基底$\{e_i\}$を用いて，
```math
v = v_1 e_1 + v_2 e_2 + v_3 e_3
```
と表される．

これは$3$次元の場合であるが，特に一般の次元に対して考えたいときは，$i$を添字として，
```math
v = \sum_{i=1}^n v_i e_i
```
と表す．

ここで，$v$が何次元のベクトルであるか文脈で明らかな場合や，$v$の次元に依存しない性質を示したい場合は，$v$の次元を省略することがある．
```math
v = \sum_{i} v_i e_i
```
ここまで省略するともはや$\sum$の記号も省略したくなってくる．

そこで新しいルールとして，式中に同じ添え字を持つ項を見つけたら，その項の添え字を変化させながら和を取るというルールを導入する．

つまり，
```math
\begin{align*}
  v_i e_i =& \sum_i v_i e_i \\
  v_{ij} e_i e_j =& \sum_{ij} v_{ij} e_i e_j \\
  v_{ijk} e_i e_j =& \sum_{ij} v_{ijk} e_i e_j
\end{align*}
```
という具合である．

このルールにより，行列の積などでは，行列の積を取る順番を明示する必要がなくなる．
行列の積は通常次のように計算される．
```math
AB = (a)_{ij} (b)_{jk} = \sum_{j} (a)_{ij} (b)_{jk}
```
これもアインシュタインの縮約記法を用いると，行列は$2$つの添え字を持つ文字として表されるので，
```math
AB = a_{ij} b_{jk}
```
であり，$a_{ij} b_{jk}$であっても$b_{jk} a_{ij}$であっても$j$について和を取るので，順序を気にせずに計算することができる．
## 双対ベクトル空間
ベクトル空間$V$が与えられたとき，$V$上の線形写像$f: V \to \CC$全体の集合を$V^*$と書く．

$V^*$は$V$の双対ベクトル空間と呼ばれ，また$\CC$上のベクトル空間となる．

$V$の元$v$に対して，次のような写像$e^i: V \to \CC$を考える．
```math
e^i(v) = e^i(v_j e_j) = e^i\left(\sum_j v_j e_j\right) = v_i
```
この写像は$v$の第$i$成分を取り出す写像である．

この写像は線形写像であるので，$V^*$の元となる．

また，$\{e^i\}_i$は$V^*$の基底となる．

先ほど$e^i$の引数として$e^i(v)$と記したが，通常括弧は付けずに縮約記法を用いて$e^i v_j e_j$と書く．

$e^i$には次のような性質がある．
```math
e^i e_j = \delta^i_j
```
ここで$\delta^i_j$はクロネッカーのデルタであり，$i=j$のとき$1$，それ以外のとき$0$となる．
## profunctor
これまでのおさらいとして，profunctorとその記法を示す．

profunctorは次のように定義される．
|profunctor とは双函手であり，$\CC^{op}\times\DD\to \text{Set}$の形を持つ関手である．|
|:-|

profunctor $F: \CC^{op}\times\DD\to \text{Set}$は，$\CC$の対象$X$と$\DD$の対象$Y$に対して，$F(X,Y)$が集合である．

これらの事柄を通常の関手の記法で書くと次のようになる．
```math
X\in \CC^{op}, Y\in \DD \vdash F(X,Y)\in \text{Set}
```
しかし，今回導入する記法では，$F$の共変成分を$F$の右下に，反変成分を$F$の右上に書く．
```math
X\in \CC^{op}, Y\in \DD \vdash F_{(Y)}^{(X)}\in \text{Set}
```
また，値を代入していない状態の$F$は，$F$の右下と右上に値域となる圏を書く．
```math
\begin{align*}
  &F_\DD^\CC : \CC^{op}\times\DD\to \text{Set} \\
  &F_{(Y)}^\CC : \CC^{op}\to \text{Set} \\
  &F_\DD^{(X)} : \DD\to \text{Set}
\end{align*}
```
profunctor $F_\CC^\DD$ と $G_\DD^\EE$の合成は，次のようになる．
## エンドとコエンド
双函手$F: \CC^{op}\times\CC\to \DD$に対して，$x \in \DD$から$F$への wedge とは
次のような図式を可換にする射の組$\sigma=\{\sigma_X: x\to F(X,X)\}_X$である．
```math
\begin{array}{ccc}
  x &\overset{\sigma_A}{\longrightarrow} &F(A,A) \\
  \sigma_B\downarrow & &\downarrow \\
  F(B,B) &\longrightarrow &F(A,B)
\end{array}
```
$\sigma$が wedge であることを，$\sigma: x\overset{\cdot}{\to} F$と書く．

同様に，$F$から$x\in \DD$への cowedge とは次のような図式を可換にする射の組$\sigma=\{\sigma_X: F(X,X)\to x\}_X$である．
```math
\begin{array}{ccc}
  x &\overset{\sigma_A}{\longleftarrow} &F(A,A) \\
  \sigma_B\uparrow & &\uparrow \\
  F(B,B) &\longleftarrow &F(A,B)
\end{array}
```
$\sigma$が cowedge であることを，$\sigma: F\overset{\cdot}{\to} x$と書く．

$F$の wedge $\lambda: e\overset{\cdot}{\to} F$と$\sigma: x\overset{\cdot}{\to} F$が存在し，一意的な射$\alpha: x\to e$が存在して，次の図式を可換にするとき，
```math
\begin{array}{cccc}
  &e &\overset{\lambda_A}{\longrightarrow} &F(A,A) \\
  &\alpha\downarrow & &\downarrow id \\
  &x &\overset{\sigma_A}{\longrightarrow} &F(A,A)
\end{array}
```
$F$はエンド$(e,\lambda)$を持つという．
特に$e$を次のように表す．
```math
e = \End{X}{C}{F(X,X)}
```
同様に，cowedge $\sigma: F\overset{\cdot}{\to} c$と$\lambda: c\overset{\cdot}{\to} F$が存在し，一意的な射$\alpha: c\to x$が存在して，次の図式を可換にするとき，
```math
\begin{array}{cccc}
  &c &\overset{\lambda_A}{\longleftarrow} &F(A,A) \\
  &\alpha\uparrow & &\uparrow id \\
  &x &\overset{\sigma_A}{\longleftarrow} &F(A,A)
\end{array}
```
$F$はコエンド$(c,\sigma)$を持つという．
特に$c$を次のように表す．
```math
c = \CoEnd{X}{C}{F(X,X)}
```
## profunctorの合成
profunctor $F_\CC^\DD$ と $G_\DD^\EE$のように添え字に同じ圏且つ共変成分と反変成分を持つ場合，これらの合成は次のようになる．
```math
F_\CC^\DD G_\DD^\EE = \CoEnd{X}{D}{F_\CC^{(X)}\times G_{(X)}^\EE} \\
```
ここで$\times$は直積を表す．

以後，直積を省略して$F_\CC^{(X)}G_{(X)}^\EE$と書く．

この形は先ほどの行列の積の形
```math
a_{ij} b_{jk} = \sum_j a_{ij} b_{jk}
```
と同じ形をしている．

米田埋め込みを次のように表す．
```math
\begin{align*}
  \Delta^\mathbb{C}_{(a)}&:=\text{Hom}_\mathbb{C}(-,a)\\
  \Delta^{(a)}_\mathbb{C}&:=\text{Hom}_\mathbb{C}(a,-)
\end{align*}
```
このとき，$\Delta$には[この記事](https://qiita.com/289CH4n/items/fabdbe5ea7f073640b4f)次のような性質があった．
```math
F_{(d)}=\overline{\bigoplus_{c\in\mathbb{C}}}\Delta_{(d)}^{(c)}F_{(c)}=\Delta_{(d)}^\mathbb{C}F_\mathbb{C}
```
両辺だけ比較してみると，次のような関係がある．
```math
\Delta_{(d)}^\CC F_\CC = F_{(d)}
```
この関係は双対空間の基底$e^i$の性質
```math
e_i v = v_i
```
と同じ形をしている．
## 直和，直積とコエンド
直和は圏論において余連続函手を導くので，余極限(コエンド)と交換する．

つまり，次が成り立つ．
```math
\CoEnd{X}{C}{\left(F_{(X)}^{(X)} + G_{(X)}^{(X)}\right)} = \CoEnd{X}{C}{F_{(X)}^{(X)}} + \CoEnd{X}{C}{G_{(X)}^{(X)}}
```
ここで，$+$は集合の非交和を表す．

集合$R$で
```math
\CoEnd{c}{\CC}{RF_{(c)}^{(c)}} = R\CoEnd{c}{\CC}{F_{(c)}^{(c)}}
```
が成り立つ．
## 一次独立
$n$離散圏$\DD_n$とは，$n \in \NN$とし，$n$個の対象$\{1,2,...,n\}$とそれらの恒等射のみからなる圏である．

$d_1 \neq d_2\in\DD_n$に対して，次が成り立つ．
```math
\begin{align*}
  &\Delta_{(d_1)}^{\DD_n} \Delta_{\DD_n}^{(d_2)} = \Delta_{(d_1)}^{(d_2)} = \text{Hom}_{\DD_n}(d_1,d_2) = \{\} \\
  &\Delta_{(d_1)}^{\DD_n} \Delta_{\DD_n}^{(d_1)} = \Delta_{(d_1)}^{(d_1)} = \text{Hom}_{\DD_n}(d_1,d_1) = \{id_{d_1}\} = *
\end{align*}
```
ここで，$\DD_n$の上のfunctor $F_{\DD_n}$を考える．

$\Delta_{(i)}^{\DD_n}$ を $E_i^{\DD_n}$，$\Delta_{\DD_n}^{(i)}$ を $E_{\DD_n}^i$ と書き，函手として解釈する．
```math
\begin{align*}
  E_1^{\DD_n} F_{\DD_n} &= \CoEnd{d}{\DD_n}{E_1^{(d)}F_{(d)}} = F_{(1)} \\
  E_2^{\DD_n} F_{\DD_n} &= \CoEnd{d}{\DD_n}{E_2^{(d)}F_{(d)}} = F_{(2)} \\
  &\vdots \\
  E_n^{\DD_n} F_{\DD_n} &= \CoEnd{d}{\DD_n}{E_n^{(d)}F_{(d)}} = F_{(n)}
\end{align*}
```
ここで，任意の$d\in\DD_n$に対して，次を考える．
```math
F_{(1)} E_{\DD_n}^1 + F_{(2)} E_{\DD_n}^2 + \cdots + F_{(n)} E_{\DD_n}^n |_{\DD_n = (d)} = F_{(1)} E_d^1 + F_{(2)} E_d^2 + \cdots + F_{(n)} E_d^n = F_{(d)}
```
また，$id_d$に対して
```math
F_{(1)} E_{\DD_n}^1 + F_{(2)} E_{\DD_n}^2 + \cdots + F_{(n)} E_{\DD_n}^n |_{\DD_n = (id_d)} = F_{(1)} E_{id_d}^1 + F_{(2)} E_{id_d}^2 + \cdots + F_{(n)} E_{id_d}^n = F_{(id_d)} = F_{(id_d)}
```
よって，$F_{\DD_n}$は$F_{(d)}$の一次結合で表すことができる．

アインシュタインの縮約記法に倣って，直積を省略すると，
```math
\begin{align*}
  F_{\DD_n} &= F_d E_{\DD_n}^d \\
  F^{\DD_n} &= F^d E_d^{\DD_n}
\end{align*}
```
このように書き表すことができる．
## まとめ
以上，profunctorの合成やエンド，コエンドの性質をアインシュタインの縮約記法に倣って表現する方法を紹介した．

細かな証明や議論が欠けている部分もあるので，不審な点はどしどし指摘していただきたい．