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

ご連絡は上記 X アカウントに DM にてお願いします。

参照用 記事

コレクション関手の新しい定義

有限コレクション: 再配置の圏から」で提案した有限コレクションの定義、我ながら「これは良いな」と思ってます。が、カッコよさ、スマートさが足りてないですね。

発想や内容に変わりはないのですが、もっとカッコいい定義をしたいと思います。ある種のコンテナの同伴関手〈associated functor〉として有限コレクション関手を定義します。有限の条件をはずしても定義はできますが、実際に使いたい多くの場面では有限コレクションです。

有限コレクションのもとの定義(「有限コレクション: 再配置の圏から」の定義)が、今回の定義に吸収されることを示すのは意外と面倒なんで、また後日にします。$`
\newcommand{\cat}[1]{ \mathcal{#1} }
\newcommand{\mcl}[1]{ \mathcal{#1} }
\newcommand{\mbf}[1]{ \mathbf{#1} }
\newcommand{\mrm}[1]{ \mathrm{#1} }
\newcommand{\msf}[1]{\mathsf{#1}}
\newcommand{\msc}[1]{\mathscr{#1}}
\newcommand{\mbb}[1]{\mathbb{#1}}
%\newcommand{\BS}[1]{\boldsymbol{#1}}
%\newcommand{\o}[1]{ \overline{#1} }
\newcommand{\u}[1]{ \underline{#1} }
\newcommand{\id}{ \mathrm{id} }
\newcommand{\In}{ \text{ in }}
%\newcommand{\On}{ \text{ on }}
%\newcommand{\Iff}{ \Leftrightarrow }
%\newcommand{\Imp}{ \Rightarrow }
\newcommand{\op}{ \mathrm{op}}
\newcommand{\hyp}{\text{-} }
%\newcommand{\H}{\text{-} }
%\newcommand{\twoto}{\Rightarrow }
\newcommand{\base}[1]{ {{#1}\!\lrcorner} }
\newcommand{\dimU}[2]{ {{#1}\!\updownarrow^{#2}} }
`$

内容:

コンテナの復習

「コンテナ」(「圏論的コンテナ」参照)と「ファミリー」(「ファミリー構成モナド: 大規模構造の事例として」、「ファミリーの圏とシグマ関手・パイ関手」参照)と「多項式」(「多項式関手、図式ドクトリン、余多項式関手 」、「多項式関手とその表現図」参照)は同義語です。ただし、「多項式」と「多項式関手」は別物とします。バンドル-ファミリー対応(「バンドル-ファミリー対応 再考」参照)があるので、「バンドル」もほぼ同義語です。

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

どの呼び名を使おうと同じですが、ここでは「コンテナ」を使います。

コンテナ〈container〉とは、とある集合から“すべての集合達の集合”への写像〈関数〉のことです。つまり、$`F`$ がコンテナだとは:

$`\text{For }X \in |\mbf{Set}|\\
\quad F: X \to |\mbf{Set}| \In \mbf{SET}
`$

コンテナ $`F`$ を、その域〈domain〉$`X`$ と共に $`(X,F)`$ とも書きます。$`F = (X, F)`$ なので、$`(X, F)`$ は冗長な書き方ですが、集合 $`X`$ を先に決めてから、それに応じて $`F`$ を決めると考えれば依存ペアです。$`(X, F)`$ を、$`X`$ 上のコンテナ〈container on $`X`$〉であると言います。

$`X`$ 上のコンテナ達の圏を $`\mbf{Cont}[X]`$ と書きます。この圏は:

  • $`|\mbf{Cont}[X]| := \mbf{SET}(X, |\mbf{Set}|)`$
  • 射 $`\varphi : (X, F) \to (X, G) \In \mbf{Cont}[X]`$ は、
    $`\varphi_x:F(x) \to G(x) \In \mbf{Set} \text{ for }x\in X`$ という写像の族〈ファミリー〉

小さい集合または大きい集合*1を大きい離散圏とみなす関手を $`\mrm{DiscCAT}`$ とすると、次のように書けます。

$`\quad \mbf{Cont}[X] := \mbf{CAT}(\mrm{DiscCAT}(X), \mbf{Set} )
\; \in |\mbf{CAT}|
`$

$`\mbf{CAT}(\hyp, \hyp)`$ はホム圏です。ホム圏の射は自然変換です。$`\mbf{Cont}[X]`$ の射(コンテナのあいだの準同型射)は、特殊な自然変換です。

$`(X, F), (Y, G)`$ が2つのコンテナのとき、これらの間の準同型射は、ペア $`(f, \varphi)`$ で:

  • $`f:X \to Y \In \mbf{Set}`$
  • $`\varphi : (X, F) \to (X, f;G) \In \mbf{Cont}[X]`$

