関手のテンソル積という概念があります。「テンソル積」と呼んでますが、たぶん「思ってたのと違う」となるでしょう。関手のテンソル積は、ある種の豊穣プロ関手〈enriched profunctor〉のコエンドのことです。豊穣プロ関手を2つの豊穣関手から作るので「積」と言えなくもない、ということです。
この記事では、次のように単純化して関手のテンソル積(と呼ばれるコエンド)を紹介します。
- 豊穣圏/豊穣関手/豊穣プロ関手を使わずに、通常の圏/関手/プロ関手で考える。
- 関手の域として、一般の圏ではなくてモノイドから作られた単対象圏だけを考える。
ここでは述べませんが、スラウイのノート(最初の節参照)によると、幾何実現〈位相実現〉(「組み合わせ幾何の基本: 幾何グラフの位相実現」参照)が一般的な関手のテンソル積として構成できるようです。$`\newcommand{\cat}[1]{ \mathcal{#1} }
\newcommand{\mbf}[1]{ \mathbf{#1} }
\newcommand{\mrm}[1]{ \mathrm{#1} }
%\newcommand{\mfk}[1]{\mathfrak{#1}}
%\newcommand{\msc}[1]{\mathscr{#1}}
%\newcommand{\mbb}[1]{\mathbb{#1}}
\newcommand{\u}[1]{ \underline{#1} }
\newcommand{\id}{ \mathrm{id}}
\newcommand{\op}{ \mathrm{op}}
\newcommand{\In}{ \text{ in }}
\newcommand{\hyp}{\text{-} }
\newcommand{\Iff}{ \Leftrightarrow }
%\newcommand{\Imp}{ \Rightarrow }
\newcommand{\twoto}{\Rightarrow }
\newcommand{\Ang}[1]{\langle{#1}\rangle }
\newcommand{\o}[1]{ \overline{#1} }
\newcommand{\lact}{\mathop{\triangleright}}
\newcommand{\ract}{\mathop{\triangleleft}}
\newcommand{\UA}{\uparrow}
`$
内容:
参考文献
関手のテンソル積について、次の短いノートに要領よくまとめられています。
- [Slo]
- Title: TENSOR PRODUCT OF FUNCTORS
- Author: Saad Slaoui
- Date: 不明
- Pages: 6p
- URL: https://math.uchicago.edu/~may/REU2018/Tensor.pdf
モノイド上の加群
集合圏の直積〈デカルト積〉を '$`\times`$' ではなくて '$`\otimes`$' と書きます。その理由は:
- 豊穣圏論をベースに議論するときと記法を揃えるため。
- 外側の2-圏 $`\mbf{CAT}`$ の直積〈デカルト積〉と区別するため。
“掛け算記号”の用法は次のようになります。
- $`\times`$ : $`\mbf{CAT}`$ が備えている直積
- $`\otimes`$ 用法その1 : $`\mbf{Set}`$ が備えている直積
- $`\otimes`$ 用法その2 : $`\mbf{Set}`$ への2つの関手の点ごとの直積
- $`\otimes`$ 用法その3 : 関手のテンソル積に伴う構造写像
- $`\boxtimes`$ : 関手のテンソル積
'$`\otimes`$' は三種類の用法でオーバーロードされます。
モノイド $`M`$ は次のように書きます。
$`\quad M = (\u{M}, \cdot_M, 1_m)`$
ここでは、記号の乱用をせずに、モノイド $`M`$ の台集合〈underlying set〉は $`\u{M}`$ と書きます。が、$`\cdot_M, 1_m`$ は単に $`\cdot, 1`$ と略記することがあります。
集合に対するモノイドによる作用のことを加群〈module〉と呼びます。ここでは、被作用域は単なる集合ですが、足し算がある世界*1で考えると、線形代数の意味の加群になります。
ここでいつもの注意をしておきます; 「左・右」は相対的なもので、どちらかを「左」と約束すれば、残りが「右」になります。誰かが「左」を「右」と呼ぶのは勝手です、お好きにどうぞ。ただし、合意がないとコミュニケーションはとれません。
$`X`$ が $`M`$ 上の左加群〈left module〉であるとは次のことです。
- 次の構成素〈素材〉を持つ。
- 台集合 $`\u{X} \in |\mbf{Set}|`$
- 左作用 $`\mrm{lact}_X : \u{M}\otimes \u{X} \to \u{X} \In \mbf{Set}`$ ('$`\otimes`$' は単なる集合の直積)
- 次の法則を満たす。
- 結合法則 : $`\forall m, n\in \u{M}, x\in \u{X}.\, \mrm{lact}_X(m, \mrm{lact}_X(n, x) ) = \mrm{lact}_X(m\cdot n, x)`$
- 単位法則 : $`\forall x\in \u{X}.\, \mrm{lact}_X(1_M, x) = x`$
記法が鬱陶しいので、左作用を中置演算子記号 '$`\lact_X`$' で書くことにします。結合法則は次のように書けます。
$`\quad m \lact_X (n \lact_X x) = (m\cdot n)\lact_X x`$
文脈から明らかなら下付きの $`X`$ も省略して '$`\lact`$' とします。また、モノイドの乗法は演算子記号を省略して単に併置にするとより簡潔になります。演算の優先度や結合性を適切に約束すれば、結合法則は次のように書けます。
$`\quad m \lact n \lact x = mn \lact x`$
$`Y`$ が $`M`$ 上の右加群〈right module〉であることも同様に定義できます。右作用は中置演算子記号 '$`\ract_Y`$' で書くことにします。右加群の結合法則だけ簡潔に書いてみると:
$`\quad y \ract m \ract n = y \ract mn`$
関手としての加群
モノイド $`M`$ から作られた圏を $`M_\UA`$ と書くことにします。圏 $`M_\UA`$ は次のようです。
- 対象達の集合 : $`|M_\UA| = \{*\}`$ (単元集合)
- 射達の集合 : $`\mrm{Mor}(M_\UA) = \u{M}`$
- ホムセット : $`M_\UA(*, *) = \u{M}`$ (唯一のホムセット=射達の集合)
- 射の結合 : $`(;) := (\cdot_M)`$ (モノイドの乗法)
- 恒等射 : $`\id_{*} := 1_M`$ (モノイドの単位)
$`F: {M_\UA}^\op \to \mbf{Set}`$ が反変関手*2のとき、次のようにして左加群 $`X`$ を作れます。
- $`\u{X} := F(*) \; \in |\mbf{Set}|`$
- $`\text{For }m\in \u{M}, x\in \u{X},\: m\lact_X x := F(m)(x)`$
共変関手 $`G : M_\UA \to \mbf{Set}`$ からは右加群 $`Y`$ が作れます。
逆に、“$`M`$ 上の左加群”からは “$`M_\UA`$ からの反変関手”が、“$`M`$ 上の右加群”からは “$`M_\UA`$ からの共変関手”が作れます。この対応は(up-to-isoで)一対一です。
ここから先では、加群と関手を区別せずに次のような言い回しを使います。
- $`M`$ 上の左加群 $`X : {M_\UA}^\op \to \mbf{Set}`$
- $`M`$ 上の右加群 $`Y : {M_\UA} \to \mbf{Set}`$
加群のペアからプロ関手
$`X`$ は $`M`$ 上の左加群〈反変関手〉、$`Y`$ は $`M`$ 上の右加群〈共変関手〉だとします。前節で約束したように、これは次を意味します。
$`\quad X : {M_\UA}^\op \to \mbf{Set} \In \mbf{CAT}\\
\quad Y : {M_\UA} \to \mbf{Set} \In \mbf{CAT}
`$
関手 $`Y \otimes X`$ は次の可換図式で定義します。
$`\quad \xymatrix{
{M_\UA \times {M_\UA}^\op} \ar[r]^{Y \times X}
\ar[dr]_{Y \otimes X}
&{\mbf{Set}\times \mbf{Set} } \ar[d]^{(\otimes)}
\\
{ }
& \mbf{Set}
}\\
\quad \text{commutative }\In \mbf{CAT}
`$
冒頭にも注意したように、'$`\otimes`$' はオーバーロードされています。$`(\otimes)`$ は、二項関手〈双関手〉としての直積です。$`Y\otimes X`$ は、$`Y\times X`$ の後に $`(\otimes)`$ を結合〈横結合〉した関手です。
意外と分かりにくいので具体的に書き下しましょう。まず、圏 $`{M_\UA \times {M_\UA}^\op}`$ の対象達の集合は:
$`\quad | { M_\UA \times {M_\UA}^\op } | \\
= |M_\UA| \times |{M_\UA}^\op|\\
= \{*\}\times\{*\}\\
= \{ (*, *) \}\\
`$
対象は1個だけです。$`Y\times X`$ による行き先は:
$`\quad (Y\times X)( (*, *) )\\
= (Y(*), X(*))\\
= (\u{Y}, \u{X})
`$
最後の行の $`\u{Y}, \u{X}`$ は、加群の台集合とみなしたときの記法です。
この後に $`(\otimes)`$ (直積)を適用すると:
$`\quad (\otimes)( (\u{Y}, \u{X}) )\\
= \u{Y} \otimes \u{X}\\
= \{(y, x) \mid y\in \u{Y}, x\in \u{X}\}
`$
これで、関手 $`Y\otimes X`$ の対象パートは分かりました。
次に、圏 $`{M_\UA \times {M_\UA}^\op}`$ の射達の集合は:
$`\quad \mrm{Mor}({M_\UA \times {M_\UA}^\op}) \\
= \mrm{Mor}(M_\UA) \times \mrm{Mor}({M_\UA}^\op)\\
= \u{M} \times \u{M^\op}
`$
混乱を避けるために、$`\u{M^\op}`$ の要素は
$`\quad \o{n} \:\text{ for some }n\in \u{M}`$
の形で書きます。
射 $`(m, \o{n})`$ の $`Y\times X`$ による行き先は:
$`\quad (Y\times X)( (m, \o{n}) )\\
= (Y(m), X(\o{n}))\\
= ( (\hyp \ract m), (n \lact \hyp) )
`$
ここで、'$`\hyp`$' は無名ラムダ変数です。ちゃんとしたラムダ記法で書けば:
$`\quad (\hyp \ract m) := \lambda\, y\in \u{Y}.\, y \ract_Y m\\
\quad (n \lact \hyp) := \lambda\, x\in \u{X}.\, n \lact_X x
`$
この後に $`(\otimes)`$ (直積)を適用すると:
$`\quad (\otimes)( (\hyp \ract m), (n \lact \hyp) )\\
= (\hyp \ract m)\otimes (n \lact \hyp)
`$
これは関数(集合圏の射)ですが、引数 $`(y, x)`$ を渡すと値は次のように計算できます。
$`\quad \left( (\hyp \ract m)\otimes (n \lact \hyp)\right) ( (y, x) )\\
= ( (\hyp \ract m)(y), (n \lact \hyp)(x) )\\
= ( y \ract m, n \lact x )
`$
要するに、被作用素〈オペランド〉であるペア $`(y, x)`$ に対して、第一成分の $`y`$ には“$`m`$ が右から作用”し、第ニ成分の $`x`$ には“$`n`$ が左から作用”するような関数です。
結局 $`Y\otimes X`$ は、被作用域(加群の台集合)が $`\u{Y}\otimes \u{X}`$ (普通の記法で書けば $`\u{Y}\times \u{X}`$)である“$`M\times M^\op`$ 上の加群”です。“$`M\times M^\op`$ 上の加群”を別な言い方で表現すると、“$`M`$ が右から作用し、$`M`$ が左からも作用する両側加群”です。さらに別な言い方をすると、$`Y\otimes X`$ は $`M`$ (むしろ $`M_\UA`$)上の自己プロ関手です。
$`X\otimes Y`$ ではなくて $`Y\otimes X`$ としているので変な感じ・違和感があるかも知れませんが、これは習慣であり便利な面もあります -- 関手のテンソル積の中央作用を定義するのに便利です。どうしても気持ち悪いなら、$`X\otimes Y`$ としても特に変わらないので、そのように読み替えて議論を追ってください。
反変関手が左加群、共変関手が右加群、プロ関手が両側加群〈双加群〉という対応が納得いかないなら、以下の過去記事を参照してください。
プロ関手のコエンド
前節で定義した $`Y\otimes X`$ はテンソル積の記号 '$`\otimes`$' を使ってますが、これが“関手のテンソル積”なわけではありません。関手の図式順結合記号を '$`*`$' として、$`Y\otimes X`$ は次のような関手です。(2回出現する '$`\otimes`$' はそれぞれ別な意味です。)
$`\quad Y\otimes X := (Y\times X)* (\otimes) \;: M_\UA \times {M_\UA}^\op \to \mbf{Set}
`$
この形の二項関手〈双関手〉はプロ関手と呼ばれます。プロ関手の域は $`{M_\UA}^\op\times M_\UA`$ とするほうが多いでしょうが、それも習慣なので、別に $`{M_\UA}\times {M_\UA}^\op`$ でもかまいません。
プロ関手 $`Y\otimes X`$ のコエンドを取れば、それが $`Y`$ と $`X`$ のテンソル積なのですが、より具体的に“テンソル積”(実体はコエンド)の作り方を説明します。この節では、集合の直積に '$`\times`$' を使います。
$`Y\otimes X`$ を(圏論的より)集合論的なモノイド作用とみなしましょう。すると、$`(y, x)\in \u{Y}\times \u{X}`$ という要素〈ペア〉にモノイド $`M`$ の(台集合の)要素が左右から〈両側から〉作用するのでした。
- $`n`$ による左作用 : $`(y, x) \mapsto (y, n\lact x)`$
- $`m`$ による右作用 : $`(y, x) \mapsto (y\ract m, x)`$
ひとつの $`m\in \u{M}`$ を左右から作用させたとき、それらが一致することは全然保証できません。次の等式は成立するとは言えないのです。
$`\quad (y \ract m, x ) = (y, m\lact x)`$
しかし、$`(y \ract m, x )`$ と $`(y, m\lact x)`$ を同一視してしまうことは出来ます。つまり、無理やりにでも上の等式を成立させてしまうのです。
$`m\in M`$ ごとに、集合 $`\u{Y}\times\u{X}`$ 上の関係 $`\sim_m`$ を定義します。
$`\quad (y, x)\sim_m (y', x' ) :\Iff y = y'\ract m \;\land\; x' = m\lact x`$
関係の族 $`(\sim_m)_{m\in \u{M}}`$ ができますが、この族の同値閉包を取ると $`\u{Y}\times \u{X}`$ 上の同値関係($`\simeq`$ とする)になります。同値閉包については以下の過去記事に書いてあります。
同値関係による商集合を $`(\u{Y}\times \u{X})/\simeq`$ として、標準射影は $`\pi`$ とします。
$`\quad \pi : \u{Y}\times \u{X} \to (\u{Y}\times \u{X})/\simeq \In \mbf{Set}`$
同値類 $`\pi( (y, x))`$ を $`[y, x]`$ と略記します。線形代数の習慣に従うと、$`(\u{Y}\times \u{X})/\simeq`$ は $`Y\otimes X`$ で、$`[y, x]`$ は $`y\otimes x`$ です。さすがに '$`\otimes`$' のオーバーロードがひど過ぎるので、$`(\u{Y}\times \u{X})/\simeq`$ は $`Y\boxtimes X`$ と書くことにします。この約束で、上と同じ標準射影は次のように書けます。
$`\quad (\otimes) : \u{Y}\times \u{X} \to Y\boxtimes X \In \mbf{Set}`$
紛らわしいですが、ここでの $`(\otimes)`$ は $`\pi`$ と同じです。線形代数の習慣では、対象(集合やベクトル空間)のテンソル積も、要素に対するテンソル積も同じ記号をオーバーロードします。
$`Y\boxtimes X`$ は単なる集合で、$`M`$ による左作用も右作用もありません。しかし、中央作用〈middle action〉と呼べる三項演算 $`\langle \hyp, \hyp, \hyp\rangle`$ を考えることが出来ます。
$`\quad \langle \hyp, \hyp, \hyp\rangle : \u{Y}\times \u{M} \times\u{X}\to Y\boxtimes X \In \mbf{Set}`$
その定義は:
$`\text{For }(y, m, x)\in \u{Y}\times \u{M} \times\u{X}\\
\quad \langle y, m, x\rangle := [y\ract m, x]\; \in Y\boxtimes X
`$
定義より、次の等式が成立します。
$`\quad \langle y, m, x\rangle = (y\ract m)\otimes x = y\otimes (m\lact x)`$
この三項演算は、値が $`Y\boxtimes X`$ に入るだけで、$`Y\boxtimes X`$ に作用しているわけではないので注意してください。
具体的に定義した集合 $`Y\boxtimes X`$ は、次のようなコイコライザーとしても定義できます。
$`\quad\xymatrix@C+1pc{
{\u{Y}\times \u{M}\times \u{X}}
\ar@/^1.3pc/[r]^{ (\ract_Y)\times \id_{\u{X}} }
\ar@/_1.3pc/[r]_{ \id_{\u{Y}} \times (\lact_X) }
&{\u{Y} \times \u{X}} \ar[r]^\pi
&{Y\boxtimes X}
}\\
\quad \text{coequalizer }\In \mbf{Set}
`$
そして、このコイコライザーはコエンドの定義になっています。関手のテンソル積 $`Y\otimes X`$ とは、2つの関手から作られた自己プロ関手のコエンドだったのです。
コエンドやコイコライザーについては、以下の過去記事にあります。
- プロ関手のコエンド同値関係
- コイコライザーの同値関係をより具体的に
- 両側モノイド作用のコエンド
- 圏論のエンドとコエンドは双対なんだよ
- 等式の二種類の使用法: 選別条件と同一視宣言
- 連立方程式系と余連立余方程式系
あれれ
前節の過去記事のリストを作るために、過去記事を検索していたら、ほとんど同じことを以前に書いていました。
上記過去記事は、以下の論文に触発されて書いたものです。
- [CG22-23]
- Title: Actegories for the Working Amthematician
- Authors: Matteo Capucci, Bruno Gavranović
- Submitted: 30 Mar 2022 (v1), 11 Dec 2023 (v2)
- Pages: 92p
- URL: https://arxiv.org/abs/2203.16351
異なるソースに同じことが書かれていた、ってことでしょう。が、なんか微妙に違う気もする。スラウイ論文とカプチ/ガブラノビッチ論文を比較する必要がありそうです。でも、幾何実現〈位相実現〉に“テンソル積”を使ってみるほうが先かな。