Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

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

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

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

多項式関手とスケマティックなリントンの定理

リントンの定理(「リントンの定理」参照)に出てくるリントン/ローヴェア・モナドは、ある種の多項式モナドになってるんじゃなかろうか。スケマティックなセッティングでも同じことが成立するのでは? これもたわ言、あるいは与太話かも知れない。$`
\newcommand{\cat}[1]{ \mathcal{#1} }
\newcommand{\mbf}[1]{ \mathbf{#1} }
\newcommand{\mrm}[1]{ \mathrm{#1} }
\newcommand{\In}{ \text{ in }}
\newcommand{\hyp}{\text{-} }
\newcommand{\dimU}[2]{ {{#1}\!\updownarrow^{#2}} }
`$

内容:

係数付き多項式関手

コレクション関手の新しい定義 // コンテナの復習」に書いたように、「コンテナ」「ファミリー」「多項式」「バンドル」は同義語です(ただし、バンドル-ファミリー対応でバンドルとファミリーは同一視するとして)。

  コンテナ = ファミリー = 多項式 = バンドル

コレクション関手の新しい定義 // コンテナの同伴関手」において、コンテナの同伴関手〈associated functor of a container〉を定義しましたが、これは多項式関手〈polynomial functor〉と言っても同じです。なんなら、ファミリーの同伴関手とかバンドルの同伴関手と言ってもかまいません

$`F:X \to |\mbf{Set}|`$ *1をコンテナ〈ファミリー | 多項式 | バンドル〉だとして、対応する関手は次のようでした。

$`\quad \widetilde{F}(y) := \sum_{x\in X} y^{F(x)} \;: \mbf{Set} \to \mbf{Set} \In \mbf{CAT}`$

続・有向コンテナと多項式コモナド: 錯綜整理」では、多項式に対するコンテナ $`(F(x))_{x\in X}`$ を「多項式の係数系」と呼んだのですが、これは良くなかった。多項式関手の表示を見ればわかるように、$`F(x)`$ は変数〈米田不定元〉の右肩に載ってます。係数ではなくて、ベキ〈power〉の指数部〈exponent〉です。

$`(F(x))_{x\in X}`$ は係数系〈coefficient system | system of coefficients〉じゃなくて指数部系〈expnent system | system of exponents〉ですがね。ペキ関手が表現可能関手〈representable functor〉で、ベキ関手を定義する指数部は表現対象〈representing object〉です。

“指数部系 = コンテナ”とは別に係数系 $`A`$を考えるなら、次のような写像です。

$`\quad A : |\cat{S}| \to |\mbf{Set}|`$

ここで $`\cat{S}`$ は、$`\cat{S} \subseteq \mbf{Set}`$ で、コンテナ $`F`$ の値が $`\cat{S}`$ に入るような部分圏です。つまり、次が成立するとします。

$`\quad \forall x\in X.\, F(x)\in |\cat{S}|`$

$`\cat{S} = \mbf{FinSet}`$ がよく出てくる例です。

さて、係数系 $`A`$ を持つ多項式は次の形だとします。

$`\quad \sum_{x\in X} A(F(x))\times y^{F(x)} \;: \mbf{Set} \to \mbf{Set} \In \mbf{CAT}`$

この形で定義される関手を係数付き多項式関手〈polynomial functor with coefficients〉と呼ぶことにします。係数付き多項式関手は、コンテナ $`F`$ と係数系 $`A`$ により決まります。しかし、関手に対して、上の形の表示が一意的に決まるとは限りません。

係数付き多項式モナド

$`\cat{S}`$ を集合圏〈集合達の圏〉 $`\mbf{Set}`$ の部分圏だとします(例えば $`\cat{S} = \mbf{FinSet}`$ )。コンテナ $`F = (X, F)`$ は、$`\cat{S}`$ に値をとるとします。

$`\quad F : X \to |\cat{S}| \In \mbf{SET}\\
\quad \text{where }|\cat{S}| \subseteq |\mbf{Set}|
`$