域を特定しないすべてのコンテナの圏を $`\mbf{Cont}`$ と書きます。インデックス付き圏のグロタンディーク構成を使えば次のように書けます。

$`\quad \mbf{Cont} := {\displaystyle \int_{\mbf{Set}} } \mbf{Cont}[\hyp]`$

グロタンディーク構成に伴う標準射影は $`(X, F) \mapsto X,\; (f, \varphi)\mapsto f`$ です。

コンテナのあいだの射を $`\alpha = (f, \varphi)`$ と書いたときは、次の記法を使います。

  • $`\base{\alpha} = f`$ (ベースパート)
  • $`\alpha^\flat = \varphi`$ (ファイバーパート)

ここで使った $`\base{\hyp}, (\hyp)^\flat`$ は、「Diag構成の変種とその書き方」で導入した記法で、ベースパート/ファイバーパートの概念がある射はこう書く約束です。グロタンディーク構成をすれば、この記法を使うことになります。

コンテナの同伴関手

$`F = (X, F)`$ をコンテナとします。$`F`$ に対して、集合圏〈集合達の圏〉 $`\mbf{Set}`$ 上の自己関手 $`\Phi`$ を対応させます。$`\Phi`$ の対象パートは次のように定義します。

$`\text{For }S\in |\mbf{Set}|\\
\quad \Phi(S) := {\displaystyle\sum_{x\in X}} \mbf{Set}(F(x), S)
`$

ここで、総和記号は集合族〈ファミリー〉の総直和です。

この形は、引数が射(関数)になってもそのまま使えます。

$`\text{For }f:S \to T \In \mbf{Set}\\
\quad \Phi(f) := {\displaystyle\sum_{x\in X}} \mbf{Set}(f, \id_S)
`$

このようにして定義される $`\Phi`$ を、コンテナ $`F`$ の同伴関手〈associated functor〉と呼ぶことにします。

コンテナを多項式と呼ぶときは、コンテナの同伴関手を多項式関手〈polynomial functor〉と呼びます。呼び方の違いだけで同じ概念です。使ってる文字達を、「$`\Phi`$ を $`P`$ に」「$`X`$ を $`I`$ に」「$`S`$ を $`X`$ に」「$`F`$ を $`A`$ に」取り替えて、関数集合を指数の形で書けば:

$`\quad P(X) := {\displaystyle\sum_{i\in I}} X^{A(i)}`$

こう書けば、多項式関手の雰囲気が出るでしょ。雰囲気だけの問題です。

コンテナ $`F`$ に対する同伴関手をできるだけ簡潔に書きたいので、チルダを上に乗せて $`\widetilde{F}`$ とします。対象も射も表す変数〈不定元〉を $`y`$ として、同伴関手は次のように書けます。

$`\quad \widetilde{F}(y) := {\displaystyle\sum_{x\in X}} \mbf{Set}(F(x), y)`$

$`F \mapsto \widetilde{F}`$ という対応は、関手の対象パートになっていて、“同伴関手を対応させる関手”は次のようです。

$`\quad \widetilde{(\hyp)} : \mbf{Cont} \to \mbf{CAT}(\mbf{Set}, \mbf{Set}) \In \mbf{CAT}`$

関手 $`\widetilde{(\hyp)}`$ の全体を構成するのは大変なので、詳細は割愛します。

コンテナの一般化

コンテナは、集合 $`X`$ から圏 $`\mbf{Set}`$ への“関手のようなもの”です。$`X`$ は0-圏で $`\mbf{Set}`$ は1-圏なので、圏の次元が一致しません。圏の次元を合わせるには次の方法があります。

  1. $`\mbf{Set}`$ の次元を 0 にする。$`|\mbf{Set}|`$ を使う。
  2. $`X`$ の次元を 1 にする。$`\mbf{DiscCAT}(X)`$ を使う。

一番目の方針だと、“関手のようなもの” は次のように書けます。

$`\quad F: X \to |\mbf{Set}| \In \mbf{SET}`$

ニ番目の方針だと、“関手のようなもの” は次のように書けます。

$`\quad F: \mrm{DiscCAT}(X) \to \mbf{Set} \In \mbf{CAT}`$

圏の次元が異なるとき、次元を合わせる方法が2つあるのです。

  1. 次元が高い圏の次元を落として揃える。
  2. 次元が低い圏の次元を上げて揃える。

0-次元の圏から1-次元の圏(集合圏)への“関手のようなもの”を、次元を合わせる方法により次のように呼ぶことにします。

  1. 域の次元 1 を落として、両方 0 に揃える場合: (0, 1↓)-コンテナ
  2. 余域の次元 0 を上げて、両方 1 に揃える場合: (0↑, 1)-コンテナ

