\)
2024-08-30追記
この件について新しい記事を書きました。 この記事は記録のために残しているだけとなり、 次の記事以降では用語の定義や記法が異なるようになるため、ご注意ください。
「射の分割」ができる圏
次のような条件を満たす小圏Cについて調べている。
Cの対象の集合をC_0、射の集合をC_1とする。 CのホムセットをC_1(a,b)と書く。
射のうち始域がaであるものを集めた集合をC_1(a) = \bigcup_{b} C_1(a,b)と書くことにする。
対象の集合C_0は可換モノイドになっている。
- 対象0 \in C_0を持つ。(これは圏としての始対象や零対象の意味ではない。)
- Cの対象の集合は結合的な2項演算(+):C_0\times C_0 \to C_0を持つ。
- この2項演算は0を単位元とする: a + 0 = 0 + a = a
- この2項演算は可換である: a + b = b + a
- ただし、Cがモノイド圏になることまでは要求しない。+が関手のような性質を持ったりする必要はない。
a,bを任意の対象とする。a + bを始域とする射t \in C_1(a + b)へ射\frac{a}{a,b}t\in C_1(a)を対応させる演算\frac{a}{a,b}(\mathord{-})\colon C_1(a + b)\to C_1(a)を持つ。この演算(の族)を射の分割と呼ぶことにする。
可換性から、\frac{b}{b,a}(\mathord{-})\colon C_1(a+b)\to C_1(b)である。
射の分割はC_0のモノイド演算と次の意味で整合的であることを要求する。
- 任意のt\in C_1(a) = C_1(a + 0)に対して、\frac{a}{a,0}t = t
- 任意のa,b,c \in C_0とt \in C_1(a + b + c)に対して、\frac{a}{a,b+c}t = \frac{a}{a,b}\left(\frac{a+b}{a+b,c}t\right)
次の性質を満足するような射の分割(を持つ圏)に特に興味がある。これらの性質を満たすものを仮に”properな”射の分割(を持つ圏)と呼ぶことにする。
C_1(0) = C_1(0,0)、すなわち0からそれ以外の対象への射は存在しない。
恒等射の分割は恒等射である。すなわち次式が成り立つ。
\begin{equation*} \frac{a}{a,b}\mathop{\mathrm{id}}_{a+b} = \mathop{\mathrm{id}}_a \end{equation*}
終域がcである射t \in C_1(a+b,c)を次のように分割したとする。
\begin{align*} t_a &= \frac{a}{a,b}t \in C_1(a)\\ t_b &= \frac{b}{b,a}t \in C_1(b) \end{align*}
このとき、t_aとt_bの終域がどの対象になるかは決まっていない。(a,b,cによって決まることさえ保証しなくてよい。)しかし、それらの終域をモノイド演算で足し合わせるとcに戻ることは要求する。
\begin{equation*} \mathop{\mathrm{cod}}(t_a) + \mathop{\mathrm{cod}}(t_b) = \mathop{\mathrm{cod}}(t) = c \end{equation*}
以下のように合成できる射t,uがあるとする。
\begin{CD} {a+b} @>t>> c @>u>> d \end{CD}
このとき、以下の等式が成り立つ必要がある。
\begin{equation*} \frac{a}{a,b}\left(t;u\right) = \left(\frac{a}{a,b}t\right); \left(\frac{c_a}{c_a,c_b}u\right) \end{equation*}
ただし、c_a, c_bはtの射の分割それぞれの終域とする。
\begin{align*} c_a &= \mathop{\mathrm{cod}}\left(\frac{a}{a,b}t\right) \\ c_b &= \mathop{\mathrm{cod}}\left(\frac{b}{b,a}t\right) \end{align*}
前項で要求した性質よりc_a + c_b = cであるため、cを始域とする射uをc_a,c_bで分割することができる。
なぜこんなものを考えているのか
最近考えていることの一つに、多項式Comonad
が小圏と対応すること1がある。ここで、Comonad
に加えてApplicative
のような演算2をサポートする型クラスComonadApplyを考えてみる。Comonad
と小圏の対応を通じてApplicative
の演算を小圏での表現に送り込むと、「対象の集合C_0の(関手的ではない)モノイド演算」「射の分割」ができる。また、以下のようにComonad
の演算とApplicative
の演算が両立することを要求するならば、それは「射の分割」に対するさらなる性質の要求と読み替えることができる。
pure a) = a -- free theorem
extract (pure a) = pure (pure a)
duplicate (<*> y) = extract x (extract y)
extract (x <*> y) = (<*>) <$> duplicate x <*> duplicate y duplicate (x
これを単純のため、可換なApplicative
に限って考えて得たものが、上記の「射の分割」の定義である。
(可換に限らなくてもできるが、書き下すのが非常に面倒)
“properな”射の分割の定義は、このComonad
の演算とApplicative
の演算が両立する条件を翻訳したものである。
Applicative
の構造をあわせもつComonad
についてはこの論文を大いに参考にしている。