指数部系となるコンテナ $`F`$ は固定して、様々な係数系 $`A: |\cat{S}| \to |\mbf{Set}|`$ を考えることにします。$`F`$ と $`A`$ から決まる係数付き多項式関手は次のように書くことにします。

$`\quad \widetilde{A}_F(y) := \sum_{x\in X} A(F(x))\times y^{F(x)}`$

典型的な事例を考えると:

  • $`X`$ は、インデキシング集合 (Indexing set)
  • $`F`$ は、インデックスごとに“関数のアリティ”を与える写像 (Arity)
  • $`A`$ は、アリティごとに“関数項の集合”を与える写像 (Function terms)

なので、文字の使い方は逆ですね。「$`A`$ を $`F`$ に」「$`F`$ を $`A`$ に」「$`X`$ を $`I`$ に」とリネームすると:

$`\quad \widetilde{F}_A(y) := \sum_{i\in I} F(A(i))\times y^{A(i)}`$

変数〈米田不定元〉に集合 $`V`$ を代入した具体値は:

$`\quad \widetilde{F}_A(V) := \sum_{i\in I} F(A(i))\times V^{A(i)}`$

$`F(A(i))\times V^{A(i)}`$ は、$`V`$-値の実引数〈actual arguments〉と関数項のあらゆる組み合わせ、つまり、あらゆる関数呼び出し形式の集合です。

フォーマルには、文字の使い方はどうでもいいので、$`F`$ と$`A`$ をどう使おうと議論に関係ないです。特定の事例/メンタルモデルに合わせるのは勝手にどうぞ。

$`\widetilde{A}_F`$ でも $`\widetilde{F}_A`$ でもかまいませんが、係数付き多項式関手があったとします。その係数付き多項式関手を台関手とするモナドは係数付き多項式モナド〈polynomial monad with coefficients〉と呼ぶことにします。

係数付き多項式モナドでは、モナド乗法とモナド単位である自然変換にも条件を付ける必要があるかも知れません。例えば、デカルト自然変換であることを要請するとか。デカルト自然変換とは、自然性を与える可換四角形がプルバック四角形〈デカルト四角形〉である自然変換です。

2つの予想

ここからは怪しい話になります。いくつかの具体例を見て、「ひょっとして、こんなんかも?」と思ったことです。

まず、係数系が $`A`$ である係数付き多項式関手がモナドの台関手となっているなら、$`A`$ はオペラッド構造を持つだろう、と予想できます。また逆に、$`A`$ 上にオペラッド構造があれば、それから係数付き多項式モナドを作れるでしょう。

上記の予想よりもっと一般的なことを誰かが証明していた気がするので、一般的定理の特殊ケースに過ぎないだろうと思います。(ちゃんと確認してないので確信はないけど。)

次に、スケマティック(「スケマティック」参照)なリントンの定理(「リントンの定理: 概要、実例、注意事項」も参照)に出てくるリントン/ローヴェア・モナドは、係数付き多項式モナドの一般化で与えられるんじゃないのかな。スケマティックなセッティングでは、集合圏上のモナドってわけにはいきませんが、P-バンドル(「一般化ハイパーグラフ → P-バンドル、P-ファミリー」参照)達の圏上の係数付き多項式モナドのような気がする。

そのことは、「リントン/ローヴェア・モナド構成の明示公式」の明示公式の形がほぼ係数付き多項式なので、明示公式を精密化すれば分かることだと思います。

これら2つの予想を組み合わせると、スケマティックなリントン/ローヴェア・モナドの係数系はオペラッド構造を持つはずだけど、オペラッド構造は具体的に作れそうです。

「ひょっとして、こんなんかも?」なんだけど、「こんなんだといいな」という願望も入っています。

*1:ほんとは、$`F:\dimU{X}{1} \to \mbf{Set} \In \mbf{CAT}`$ と書いたほうがいいです。