今の話題はコンテナなので、余域は1-圏 $`\mbf{Set}`$ です。

(0, 1↓)-コンテナと(0↑, 1)-コンテナは同じですが、(0, 1↓)-コンテナの圏と(0↑, 1)-コンテナの圏は違った圏になります。(0, 1↓)-コンテナの圏は離散圏になってしまいます。しかし、対象だけを見るなら同じなので、通常、(0, 1↓)-コンテナと(0↑, 1)-コンテナの差は気にしません。

次元を上げると、例えば (1, 2↓)-コンテナと(1↑, 2)-コンテナは(対象だけ見ても)違う概念になります。以下に出てくる $`\dimU{\hyp}{n}`$ という記法については「圏の次元調整」を参照してください。

  • (1, 2↓)-コンテナは、$`F: \cat{C} \to \dimU{\mbf{CAT}}{1} \In \mbb{CAT}`$
  • (1↑, 2)-コンテナは、$`F: \dimU{\cat{C}}{2} \to \mbf{CAT} \In 2\mbb{CAT}`$

(1, 1)-コンテナは、次元の上げ下げは不要で、単に $`\cat{C} \to \mbf{Set}`$ という関手なので、余前層のことです。前層は (1op, 1)-コンテナと呼ぶことにします。上付きの op は、もちろん反対圏のことで、コンテナが反変関手になることを示します。

さらに、(1g, 1)-コンテナと(1gop, 1)-コンテナは、域が亜群であるコンテナ(“関手のようなもの”)です。g は groupoid の g です。(1g, 1)-コンテナは、域が亜群である余前層、(1gop, 1)-コンテナは、域が亜群である前層です。

まとめると:

  • (0, 1↓)-コンテナ : 通常のコンテナ (0-圏から、次元を下げた1-圏への0-関手)
  • (0↑, 1)-コンテナ : 通常のコンテナ (次元を上げた0-圏から、1-圏への1-関手)
  • (1, 1)-コンテナ : 余前層 (1-圏から1-圏への1-関手)
  • (1op, 1)-コンテナ : 前層 (1-圏から1-圏への反変1-関手)
  • (1g, 1)-コンテナ : 域が亜群である余前層 (1-亜群から1-圏への1-関手)
  • (1gop, 1)-コンテナ : 域が亜群である前層 (1-亜群から1-圏への反変1-関手)
  • (1, 2↓)-コンテナ : 厳密な余インデックス圏 (1-圏から、次元を下げた2-圏への1-関手)
  • (1op, 2↓)-コンテナ : 厳密なインデックス圏 (1-圏から、次元を下げた2-圏への反変1-関手)
  • (1↑, 2)-コンテナ : 厳密とは限らない余インデックス圏 (次元を上げた1-圏から、2-圏への2-関手)
  • (1↑op, 2)-コンテナ : 厳密とは限らないインデックス圏 (次元を上げた1-圏から、2-圏への反変2-関手)

“関手のようなもの”の一般論は以下の過去記事で論じています。

“関手のようなもの”は変換手〈transfor〉という名前があります。各種コンテナは、次元調整をした変換手です。

スピシーズ・コンテナの同伴関手

(1gop, 1)-コンテナをスピシーズ〈species〉とも呼びます。我々は、「コンテナ」という言葉を使ってきた行きがかり上、スピシーズを形容詞に使って、(1gop, 1)-コンテナをスピシーズ・コンテナ〈species container〉と呼ぶことにします。次の呼び名は同義語です。

  1. (1gop, 1)-コンテナ
  2. スピシーズ
  3. スピシーズ・コンテナ
  4. 亜群を域とする前層

$`\cat{G}`$ を亜群として、スピシーズ・コンテナ $`F`$ は次の形です。

$`\quad F : \cat{G}^\op \to \mbf{Set} \In \mbf{CAT}`$

亜群の場合、$`\cat{G}^\op`$ と $`\cat{G}`$ を区別する意味はあまりないのですが、習慣により $`\cat{G}^\op`$ を使います。

[追記]
以下の記述のなかで、$`F`$ は反変関手で、$`\mbf{Set}(F(\hyp), y) `$ は、$`y`$ に関しては余前層〈共変関手〉です。なので、$`\cat{G}`$ 上を走る変数 $`\hyp`$ に関しては前層ともいえます。

そんな事情で、「前層」なんだか「余前層」なんだかワケワカランですが、とりあえず最初に書いたままとします。(どっちだってえーよ。)
[/追記]

通常のコンテナと同様に、スピシーズ・コンテナに対しても同伴関手を定義します。通常のコンテナでは、同伴関手の定義に“集合の総直和”を使いました。“集合の総直和”は、離散圏からの前層の余極限なので、“集合の総直和”を前層の余極限に書き換えます。

$`\text{For } F:\cat{G}^\op \to \mbf{Set} \In \mbf{CAT}\\
\quad \widetilde{F}(y) := \mrm{colim}_{ \cat{G}}\, \mbf{Set}(F(\hyp), y)
`$

前層の余極限は、単に総和を取るだけでなく、同値関係による“割り算”をします。全部足して割っているので、比喩的に言えば平均値をとっています。

$`\mbf{Set}(F(x), y)`$ は、$`y`$ が集合圏上(の対象または射)を走る変数なので、自己関手ですが、$`F(x)`$ の米田埋め込みの像になっています。別な言い方をすると、$`F(x)`$ で表現可能〈representable〉な前層です。

同伴関手 $`\widetilde{F}`$ の、自己関手空間 $`\mbf{CAT}(\mbf{Set}, \mbf{Set})`$ 内での構成は、各 $`F(x)`$ で表現される表現可能自己関手達の、亜群 $`\cat{G}`$ 上での“平均値をとる”ことで実行できます。あくまで比喩的な表現ですけどね。

コレクション関手と有限コレクション関手

コレクション関手〈collection functor〉とは、スピシーズ・コンテナの同伴関手のことだと定義します。スピシーズ・コンテナ $`F = (\cat{G}, F)`$ が定義するコレクション関手は次のように書きます。

$`\quad \mrm{Coll}_F := \widetilde{F}\; : \mbf{Set} \to \mbf{Set} \In \mbf{CAT}`$

コレクション関手 $`\mrm{Coll}_F`$ が有限コレクション関手〈finite collection functor〉だとは、次のことです。

$`\quad \forall x\in |\cat{G}|.\, F(x) \in |\mbf{FinSet}|`$

コレクション関手が有限コレクション関手かどうかは、それを定義するスピシーズ・コンテナの性質で決まります。スピシーズ・コンテナの値(である対象)がすべて有限集合なら、その同伴関手を有限コレクション関手と呼ぶのです。

コレクション関手 $`\mrm{Coll}_F`$ の値 $`\mrm{Coll}_F(X)`$ は集合なので、その要素を$`X`$ を成分達の集合とする$`F`$-コレクション〈$`F`$-collection whose set of components is $`X`$〉と呼びます。スピシーズ・コンテナが有限コレクション関手を決めるときは、関手の値である集合の要素は有限コレクション〈finite collection〉です。

有限コレクション関手を決めるスピシーズ・コンテナの例を2つ挙げます。一番目は、リスト関手を決めるスピシーズ・コンテナ $`(\cat{G}, F)`$ です。

  • 亜群 $`\cat{G}`$ は、有限全順序集合を対象として、順序を保つ全単射を射とする圏とする。
  • 反対圏 $`\cat{G}^\op`$ はもとの亜群 $`\cat{G}`$ と区別が付かないから、前層を共変関手として定義してもかまわない。
  • 前層 $`F`$ を、集合圏への忘却関手とする。忘却関手は、有限全順序集合に、台集合である有限集合を対応させる。

ニ番目は、バッグ関手を決めるスピシーズ・コンテナ $`(\cat{G}, F)`$ です。

  • 亜群 $`\cat{G}`$ は、有限集合を対象として、全単射を射とする圏とする。
  • 反対圏 $`\cat{G}^\op`$ はもとの亜群 $`\cat{G}`$ と区別が付かないから、前層を共変関手として定義してもかまわない。
  • 前層 $`F`$ を、集合圏への包含関手とする。包含関手は、有限集合に、その有限集合を対応させる。

そしてそれから

今回の定義では、コレクション関手(集合圏上の自己関手)はスピシーズ・コンテナによりパラメトライズされます。スピシーズ・コンテナは亜群上の前層(余前層としても同じ)です。亜群をひとつ固定しても、その上の前層はたくさんあります。ましてや、亜群を動かせば膨大な前層が生じます。したがって、非常に多様なコレクション関手が存在します。コレクション関手をひとつ固定しても、成分達の集合(コンテナ関手への引数)を変えれば別な値(である集合)が得られます。

「コレクション関手とはスピシーズ・コンテナの同伴関手である」という定義はスッキリしています。が、「有限コレクション: 再配置の圏から」の有限コレクションの定義が、今回の定義とどう関係するかは全然自明ではありません。また、異なるスピシーズ・コンテナが同じコレクション関手を定義するのはどんなときか? など残された話題・課題も色々とあります。

さらに広い話題としては、一般化されたコンテナ(変換手)に対して同伴関手を定義して、それを調べることがあります。コンテナとコレクションという概念は、思いのほか大きな広がりを持ちます。

*1:「小さい集合または大きい集合」は「大きい集合」と同義ですが、大きい集合には小さい集合も入っていることを強調しています。