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

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

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

参照用 記事

2020年なのに、Webフォームの憂鬱

今って、2020年ですよね。6,7年前の2013年, 2014年に、「Webフォームが使いにくい」と文句をたれてたのですが、2020年の現在ならば、さすがにそんな酷いことはないだろう -- そう期待しますよね。だって、僕が指摘した問題点は、ごく簡単に修正できることですから。

2013年, 2014年の過去記事とは:

Webフォームに入力する文字や記号に無意味な制約が付いていてエラーを起こしてやり直しを要求されるのがストレスだ、腹が立つ、って話です。

先日(2020年のことです)、郵便の再配達をWebフォームからお願いしました。まず最初は追跡番号(お問い合わせ番号)の入力。追跡番号は、123-45-67890-1 のようなフォーマットです。このとき、「空白もハイフンも入れずに半角数字だけで入力せよ」というご指示。

なんで? なんで空白・ハイフンがダメなの。不在連絡票には 123-45-67890-1 のフォーマットで印字されてるのに、なんで区切りをいれちゃダメなの? 目視での読みやすさのために、3桁-2桁-5桁-1桁 と印字されていると思うんだけど、Webフォームでは、読みにくい/確認しにくい11桁ベタ入力なの?

技術的に難しいですか? 空白・ハイフンを取り除くプログラムって、6千行くらいのコードだっけ? もう少し短く書けると思いますが。

… と思ったけど、おとなしく指示に従って全てのフィールドに入力してサブミットすると:

  • ** 番地・部屋名に受付できない文字が入力されました。ご確認の上、訂正してください。

ハァーー?! 別に変な文字なんて入れてないよ。数字が入ってるけど -- たぶん全角じゃないとダメとかだろうな。フィールド名「番地・部屋名」は教えてくれるんですが、どの文字が「受付できない文字」かは教えてくれないので推測するしかありません。

全角数字に修正してもエラーだったんですが、「番地・部屋名」フィールドがオプショナルと気づいて入力を全部削除して成功しました。「受付できない文字」を確認すればよかったけど、心の余裕がなくて … おそらくハイフン文字だったのでしょう。

ハイフン文字には以前苦しめられました。必須入力フィールドで「全角マイナス」と呼ばれる文字以外認めない、という仕様のフォームがありまして。Unicode文字で「ハイフン」に見えるものはたくさんあるんだけど。

名前 文字番号(コードポイント) 実際の形
HYPHEN-MINUS U+002D -
FULLWIDTH HYPHEN-MINUS U+FF0D
HYPHEN U+2010
MINUS SIGN U+2212
KATAKANA-HIRAGANA PROLONGED SOUND MARK U+30FC
HORIZONTAL BAR U+2015
FIGURE DASH U+2012
EN DASH U+2013
EM DASH U+2014


  • 教訓: 「Web技術の進歩やUIの改善は速い」には例外もある。

行列の圏のなかでモノイドを探す

今回もまた、セミナーへの補足を意図してますが、行列計算と圏の定義くらい知っていれば分かる話を書きます。(なので、このブログ。)最後の節は分からない話かも知れませんが、気にしないでください。

前回の記事で、集合圏のなかでは、すべての対象(集合)に対して一意的にコモノイド構造が決まることを示しました。行列の圏でも似た状況が生じます。ただし、コモノイドではなくてモノイドです。行列の圏のすべての対象(自然数)に対して一意的にモノイド構造が決まるのです。

内容:

行列の圏とそのなかの構造

最初にセミナー参加者の皆さん向けのご注意と訂正事項です。

  1. 例として扱う対象(自然数)は、3ではなくて2にします。
  2. 行列の表示(書き方)として、通常の四角く数を並べる形を使います。各自で、二部有向グラフで行列を描く方法と対比すれば、より理解が深まるでしょう。
  3. 「行列の係数を、ブール半環 B から取らないとウマくいかない」は間違いでした。僕が、別な事例と混同してました。係数は半環(一例:自然数半環)なら何でもいいです。

さて、行列の圏とは次のような圏でした。(「はじめての圏論 その第2歩:行列の圏」参照。)

  1. 対象は自然数
  2. 射は行列
  3. 行列(射) A に対して dom(A) = (Aの列数〈幅〉)
  4. 行列(射) A に対して cod(A) = (Aの行数〈高さ〉)
  5. 自然数(対象) n に対して id(n) = idn = (n×n の単位行列)
  6. 行列(射) A と行列(射) B に対して、comp(A, B) = A;B = BA (行列の掛け算、順序は逆

行列の圏も圏なので、そのなかに居るモノイドを考えることができます。単に「モノイド」というと、集合圏内のモノイド(通常の、一番普通のモノイド)を想定する人がいるので、モノイド構造とかモノイド対象と呼ぶことにしましょうか。

圏は、それ自体が構造ですが、そのなかに構造をホストする(住まわせる)環境・世界として機能することがあります。環境・世界として使われる典型的な圏が集合圏です。通常のモノイドは、集合圏のなかに住んでいる構造です。

集合圏以外でも、構造をホストすることができます。行列の圏もまた、環境・世界として機能します。集合圏のなかの構造が集合(対象)と写像(射)からできていたのと同様に、行列の圏のなかの構造は自然数(対象)と行列(射)からできています。

モノイド構造

考える構造はモノイド構造なので、今回もラフなストリング図から始めます。

このストリング図の形状にラベルを追加し、アスキーテキストで書く方法は前回説明しました。集合圏の対象と射でラベルすれば、お馴染みの(普通の)モノイドですね。前回の図を以下にコピーします。

  1. Aは集合。
  2. Iは単元集合。太字の1を使わないのはアスキーテキストだけで書きたいから。Iの唯一の要素は何でもいいけど、今ここでは I = {0} とする。
  3. mはモノイドの乗法 m:A×A→A 。
  4. eはモノイドの単位 e:I→A 。
結合法則
  A  A     A        A     A  A
 ------m  ---      ---   -----m
   A       A    =   A      A
  ----------m      ----------m
      A                A

左単位法則
        A        A
       ---      ---
  I     A        A
 ---e  ---  =   ---
  A     A        A
 --------m      ---
    A            A

右単位法則
  A              A
 ---            ---
  A    I         A
 ---  ---e  =   ---
  A    A         A
 --------m      ---
    A            A

アスキーアート・ストリング図の等式を、テキストで書けば次のようです*1

  • 結合法則: (m×idA);m = (idA×m);m
  • 左単位法則: (e×idA);m = idA
  • 右単位法則: (idA×e);m = idA

同じ形状の図に、違うラベルを付けます。次の表に基づきラベルを置き換えます。

集合圏 行列の圏
集合 A 自然数 n
特別な集合 I 特別な自然数 0
写像 m 行列 S
写像 e 行列 Z
直積 × 対角ブロック和 \oplus

行列の対角ブロック和 A\oplusB は、次のように定義されます。


A \oplus B := \begin{bmatrix}A & O \\ O & B \end{bmatrix}

左上にA、右下にBを置いて、残りの部分は全部ゼロ(Oと書いてある)で埋めます。

では、ラベルを置き換えたアスキーアート・ストリング図。

結合法則
  n  n     n        n     n  n
 ------S  ---      ---   -----S
   n       n    =   n      n
  ----------S      ----------S
      n                n

左単位法則
        n        n
       ---      ---
  0     n        n
 ---Z  ---  =   ---
  n     n        n
 --------S      ---
    n            n

右単位法則
  n              n
 ---            ---
  n    0         n
 ---  ---Z  =   ---
  n    n         n
 --------S      ---
    n            n

等式をテキストで書き下せば*2

  • 結合法則: (S\oplusidn);S = (idn\oplusS);S
  • 左単位法則: (Z\oplusidn);S = idn
  • 右単位法則: (idn\oplusZ);S = idn

n×n の単位行列を In と書くことにして、idn の代わりに In を使いましょう*3。行列の掛け算を「・」で表すと、図式順結合記号「;」とは左右が逆になるので入れ替えます。上下左右の変化が苦手ならトレーニングしてね。

  • 結合法則: S・(S\oplusIn) = S・(In\oplusS)
  • 左単位法則: S・(Z\oplusIn) = In
  • 右単位法則: S・(idn\oplusZ) = In

特に、対象 2 を台対象〈underlying object〉とするモノイド構造ならば、

  • 結合法則: S・(S\oplusI2) = S・(I2\oplusS)
  • 左単位法則: S・(Z\oplusI2) = I2
  • 右単位法則: S・(id2\oplusZ) = I2

対象 2 の上のモノイド構造は (2, S, Z) と書きます。これは、集合圏において、R 上のモノイド構造を (R, ×, 1) などと書くのと同じ書き方です。実数の集合 R が集合圏の対象であったのと同じく、自然数 2 は行列の圏の対象であり、その上にモノイド構造が載るのは変なことではありません。モノイド構造が住む環境・世界が行列の圏に変わるだけです。

圏のモノイド積/単位対象

集合と自然数は違うし、写像と行列も違います。が、その違いに拘る/縛られるのではなくて、役割や機能の類似性/共通性のほうに注目します。そういう見方をすると、集合圏も行列の圏も、どちらもモノイド圏なので共通性を持ちます。

モノイド圏とは、モノイド積/単位対象を持つ圏です。内部にモノイド構造をホストする圏では、環境としての圏の側にもモノイド積/単位対象が必要なのです。

一般論 集合圏 行列の圏
モノイド積 直積 × 対角ブロック和 \oplus
対象 集合 A, B 自然数 n, m
写像 f:A→B, g:C→D 行列 A:n→m, B:k→ℓ
対象のモノイド積 集合の直積 A×B 自然数の和 n + m
射のモノイド積 写像の直積 f×g:A×C→B×D 行列の対角ブロック和 A\oplusB:n+k→m+ℓ
単位対象 単元集合 I ゼロ 0

この表で、文字 'A', 'B' が場所により違う意味で使われていますが、違う世界(環境となる圏)なので、同じ文字が別な意味で使われてもいいでしょう。(用語・記号のコンフリクトとオーバーロードは茶飯事。)なお、記号を揃えるために、n + m を n\oplusm とも書きます。

環境となる圏にモノイド積があるからこそ、モノイド乗法やモノイド単位のプロファイル(域と余域の指定)を書けるのです。

一般論 集合圏 行列の圏 備考
モノイド乗法のプロファイル A×A→A n\oplusn→n ×, \oplus がモノイド積
モノイド単位のプロファイル I→A 0→n I, 0 が単位対象

モノイド乗法とモノイド単位を持つモノイド構造は、モノイド積と単位対象を持つモノイド圏のなかでだけ生息可能なのです。標語にすれば:

  • モノイド構造はモノイド構造のなかに居る

一番目の「モノイド構造」は、圏の対象に載るモノイド構造で、二番目の「モノイド構造」は、その対象が所属する環境・世界としての圏が持つモノイド構造です*4

幅がゼロの行列

行列圏内のモノイド構造を扱うとき、通常お目にかからないシロモノとして、幅(列数)や高さ(行数)がゼロの行列が出てきます。次のような疑問がわくでしょう。

  1. 幅や高さがゼロの行列って、それなに?
  2. 成分がゼロだけのゼロ行列とは違うの?
  3. どうやって計算するの?

今ここでは、これらの疑問に答える説明はしません。今回出てくるのは、幅ゼロの行列 Z だけです。 とりあえずは、幅ゼロの行列 Z と単位行列 I2 の対角ブロック和 Z\oplusI2, I2\oplusZ が作れればいいのです。

Zが幅1・高さ2の行列だとして、2×2の単位行列とブロック和すると:


Z\oplus I_2 =
\begin{bmatrix}
Z_1 \\
Z_2
\end{bmatrix}
\oplus
\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
= 
\begin{bmatrix}
Z_1 & 0 & 0 \\
Z_2 & 0 & 0 \\
0   & 1 & 0 \\
0   & 0 & 1
\end{bmatrix}

Zが幅0・高さ2の行列だとすれば、次のようになるとしてよいでしょう。


Z\oplus I_2 =
\begin{bmatrix}
 \\
 \\
\end{bmatrix}
\oplus
\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
= 
\begin{bmatrix}
 0 & 0 \\
 0 & 0 \\
 1 & 0 \\
 0 & 1
\end{bmatrix}

同様に、


I_2\oplus Z =

\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
\oplus
\begin{bmatrix}
 \\
 \\
\end{bmatrix}
= 
\begin{bmatrix}
 1 & 0 \\
 0 & 1 \\
 0 & 0 \\
 0 & 0
\end{bmatrix}

以下、この計算法を使います。

行列の圏のなかのモノイド構造

対象 2 を台対象とするモノイド構造 (2, S, Z) は次の法則で規定されます。

  • 結合法則: S・(S\oplusI2) = S・(I2\oplusS)
  • 左単位法則: S・(Z\oplusI2) = I2
  • 右単位法則: S・(id2\oplusZ) = I2

これらの等式を成分を使って書き下します。


S\cdot(S \oplus I_2) = S\cdot (I_2 \oplus S) \\
\:\\
\begin{bmatrix}
S_{1, 1} & S_{1, 2} & S_{1, 3} & S_{1, 4} \\
S_{2, 1} & S_{2, 2} & S_{2, 3} & S_{2, 4} \\
\end{bmatrix}
\cdot
\begin{bmatrix}
S_{1, 1} & S_{1, 2} & S_{1, 3} & S_{1, 4} & 0 & 0 \\
S_{2, 1} & S_{2, 2} & S_{1, 3} & S_{1, 4} & 0 & 0 \\
0       & 0       & 0       & 0       &1 & 0 \\
0       & 0       & 0       & 0       &0 & 1 \\
\end{bmatrix} \\
= \\
\begin{bmatrix}
S_{1, 1} & S_{1, 2} & S_{1, 3} & S_{1, 4} \\
S_{2, 1} & S_{2, 2} & S_{2, 3} & S_{2, 4} \\
\end{bmatrix}
\cdot
\begin{bmatrix}
1       & 0       & 0       & 0       & 0 & 0 \\
0       & 1       & 0       & 0       & 0 & 0 \\
0 & 0 & S_{1, 1} & S_{1, 2} & S_{1, 3} & S_{1, 4} \\
0 & 0 & S_{2, 1} & S_{2, 2} & S_{1, 3} & S_{1, 4} \\
\end{bmatrix} \\
\,\\
\,\\
%
%
% 左単位法則
S\cdot(Z \oplus I_2) = I_2 \\
\begin{bmatrix}
S_{1, 1} & S_{1, 2}  & S_{1, 3} & S_{1, 4} \\
S_{2, 1} & S_{2, 2}  & S_{2, 3} & S_{2, 4} \\
\end{bmatrix}
\cdot
\begin{bmatrix}
0 & 0  \\
0 & 0 \\
1 & 0 \\
0 & 1 \\
\end{bmatrix}
=
\begin{bmatrix}
1 & 0 \\
0 & 1 \\
\end{bmatrix} \\
\,\\
\,\\
%
%
% 右単位法則
S\cdot(I_2 \oplus Z) = I_2 \\
\begin{bmatrix}
S_{1, 1} & S_{1, 2}  & S_{1, 3} & S_{1, 4} \\
S_{2, 1} & S_{2, 2}  & S_{2, 3} & S_{2, 4} \\
\end{bmatrix}
\cdot
\begin{bmatrix}
1 & 0  \\
0 & 1 \\
0 & 0 \\
0 & 0 \\
\end{bmatrix}
=
\begin{bmatrix}
1 & 0 \\
0 & 1 \\
\end{bmatrix}

左単位法則と右単位法則の左辺の掛け算を実行します。


\begin{bmatrix}
 S_{1, 3} & S_{1, 4} \\
 S_{2, 3} & S_{2, 4} \\
\end{bmatrix}
=
\begin{bmatrix}
1 & 0 \\
0 & 1 \\
\end{bmatrix} \\
\,\\
\,\\
%
%
%
\begin{bmatrix}
 S_{1, 1} & S_{1, 2} \\
 S_{2, 1} & S_{2, 2} \\
\end{bmatrix}
=
\begin{bmatrix}
1 & 0 \\
0 & 1 \\
\end{bmatrix} \\

これより、Sは完全に決定されます。


S = 
\begin{bmatrix}
S_{1, 1} & S_{1, 2}  & S_{1, 3} & S_{1, 4} \\
S_{2, 1} & S_{2, 2}  & S_{2, 3} & S_{2, 4} \\
\end{bmatrix}
=
\begin{bmatrix}
1 & 0 & 1 & 0 \\
0 & 1 & 0 & 1 \\
\end{bmatrix}

このSが結合法則も満たすこともすぐに確認できます。S = [I2 I2] と置いて、ブロックのまま計算しましょう。O はゼロだけが並んだ行列とします。


\:\:\:\: \mbox{Left Hand Side} \\
=
\begin{bmatrix}
I_2 & I_2 \\
\end{bmatrix}
\cdot
\begin{bmatrix}
I_2 & I_2 & O \\
O   &  O  & I_2 
\end{bmatrix} \\
=
\begin{bmatrix}
I_2\cdot I_2 & I_2\cdot I_2 & I_2\cdot I_2 \\
\end{bmatrix} \\
=
\begin{bmatrix}
I_2 & I_2 & I_2 \\
\end{bmatrix} \\
\,\\
\,\\
%
% 右辺
% 
\:\:\:\: \mbox{Right Hand Side} \\
=
\begin{bmatrix}
I_2 & I_2 \\
\end{bmatrix}
\cdot
\begin{bmatrix}
I_2 & O   & O \\
O   & I_2 & I_2 
\end{bmatrix} \\
=
\begin{bmatrix}
I_2\cdot I_2 & I_2\cdot I_2 & I_2\cdot I_2 \\
\end{bmatrix} \\
=
\begin{bmatrix}
I_2 & I_2 & I_2 \\
\end{bmatrix} \\

ここまでの議論は、対象 2 に特有なものではないので、一般に、対象 n に対するモノイド乗法を Sn、モノイド単位を Zn とすると、

  • Sn は、単位行列 In を横に2つ並べた行列
  • Zn は、幅(列数)が0で高さ(行数)がnの行列

これで、行列の圏内のモノイド構造をすべて決定できました。それらは、(n, Sn, Zn) です。

モノイド構造が自然変換で与えられること

前回記事と今回記事の結果は類似しています。

  1. 前回: 集合圏では、すべての対象 A に対して、コモノイド構造 (A, ΔA, !A) が一意的に決まる。
  2. 今回: 行列の圏では、すべての対象 n に対して、モノイド構造 (n, Sn, Zn) が一意的に決まる。

集合圏の場合、A  \mapsto ΔA, A \mapsto !A という割り当ては自然変換になりました。行列の圏でも、n  \mapsto Sn, n \mapsto Zn という割り当ては自然変換になります。行列の圏をMatと書くことして、次の関手を準備します。

  1. Id:MatMat : Id(n) := n, Id(A:n→m) := (A:n→m)
  2. D:MatMat : D(n) := n\oplusn, D(A:n→m) := (A\oplusA:n\oplusn→m\oplusm)
  3. K:MatMat : K(n) := 0, K(A:n→m) := (id0:0→0) (id0 は、幅が0、高さも0の行列)

この設定のもとで、S = (Sn:Id(n)→D(n) | n∈Obj(Mat)) と Z = (Zn:Id(n)→K(n) | n∈Obj(Mat)) は、次のような自然変換であることは容易に確認できます。

  • S::Id⇒D:MatMat
  • Z::Id⇒K:MatMat

事情は、集合圏の場合(前回)とまったく同じなので真似てやってみてください。

そしてそれから

最後に、この記事では説明してない概念・用語を遠慮なく使って、“集合圏と行列の圏の共通性”の背後にあるビッグピクチャーを紹介しましょう。スキップしても、「フーン」と眺めるだけでもかまいません。

ここで出てくる重要な概念・用語は次の2つです。

  1. 関手の随伴対〈adjoint pair of functors〉(随伴系〈adjoint system〉でも同じ)
  2. 反対圏〈opposite category〉

随伴対/随伴系に関しては次の記事で書いています。

反対圏は簡単な概念ですが、「簡単すぎて難しい」かも知れません。

他に、次の記号を使います。

  1. I(太字のアイ)を、単一の対象と恒等射だけからなる(特定された)自明圏だとします。一方、I(太くないアイ)は、圏Cの内部にある単位対象または終対象の意味です。
  2. ΔC(太字のΔ)を、圏Cから直積圏C×Cへの対角関手とします。一方、ΔA(太くないデルタ)は、圏C内部にある対角射(Aは対象)の意味です。
  3. KC(太字のケー)を、圏Cから自明圏Iへの唯一の関手とします。一方、KA(太くないケー)は、圏C内部にある終射(Aは対象)の意味です。終射〈terminal morphism〉は終対象への唯一の射です。終射は !A とも書かれます。

さて、デカルト圏〈Cartesian category〉の定義には幾つかの方法がありますが、直積がモノイド積で与えられるデカルト圏(デカルト・モノイド圏〈Cartesian monoidal category〉)には、次のような定義があります。

Cデカルト・モノイド圏(単に「デカルト圏」と言う場合が多い)だとは、

  1. KC:CI が、右随伴関手(随伴対の右相方)JC:IC を持つ。
  2. ΔC:CC×C が、右随伴関手 PC:IC×C を持つ。

このスタイルのデカルト圏の定義については、次の記事で触れています。

随伴系の書き方」に従って随伴系(関手の随伴対)を書いてみると:

  1. (K, ι): KC -| JC :IC
  2. (Δ, ε): ΔC -| PC :C×CC

ここで、

  1. 自然変換 K::IdCKC*JC:CC は、一番目の随伴系の単位。(アスタリスク '*' は、関手の図式順結合記号)
  2. 自然変換 ι〈小文字イオタ〉::JC*KC⇒IdI:II は、一番目の随伴系の余単位。
  3. 自然変換 Δ::IdCΔC*PC:CC は、ニ番目の随伴系の単位。
  4. 自然変換 ε::PC*ΔC⇒IdC×C:C×CC×C は、ニ番目の随伴系の余単位。

この状況で:

  1. 関手 JC:IC は、Cの単位対象兼終対象 I をポインティングする関手になる。
  2. 関手 PC:C×C は、Cのモノイド積になる。
  3. 自然変換 K::IdCKC*JC:CC は、C内の対象を破棄する(単位対象(終対象でもある)に潰す)操作になる。
  4. 自然変換 Δ::IdCΔC*PC:CC は、C内の対象を複製する操作になる。
  5. 対象 A∈|C| ごとに、(A, ΔA, KA) はC内のコモノイド構造になる。

ここで登場した素材(圏、関手、自然変換)達は、お互いにお互いを規定しあう形で緊密に連携しています。

今述べた一般論が、集合圏において実現しています。また、行列の圏の反対圏においても実現しているのです。

一般論 集合圏 行列の圏の反対圏
C Set Matop
JC がポイントする対象 I Setの I 0
モノイド積 PC 直積 × 対角ブロック和 \oplus
随伴の単位 K ! Zop
随伴の単位 Δ Setの Δ Sop
コモノイド構造 (A, ΔA, !A) (n, Sop, Zop)

有り体に言ってしまえば:

  1. 集合圏はデカルト・モノイド圏である。
  2. 行列の圏の反対圏もデカルト・モノイド圏である。
  3. だから、集合圏と行列の圏は、(双対的に)似ているのは当然。

はるか上空から眺めれば〈鳥の視点〉、単にそれだけのことです。しかし、地面を這いつくばって(例えば行列の掛け算を実行して)モソモソ動くこと〈虫の視点〉も大事です。

bird's-eye view
*5

bug's-eye view
*6

*1:集合圏では、(A×B)×C = A×(B×C) などは成立せずに、同型関係式 (A×B)×C \cong A×(B×C) しか成立しないので、各法則をイコールで書いているのはサボっている(正確には書いてない)ことになります。

*2:行列の圏では、各法則は正確にイコールで成立します。

*3:集合圏内の特定された単元集合も I だったので、コンフリクトしてしまいました。もちろん、僕の不注意からのコンフリクトです。しかし、文字・記号は有限個しかないので、コンフリクト/オーバーロードを避けるのは実際的には無理です。

*4:モノイド構造が階層構造を持つことになります。これは無限の階層になります。例えば、「マイクロコスモ原理と構造の無限タワー」を参照。

*5:記事: http://nodehabitat.com/home/projects/huadi/
画像: http://nodehabitat.com/home/wp-content/uploads/2013/12/015-view-02.jpg

*6:記事: http://www.flickriver.com/photos/tags/bugseyeview/interesting/
画像: http://farm4.static.flickr.com/3890/14766605448_b16231c586.jpg

図式思考の例として、コモノイドについて考えてみる

セミナーでの話への補足なんですが、特別な話題ではなくて一般論なことなのでここに書きます。理解したり覚えたりする目的には、テキストで書かれた等式などは不向きであること、一方で具体的な表示・計算にはやはりテキストが有効であることを説明します。例として、集合圏内のコモノイドを取り上げます。 \newcommand{\For}{\mbox{For}\:\:} \newcommand{\incat}{\:\: \mbox{in}\:}

内容:

定義はどうせ覚えきれない

フロベニウス代数/ホップ代数、あるいはモノイド圏/加群圏などの複雑な構造になると、その定義は(それぞれに)何十個かの等式(や同型関係式)*1で記述されます。それら何十個かの等式を書き下せと言われたら、僕は出来ません。そんなもん覚えてないし、記憶力に劣る僕が覚えられるわけないです。

しかし、ある程度の時間があれば定義を書き下せそうです。その時間は、翻訳に要する時間です。全然何も覚えてないわけじゃなくて、たくさんの等式とは“別な形“でイメージは持っています。そのイメージを何十個かの等式に翻訳すれば、オフィシャルな定義と同値な(まったく同じになるとは限らない)記述が得られるでしょう。

このような「イメージとテキストのあいだの翻訳」の例として、コモノイド〈余モノイド〉を取り上げます。僕は、「コモノイドはモノイドのひっくり返し」としか覚えていません。そのイメージから、具体的な等式を引っ張り出してみます。等式にすれば、具体的な計算が出来るというメリットがあります。具体的な計算により、集合圏におけるコモノイドの構造を完全に決定しましょう。

モノイドのイメージ

モノイドの法則を、ラフなストリング図で描けば次のようになります。

左から、結合法則〈結合律〉、左単位法則〈左単位律〉、右単位法則〈右単位律〉です。

ストリング図を描くツール/環境が整備されてないので、通常の文字組版・印刷やアスキーテキストでも実現できる代替表現として、次の方法があります。

  • ノード〈頂点 | 点〉の代わりに横線を描く。
  • ノードのラベルは横線の右脇に書く。
  • ワイヤー〈ストリング | 線〉は書かずに、ワイヤーのラベルだけを文字で書く。

この方法で、ラベル(集合と演算の名前・記号)をちゃんと書いてみます。

  1. Aは集合。
  2. Iは単元集合。太字の1を使わないのはアスキーテキストだけで書きたいから。Iの唯一の要素は何でもいいけど、今ここでは I = {0} とする。
  3. mはモノイドの乗法 m:A×A→A 。
  4. eはモノイドの単位 e:I→A 。

横線の脇に何も書いてないときは恒等写像だと思ってください。

結合法則
  A  A     A        A     A  A
 ------m  ---      ---   -----m
   A       A    =   A      A
  ----------m      ----------m
      A                A

左単位法則
        A        A
       ---      ---
  I     A        A
 ---e  ---  =   ---
  A     A        A
 --------m      ---
    A            A

右単位法則
  A              A
 ---            ---
  A    I         A
 ---  ---e  =   ---
  A    A         A
 --------m      ---
    A            A

集合Aの要素を取って、それを追いかけると:

結合法則
  x  y     z       x     y  z
 ------m  ---     ---   -----m
 m(x,y)    z   =   x    m(y,z)
  ----------m      -----------m
 m(m(x,y),z)       m(x,m(y,z))

左単位法則
        x        x
       ---      ---
  0     x        x
 ---e  ---  =   ---
 e(0)   x        x
 --------m      ---
 m(e(0),m)       x

右単位法則
  x              x
 ---            ---
  x    0         x
 ---  ---e  =   ---
  x   e(0)       x
 --------m      ---
 m(x,e(0))       x

最下段部分を取り出して、普通の等式として書けば:

  • 結合法則: m(m(x,y),z) = m(x,m(y,z))
  • 左単位法則: m(e(0),x) = x
  • 右単位法則: m(x,e(0)) = x

e(0) を単に「e」と書いて、m を中置演算子記号「・」に書き換えれば、お馴染みの形になります。

  • 結合法則: (x・y)・z = x・(y・z)
  • 左単位法則: e・x = x
  • 右単位法則: x・e = x

これらの等式は、僕でも覚えてはいますが、イメージから等式を引っ張り出すとは、こういうことです。

モノイドのひっくり返し

最初に出したラフなストリング図を、画像加工ソフトでミラーリング(鏡に写したような左右反転)してみます。

元画像

ミラー

さらに180度回転します。

180度回転

これが、コモノイド〈余モノイド | comonoid〉の法則を与えます。左から、結合法則〈余結合律 | coassosiative law〉、左余単位法則〈左余単位律 | left counit law〉、右余単位法則〈右余単位律 | right counit law〉です

ラフな絵をもう少し詳しく描いてみます。赤字は説明の注釈です。右単位法則は省略しています(左単位法則と同様)。

手書きなので読みにくいでしょうから、念の為:

  1. オダンゴ(丸印)のなかは、d です。
  2. 三角印のなかは、i です。
  3. 赤字テキスト: この部分が、(A×A)×A \cong A×(A×A) を示す。
  4. 赤字テキスト: この点線は 1 を示す。(今の約束だと 1 じゃなくて I ですね。失礼しました。
  5. 赤字テキスト: この部分が、1×A \cong A を示す。(同じく、1 じゃなくて I です。
  6. 赤字テキスト: idA

(A×A)×A \cong A×(A×A) と I×A \cong A を気にしないで(あたかもイコールだとみなして)、コモノイドの余結合法則と左余単位法則を可換図式で描けば:

\require{AMScd}
\begin{CD}
A         @>{d}>>              A\times A \\
@V{d}VV                        @VV{id_A \times d}V \\
A\times A @>{d \times id_A}>>  A\times A\times A
\end{CD}
\: \\
\: \\
\begin{CD}
A         @=                   A \\
@V{d}VV                        @| \\
A\times A @>{i \times id_A}>>  A
\end{CD}

(A×A)×A \cong A×(A×A) と I×A \cong A を省略したのは、このブログで使える描画ツール(MathJax)が、多角形のレイアウトが出来ない、というショーモナイ理由です。四角形のレイアウトで我慢するなら:

\require{AMScd}
\begin{CD}
A                    @>{d}>>   A\times A \\
@V{d}VV                        @VV{id_A \times d}V \\
A\times A            @.        A\times (A\times A) \\
@V{d \times id_A}VV            @| \\
(A\times A)\times A  @>{\cong}>> A\times (A\times A)
\end{CD}
\: \\
\: \\
\begin{CD}
A         @=                   A \\
@V{d}VV                        @A{\cong}AA \\
A\times A @>{i \times id_A}>>  I\times A
\end{CD}

描画や印刷の都合から、泣く泣く不正確でショーモナイ絵になってしまうことはよくあります(「絵算の威力をお見せしよう // 絵算の問題点」参照)。あと、「もう、めんどくせー」という理由で不正確でショーモナイ絵を描くことはもっとよくあります。とてもよくあります。

要素を追いかける

集合圏内のコモノイドは、集合と写像から組み立てられているので、集合の要素が、写像でどう移り変わるかを追いかけることができます。これもまずは、図の上で追いかけてみます。先程のストリング図と、要素追いかけの図を並べて掲げます。

説明しましょう。d(x) は、x∈A に対するdの値で d(x)∈A×A です。となると、d(x) は要素のペア(長さ2のタプル)です。成分に分解するために、第一射影 π1:A×A→A と第二射影 π2:A×A→A を使います。

結合法則

結合法則左辺の上段部分を見ると、入出力は:

  • A∋ x \mapsto 1(d(x)), π2(d(x))) ∈A×A

結合法則左辺の下段部分を見ると、入出力は:

  • A×A∋ (π1(d(x)), π2(d(x))) \mapsto 1(d(π1(d(x))), π2(d(π1(d(x))), π2(d(x))) ∈A×A×A

正確に言えば、(A×A)×A∋ ((a, b), c) \mapsto (a, (b, c)) ∈A×(A×A) の写像もありますが、まー、いいとしましょ。

結局、余結合法則左辺の要素の変化は次のようになります。

  • A∋ x \mapsto 1(d(π1(d(x))), π2(d(π1(d(x))), π2(d(x))) ∈A×A×A

同様にして、余結合法則右辺の要素の変化は次のようになります。

  • A∋ x \mapsto 1(d(x)), π1(d(π2(d(x))), π21(d(x))) ∈A×A×A

よって、余結合法則の等式表現は次のようになります。

  • 1(d(π1(d(x))), π2(d(π1(d(x))), π2(d(x))) = (π1(d(x)), π1(d(π2(d(x))), π21(d(x))) on A×A×A

"on A×A×A" は、「等式は A×A×A 上で成立する」という注釈です。連立方程式に分解すれば:

  1. π1(d(π1(d(x))) = π1(d(x)) on A
  2. π2(d(π1(d(x))) = π1(d(π2(d(x))) on A
  3. π2(d(x)) = π21(d(x)) on A
左余単位法則、右余単位法則

次に、左余単位法則の図を見ましょう。i は、i:A→I という写像ですが、I は単元集合 {0} だったので、i(x) = 0 という写像しかありません。余単位 i は一択で確定してしまうのです。

x \mapsto 1(d(x)), π2(d(x))) の後で、ペアの第一成分は 0 に潰されて (0, π2(d(x))) となり、(0, a) \mapsto a により π2(d(x)) だけが取り出されます。結局、余単位法則の左辺は、

  • A∋ x \mapsto π2(d(x)) ∈A

右辺はもちろん、

  • A∋ x \mapsto x ∈A

よって、左余単位法則の等式が言っていることは、

  • π2(d(x)) = x on A

同様にして、右余単位法則からは、

  • π1(d(x)) = x on A

が出ます。

集合圏内のコモノイドとは何なのか

前節最後の等式をもう一度見てみましょう。

  • π1(d(x)) = x on A
  • π2(d(x)) = x on A

dはコモノイドの余乗法でした。これらの等式の言っていることは:

  • 余乗法(の出力)の第一成分は入力に等しい。
  • 余乗法(の出力)の第ニ成分は入力に等しい。

つまり、コモノイド余乗法とは、入力を複製したペアを作ることです。それ以外の可能性は、左余単位法則/右余単位法則から禁止されてしまいます。

複製操作〈duplication | copy〉が余結合法則を満たすことは明らかですから、次のことが分かります。

  • 複製操作を余乗法に選ぶと、任意の集合上にコモノイドを構成できる。
  • コモノイドの余乗法は、複製操作以外にはあり得ない。

既に述べたように、余単位は選択の余地がなく決まってしまいます。そこから余乗法も選択の余地がなくなります。ということは、任意の集合 A に対して、A を台集合〈underlying set〉とするコモノイド構造が常にひとつだけ確定するのです。

我々は、任意の集合に対して(それを台集合とする)コモノイドを作る手順を知りました。この手順は標準的canonical〉、あるいは自然〈natural〉です。「標準的/自然」はテクニカルタームで、コモノイドの演算である余乗法と余単位が自然変換になっていることです。このことを説明しましょう。

ここからは、世間の習慣に従って、コモノイド余乗法を Δ、コモノイド余単位を ! という記号で表します。

  • Δ(x) = (x, x) (複製操作)
  • !(x) = 0 (破棄操作)

集合Aごとに Δ, ! が決まるので、次の書き方をします。

  • ΔA:A→A×A (Aにおける複製操作)
  • !A:A→I (Aにおける破棄操作)

ここで出てきた ΔA と !A は、ほんとに自然変換になっているのでしょうか。

自然変換は関手のあいだの変換ですから、先に関手を設定する必要があります。次の関手を準備します。

  1. Id:SetSet : Id(A) := A, Id(f:A→B) := (f:A→B)
  2. D:SetSet : D(A) := A×A, D(f:A→B) := (f×f:A×A→B×B)
  3. K:SetSet : K(A) := I, K(f:A→B) := (idI:I→I)

この設定のもとで、Δ = (ΔA:Id(A)→D(A) | A∈Obj(Set)) と ! = (!A:Id(A)→K(A) | A∈Obj(Set)) は、次のような自然変換であることは容易に確認できます。

  • Δ::Id⇒D:SetSet
  • !::Id⇒K:SetSet

容易な確認とは、次のような自然性を表す図式を書いて、図式が実際に可換となることを確認することです。


\For f:A \to B \incat {\bf Set} \\
\begin{CD}
Id(A) @>{\Delta_A}>> D(A) \\
@V{Id(f)}VV          @VV{D(f)}V \\
Id(B) @>{\Delta_B}>> D(B)
\end{CD}
\: \\
\: \\
\begin{CD}
Id(A) @>{!_A}>>  K(A) \\
@V{Id(f)}VV       @VV{K(f)}V \\
Id(B) @>{!_B}>>  K(B)
\end{CD} \\
\mbox{commute in}\:\: {\bf Set}

Id, D, K を定義により置き換えてしまえば、


\For f:A \to B \incat {\bf Set} \\
\begin{CD}
A   @>{\Delta_A}>> A\times A \\
@V{f}VV          @VV{f \times f}V \\
B   @>{\Delta_B}>> B\times B
\end{CD}
\: \\
\: \\
\begin{CD}
A    @>{!_A}>>  I \\
@V{f}VV       @VV{id_I}V \\
B    @>{!_B}>>  I
\end{CD} \\
\mbox{commute in}\:\: {\bf Set}

当たり前に見えるでしょ。

集合ごとにコモノイドを構成する方法は、いきあたりばったりなのではなくて、2つの自然変換により与えられる系統的な手順なのです。

コモノイドはつまらないのか

「なーんだ、コモノイドって複製のことなのか、つまらん」と思われた方もいるでしょう。実際、単純な結論になっています。しかし、コモノイド上の余加群まで考えると、メモリーやデータベースなどのストレージの代数的モデルができたりします。

集合圏のコモノイドは複製に限るのですが、他の圏では事情が変わります。同じ概念でも、環境となる圏(いわば世界)が変わればまったく様変わりしてしまうことは多いのです。例えば、(適当な体上の)ベクトル空間の圏Vectのなかで、コモノイドを考えると、それは余代数〈coalgebra〉になります。集合圏とは違って、ベクトル空間の圏のコモノイドである余代数には、様々なバリエーションがあります。

モノイドとコモノイドの両方の構造を持つ対象は双モノイドと呼びます。ベクトル空間の圏の双モノイドは双代数です。冒頭で名前だけ出したフロベニウス代数やホップ代数は、代数(ベクトル空間の圏内のモノイド)/余代数(ベクトル空間の圏内のコモノイド)/双代数(ベクトル空間の圏内の双モノイド)といった構造を扱う文脈において登場します。

とある構造を表す図式(可換図式やストリング図)をひっくり返すだけで、新しい構造を定義できます。単にひっくり返しただけですから、覚える負担もありません。もとの構造とひっくり返した構造は、似ても似つかないことがあります。形式的ひっくり返しで、内容的には全然別な物が現れるのがひっくり返し(双対性)の面白いところです。

ひっくり返しをするためには、まずは図式を描きます。それに、ミラーリングや回転をします。ミラーリングや回転が苦手な人(僕は苦手です)は、レーニングしましょう

*1:何十個と言っても、80個、90個ってことはないです。一桁じゃきかない、という程度の意味。

インデックスをできるだけ使わない共変微分計算

共変微分の接続係数が絡んだ計算を、インデックス〈添字〉無しで出来ないか? -- 行列成分/テンソル成分を表すインデックスの使用は抑えることが出来ます。成分にバラさないで、まるのまま計算すればいいからです。

インデックスを使わないことと、基底を取らないことは同じではありません。接続係数〈接続形式〉に関して言えば、基底(正確には局所フレーム)を取らないわけにはいきません。なぜなら、接続係数は、基底を選んだときにはじめて現れる量で、「基底なしの接続係数」という概念が無意味だからです(「騙されるな、接続係数(クリストッフェル記号)の仕掛け」参照)。

この記事では、ふたつの互いに双対な共変微分を例にして、インデックスを(できるだけ)使わない方法を紹介します。インデックス無しの計算が楽かと言えば、準備まで含めた労力は少なくはありません。計算そのものも、単純とは限りません。インデックス無しのメリットは、俯瞰的な立場から概念的・構造的な理解が得られる点でしょう。

逆に言えば、概念的・構造的な理解がないとインデックス無し計算は進みません。その点、インデックスを使う計算では、ガチャガチャがんばっていると何かしらの結果が得られるのが良いところです。まー、一長一短、トレードオフですな。
\newcommand{\hyph}{\mbox{-}}
\newcommand{\incat}{\:\: \mbox{in}\:}
\newcommand{\where}{\:\:\: \mbox{where}\:}
\newcommand{\eqon}{\:\:\: \mbox{on}\:}
\newcommand{\bilin}{\:\: \mbox{bilin}\:}
\newcommand{\covder}{\:\: \mbox{covder}\:}
\newcommand{\abb}{\stackrel{abb}{:=}}
\newcommand{\dototimes}{\overset{\cdot}{\otimes}}
\newcommand{\otimesdot}{\underset{\otimes}{\cdot}}
\newcommand{\L}{\langle}
\newcommand{\R}{\rangle}
%\newcommand{\Mid}{\bullet}
\newcommand{\Mid}{\:\|\:}
\newcommand{\vvec}[1]{{#1}\!\!\downarrow}

目次:

状況設定

Mを(なめらかな)多様体、U⊆M は開集合とします。これから出てくるM上のベクトルバンドルは、すべてU上で自明化〈trivialize〉できるとします。自明化〈trivialization〉とは、次のようなバンドル同型射〈可逆射〉 u です。

  •  u:E|_U \to Triv(U, {\bf R}^r) \incat {\bf VectBdl}[U]

ここで、

  1. E|U は、M上のベクトルバンドルEのUへの制限
  2. ベクトルバンドルEの階数〈rank〉(ファイバー次元)は r 。整数 r は、多様体の次元とは無関係
  3. Triv(U, Rr) は、全空間が U×Rr で、バンドルの射影が直積の第一射影 π1:U×Rr→U であるベクトルバンドル
  4. VectBdl[U] は、U上のすべてのベクトルバンドルと、ベクトルバンドルのあいだの底空間を動かさない準同型写像からなる圏

u は、圏VectBdl[U]の射なので、次の図式が(多様体の圏Manのなかで)可換になります。

\require{AMScd}
\begin{CD}
E|_U @>u>>  U\times {\bf R}^r \\
@V{\pi}VV         @VV{\pi_1}V \\
U  @= U
\end{CD} \\
\mbox{commutative}\incat {\bf Man}

開集合U上のEのフレーム〈局所フレーム | フレーム場 | フレーミング〉とは、自明化〈局所自明化〉の逆写像のことです。自明化 u の逆であるEのフレームを e とします。

  •  e := u^{-1} : Triv(U, {\bf R}^r)  \to E|_U \incat {\bf VectBdl}[U]

ところで、「騙されるな、接続係数(クリストッフェル記号)の仕掛け」では次のように書いています。定義が違う!

加群の基底に1から始まる番号を付けたものをフレーム〈frame〉といいます。

これはなぜかというと、以下のような集合達を、次々と1:1対応させる同型の系列があるからです。ここから先では、自明バンドル Triv(U, X) を XU と書きます(そのほうが見やすいので)。

  1.  {\bf VectBdl}[U]( {{\bf R}^r}_U, E|_U)
  2.  \Gamma_U( hom( {{\bf R}^r}_U, E|_U))
  3.  \Gamma_U( hom({\bf R}_U, (E|_U)^{[r]})  )
  4.  \Gamma_U( (E|_U)^{[r]}  )
  5.  (\Gamma_U( E|_U ) )^r

ここで、hom(-, -) はベクトルバンドルの内部ホム、(E|U)[r] は、ベクトルバンドルE|Uの、U上のファイバー積 ×U に関するr乗のことです。e∈VectBdl[U](RrU, E|U) なので、箇条書きを上から下に降りる同型の列にeを乗せれば、eは加群の直積 (ΓU(E|U))r に入るとみなせます。つまり、eは加群元のタプル(長さr)ともみなせ、線形同型射を表現していたのでタプルのr個の要素達は線形独立で生成的 -- つまり加群 ΓU(E|U) = ΓM(U, E) の基底です。

Eとは別に、もうひとつM上のベクトルバンドルE'があり、(E', E, <-|->) は双対ペアであるとします。これは、ベクトルバンドルの双線形写像〈ペアリング〉

  •  \L \hyph \mid \hyph \R : E' \times_M E \to {\bf R}_M  (ファイバーごとに双線形)

があり*1、ファイバーごとにベクトル空間の双対ペア (E'p, Ep, <-|->p) (p∈M)を定義していることです。

開集合U上で考えれば、Φ(U)-加群の双線形写像 ΓU(E'|U)×ΓU(E|U)→Φ(U) があり、非退化条件を満たすことです。Φ(U)は、U上のなめらかな関数の可換環でした(「騙されるな、接続係数(クリストッフェル記号)の仕掛け」参照)。Φ(U)-加群の双線形写像〈ペアリング〉も同じ記号 <-|-> で表します(オーバーロード)。

  •  \langle\hyph \mid \hyph\rangle : \Gamma_U(E'|_U) \times \Gamma_U(E|_U) \to \Phi(U) \bilin \incat \Phi(U)\hyph{\bf Mod}

Φ(U)-加群の圏のなかで双線形写像であることを  \bilin \incat \Phi(U)\hyph{\bf Mod} で示すことにします*2

その他の記号の約束

使う記号/記法は、ほぼ「騙されるな、接続係数(クリストッフェル記号)の仕掛け」に従います。記述の簡略化のために次の略記を導入します。 \abb は、左辺が右辺の略記〈abbreviation〉であることを示します。

  1.  \Phi \abb \Phi_M(U) = \Phi(U) = C^\infty(U)
  2.  \Omega \abb \Omega_M(U) = \Gamma_M(U, T^\ast M) = \Gamma_U(T^\ast M|_U)
  3.  \Sigma \abb \Gamma_M(U, E) = \Gamma_U(E|_U)
  4.  \Sigma' \abb \Gamma_M(U, E') = \Gamma_U(E'|_U)

Σが総和記号と紛らわしいので気をつけてください。Ω, Σ, Σ’ はいずれもΦ-加群です。

∇がベクトルバンドルEの共変微分のとき、∇の、開集合Uへの制限は次のように書きます。

  •  \nabla^U : \Gamma_M(U, E) \to \Gamma_M(U, E) \otimes_{\Phi(U)} \Omega_M(U)

略記を使えば:

  •  \nabla^U : \Sigma \to \Sigma \otimes_{\Phi} \Omega

このとき、∇の右肩のUも省略します。

  •  \nabla \abb \nabla^U

テンソル積は、Φ = Φ(U) に関して取るので、\otimes_\Phi を単に \otimes と書きます。すると、

  •  \nabla : \Sigma \to \Sigma \otimes \Omega

もうひとつの共変微分∇'は、

  •  \nabla' : \Sigma' \to \Omega \otimes \Sigma'

テンソル積の順序が変わっているのは、ペアリングと相性がいいようにです。小手先の工夫なので、深い意味はありません。

双線形写像のときと同じく、∇や∇'が共変微分〈covariant derivative〉であることを示すために次の記法を使います。

  • ∇:Σ→Σ\otimesΩ covder in Φ-Mod
  • ∇':Σ’→Ω\otimesΣ’ covder in Φ-Mod

共変微分はΦ-加群のあいだの写像ですが、Φ-線形写像ではないので注意してください。

加群の元 s とスカラー可換環の元)ξ との乗法は併置 ξs, sξ で書きますが、紛らわしいときは掛け算記号(ドット)を明示的に付けて  \xi\cdot s, s\cdot \xi とします。

関数 A の適用〈引数渡し〉は原則 A(x) ですが、混乱の危険がなければ併置 Ax も使います。

行列の記法

成分〈要素 | 項目 | 係数〉が集合Sの元で、m行n列の行列の全体を Mat[S](n, m) と書きます(n, mの順序に注意)。Mat[S](n, m) を  S[{}^m_n] とも書きます。さらに、混乱の恐れがなければ、

  •  S^n \abb S[{}^n_1] = Mat[S](1, n)
  •  S_n \abb S[{}^1_n] = Mat[S](n, 1)

ほとんどの場合、直積としてのn乗  S^n  S[{}^n_1] = Mat[S](1, n) を同一視しても問題ないでしょう。

Sn の要素を成分表示するときは、縦並び上付き添字にします。

  •  x = \begin{bmatrix}x^1 \\ x^2 \\ \vdots \\ x^n \end{bmatrix} \in S^n

Sn の要素を成分表示するときは、横並び下付き添字にします。

  •  x = \begin{bmatrix}x_1 & x_2 & \cdots & x_n \end{bmatrix} \in S_n

縦並びと横並びを区別するために、次のような注釈的飾り記号(矢印)を付けるといいかも知れません。

  • 縦並び  \vvec{x} \in S_n
  • 横並び  \vec{x} \in S^n

いいとは思うけど、系統的に使う気はないので、分かりにくいと思ったときだけ飾り記号を付けます(気まぐれ)。

Sが単なる集合ではなくて適切な演算を備えているときは行列の掛け算ができます。行列の掛け算は掛け算記号(ドットなど)で表します。掛け算記号の省略はしません(省略はだいぶ危険なので)。

以上の説明でだいたい間に合うと思いますが、諸々の記号/記法は次の記事にまとめてあります。

双対な共変微分

ふたつの共変微分 ∇:Σ→Σ\otimesΩ covder 、∇':Σ’→Ω\otimesΣ’ covder が双対〈dual〉であるとは、次の等式が成立することです。

  •  d \L t \mid s \R = \L \nabla' t \mid s \R +  \L t  \mid \nabla s \R \eqon \Omega

出現する要素の型を見てみると:

  1. t ∈Σ’
  2. s ∈Σ
  3. < t | s> ∈Φ
  4. d< t | s> ∈Ω
  5. ∇t ∈Ω\otimesΣ’
  6. ∇s ∈Σ\otimesΩ

となると、右辺に出てくる <-|-> は、最初に導入した <-|->:Σ’×Σ→Φ とは違うことが分かります。区別して書くことにします。

  • <-|->' : Σ’×(Σ\otimesΩ)→Ω bilin in Φ-Mod
  • <-|->'' : (Ω\otimesΣ’)×Σ→Ω bilin in Φ-Mod

それぞれ、

  • <t|s\otimesω>' := <t|s>ω
  • \otimest|s>'' := ω<t|s>

この記法を使うと、最初に書いた等式は:

  •  d \L t \mid s \R = \L \nabla' t \mid s \R'' +  \L t  \mid \nabla s \R' \eqon \Omega

ちょっと煩雑になりますが、こう書いたほうが混乱は少なくなります。慣れれば、こういう区別は不要ですし、区別しないほうが見た目はスッキリします。

これから、ふたつの共変微分 ∇, ∇' が双対になるための条件を調べていきます。計算の準備が色々と必要です。

フレーム(または自明化)が決める自明微分

eがベクトルバンドルEのU上のフレーム e:RrU→E|U だとすると、先に述べたことから、eは加群Σの基底要素を番号順に並べたものとみなせます。記号'e'をオーバーロード(多義的使用)して:

  • e ∈Σr

並べる方向と添字の約束から、

  •  e = \vec{e} = \begin{bmatrix} e_1 & e_2 & \cdots & e_r \end{bmatrix} \in \Sigma_r

一方、関数の縦タプル σ∈Φr は次のように書けます。

  •  \sigma = \vvec{\sigma} = \begin{bmatrix} \sigma^1 \\ \sigma^2 \\ \vdots \\ \sigma^r \end{bmatrix} \in \Phi^r

e と σ の行列積は次のようになります。


\:\:\:\:e\cdot\sigma = \vec{e}\cdot \vvec{\sigma} \\
= \begin{bmatrix} e_1 & e_2 & \cdots & e_r \end{bmatrix}\cdot \begin{bmatrix} \sigma^1 \\ \sigma^2 \\ \vdots \\ \sigma^r \end{bmatrix} \\
= e_1\cdot \sigma^1 + e_2\cdot \sigma^2 + \cdots e_r\cdot \sigma^r \in \Sigma

最後の行のドットは、Φ-加群Σの元への右スカラー乗法です。

以上の記法を使うと、任意の元 s∈Σ は、適当な σ∈Φr により s = e・σ と書けます。この場合、関数〈スカラー〉はドットの右側に来ます。

さて、フレーム(自明化の逆) e から決まる右自明共変微分を次のように定義します*3

  •  ({}^e RD)(s) = ({}^e RD)(e\cdot \sigma) := e \dototimes d\sigma

右辺の dσ は単に関数のタプルを微分したもので、

  •  d\sigma = d(\vvec{\sigma}) = d\begin{bmatrix} \sigma^1 \\ \sigma^2 \\ \vdots \\ \sigma^r \end{bmatrix} = \begin{bmatrix} d\sigma^1 \\ d\sigma^2 \\ \vdots \\ d\sigma^r \end{bmatrix} \in \Omega^r

記号 \dototimesテンソル積をベースにした行列積のことで、次のように定義されます。


\:\:\:\: e \dototimes \alpha = \vec{e} \dototimes \vvec{\alpha} \\
= \begin{bmatrix} e_1 & e_2 & \cdots & e_r \end{bmatrix} \dototimes \begin{bmatrix} \alpha^1 \\ \alpha^2 \\ \vdots \\ \alpha^r \end{bmatrix} \\
:= e_1 \otimes \alpha^1 + e_2 \otimes \alpha^2 + \cdots + e_r \otimes \alpha^r
\in \Sigma \otimes \Omega

演算 \dototimes のプロファイル(域と余域)は、

  •  (\vec{\hyph} \dototimes \vvec{\hyph}) : \Sigma_r \times \Omega^r \to \Sigma\otimes \Omega \bilin \incat \Phi\hyph{\bf Mod}

RD は "right derivative" のつもりです。右側にあるスカラータプルにだけ作用する微分作用素です。別な言い方をすると、フレーム e を構成するセクション達を微分したらゼロになります*4

  •  ({}^e RD)(e_i) = 0 \in \Sigma\otimes \Omega \:\:\:\mbox{for}\:\: i = 1,2,\cdots, r

ライプニッツ法則を考慮すれば、「右側にだけ作用 ⇔ フレームの微分はゼロ」です。

自明化 u:E|URrU を選ぶとフレーム e = u-1 : RrU→E|U が決まり。フレーム e が決まるとその右自明微分 eRD : Σ→Σ\otimesΩ が決まります。

  • eRD : Σ→Σ\otimesΩ covder in Φ-Mod

一般の共変微分 ∇:Σ→Σ\otimesΩ covder に対して、eRD との差をとることにより、∇の、eに対する右接続形式〈right connection form〉を定義できます。

  •  {}^e RC(\nabla) := \nabla - {}^e RD
  •  \nabla = {}^e RD +  {}^e RC(\nabla)

ここでの「右」にさほどの意味はありません。双対的な状況において、ペアのどちらであるかを区別するために「左右」を使っています。

接続形式は共変微分と同じプロファイル(域と余域)を持つ作用素 Σ→Σ\otimesΩ です。“形式”と呼ばれるのは、以下のような集合達を、次々と1:1対応させる同型の系列があるからです。

  1.  \Phi\hyph{\bf Mod}(\Sigma, \Sigma\otimes \Omega)
  2.  \Phi\hyph{\bf Mod}(\Phi \otimes \Sigma, \Sigma\otimes \Omega)
  3.  \Phi\hyph{\bf Mod}(\Phi, \underline{hom}(\Sigma, \Sigma\otimes \Omega))
  4.  \underline{hom}(\Sigma, \Sigma\otimes \Omega)
  5.  \Sigma^\ast \otimes (\Sigma\otimes \Omega)
  6.  (\Sigma^\ast \otimes \Sigma) \otimes \Omega
  7.  \underline{end}(\Sigma) \otimes \Omega

下線が付いた hom, end は、Φ-加群の圏における内部ホム/内部エンドです。eRC(∇)∈Φ-Mod(Σ, Σ\otimesΩ) なので、箇条書きを上から下に降りる同型の列に eRC(∇) を乗せれば、eRC(∇) は end(Σ)(ベクトルバンドルなら end(E|U))に値を持つ1次微分形式とみなせます。

なお、ふたつの共変微分の差がΦ-線形写像になり、共変微分の空間が、Φ-加群を差分加法群〈difference additive group〉とするアフィン構造を持つことは、次の記事に書いています。

双対的な自明微分

Φ-加群Σの双対相方〈dual partner〉であるΣ’上の共変微分 ∇':Σ’→Ω\otimesΣ’ covder に関しても、前節と同様な議論をします。同様なので、さっさと済ませます。

fはベクトルバンドル E' のU上のフレームですが、f:(Rr)U→E'|U とします。前節との違いは、実数を横に並べた  {\bf R}_r = {\bf R}[{}^1_r] = Mat[{\bf R}](r, 1) を使っていることです。これは、右と左を入れ替えたときに辻褄が合うようにです。このタイプのフレームをコフレーム〈coframe〉と呼ぶことがあります。

  • f∈Σ’r

とみなします。関数の横タプル τ∈Φr と f との行列積は次のようになります。


\:\:\:\:  \tau\cdot f = \vec{\tau} \cdot \vvec{f} \\
= \begin{bmatrix} \tau_1 & \tau_2 & \cdots & \tau_r \end{bmatrix}\cdot \begin{bmatrix} f^1 \\ f^2 \\ \vdots \\ f^r \end{bmatrix} \\
= \tau_1\cdot f^1 + \tau_2\cdot f^2 + \cdots + \tau_r\cdot f^r
\in \Sigma'

任意の元 t∈Σ’ は、適当な τ∈Φr により t = τ・f と書けます。この場合、関数〈スカラー〉横タプルはドットの左側に来ます。

f から決まる左自明共変微分を次のように定義します。

  •  (^f LD)(t) = (^f LD)(\tau\cdot f) := d\tau \dototimes f

ここでの演算  \dototimes のプロファイルは:

  •  (\vec{\hyph} \dototimes \vvec{\hyph}) : \Omega_r \times \Sigma'^r \to \Omega \otimes \Sigma' \bilin \incat \Phi\hyph{\bf Mod}

同じ記号' \dototimes 'がオーバーロードされてますが、行列積の演算子記号はだいたいにおいてオーバーロードされるものです。これで、左自明共変微分が定義されました。

  •  {}^f LD : \Sigma' \to \Omega\otimes \Sigma' \covder \incat \Phi\hyph{\bf Mod}

一般の共変微分 ∇':Σ’→Ω\otimesΣ’ covder に対して、fLD との差をとることにより、∇'の、fに対する左接続形式〈left connection form〉を定義できます。

  •  {}^f LC(\nabla') := \nabla' - {}^f LD
  •  \nabla' = {}^f LD +  {}^f LC(\nabla')

繰り返しますが、左右の区別は便宜的なもので、本質ではありません。

相反フレーム

前々節のフレーム e:RrU→E|U (あるいは e∈Σr)と、前節のフレーム〈コフレーム〉 f:(Rr)U→E'|U (あるいは f∈Σ’r)は特に関係性を想定していません。しかし、勝手に取ってきた e と f だと、計算がめんどくさくなり、いいことがありません。都合の良い e と f のペアを選びましょう。

都合の良い e と f のペアとは、次の等式を満たすものです。

  •  \L f^j \mid e_i \R = \delta^j_i \:\:\:\mbox{for}\:\: i, j = 1,2,\cdots, r

右辺はクロネッカーのデルタです。この条件を満たす e と f は、互いに相反フレーム〈reciprocal frame〉だと言います。「双対フレーム」と呼ぶことが多いですが、「双対」の通常の意味・用法とだいぶ食い違うので「相反」を使います。

相反フレームである条件を行列の形で書くなら:


\begin{bmatrix}
\L f^1 \mid e_1 \R & \ldots & \L f^1 \mid e_r \R \\
\vdots             & \ddots & \vdots \\
\L f^r \mid e_1 \R & \ldots & \L f^r \mid e_r \R \\
\end{bmatrix}
=
\begin{bmatrix}
1 &      \ldots & 0 \\
\vdots & \ddots & \vdots \\
0 &      \ldots & 1 \\
\end{bmatrix}
\eqon \Phi[{}^r_r]

さて、スカラー \L\hyph \mid \hyph \R をベースにした行列積 \L\hyph \Mid \hyph \R を次のように定義しましょう。


\:\:\:\: \L f \Mid e \R = \L \vvec{f} \Mid \vec{e} \R \\
=
\L
\begin{bmatrix}
f^1    \\ f^2 \\
\vdots \\ f^r
\end{bmatrix}
\Mid
\begin{bmatrix}
e_1 & e_2 & \ldots & e_r
\end{bmatrix}
\R \\
:=
\begin{bmatrix}
\L f^1 \mid e_1 \R & \ldots & \L f^1 \mid e_r \R \\
\vdots             & \ddots & \vdots \\
\L f^r \mid e_1 \R & \ldots & \L f^r \mid e_r \R \\
\end{bmatrix}
\in \Phi[{}^r_r]

演算  \L \hyph \Mid \hyph \R のプロファイルは:

  •  \L \vvec{\hyph} \Mid \vec{\hyph} \R  : \Sigma'^r \times \Sigma_r \to \Phi[{}^r_r] \bilin \incat \Phi\hyph{\bf Mod}

今定義した  \L \hyph \Mid \hyph \R を使って相反フレームの条件を書くならば:

  •  \L f \Mid e \R = \L \vvec{f} \Mid \vec{e} \R = I_r \eqon \Phi[{}^r_r]

ここで、 I_r は r×r の単位行列です。

行列計算

接続形式の計算では、番号付き基底であるフレームを選択しているので、インデックスを一切使わないわけにはいきません。ですが、インデックスの使用を行列計算の内部に閉じ込めることはできます。この節で、行列の計算法則を幾つか準備します。([追記]この節の説明は抽象度が低く見通しが悪いので、別な記事でもう少し一般的に述べるつもりです。[/追記]

最初に、各型ごとに使う変数名を決めておきます。

型(集合/加群 変数名 矢印付き 備考
Σ s  s = \vec{e}\cdot \vvec{\sigma} 加群の元
Σ’ t  t = \vec{\tau} \cdot \vvec{f} 双対加群の元
Σr e \vec{e} フレーム
Φr σ \vvec{\sigma} フレームによる縦表示
Σ’r f  \vvec{f} コフレーム
Φr τ  \vec{\tau} コフレームによる横表示
Ωr α  \vvec{\alpha} 微分形式の縦タプル
Ωr β  \vec{\beta} 微分形式の横タプル
\otimesΩ)r ω  \vec{\omega} Σ値微分形式の横タプル
\otimesΣ’)r ρ  \vvec{\rho} Σ’値微分形式の縦タプル

こういう対応を決める方法は、規模が大きくなると破綻します(覚えきれない!)。型と名前の対応を決める代わりに、添字を型注釈として用いる方法があります。それについては次の記事を参照してください。

 \L \hyph \Mid \hyph \R 以外に、 \L\hyph \mid \hyph \R', \L\hyph \mid \hyph \R'' をベースにした行列積も定義しておきます。

行列積 プロファイル ベースにする演算 備考
 \L \vvec{\hyph} \Mid \vec{\hyph} \R  \Sigma'^r \times \Sigma_r \to \Phi[{}^r_r]  \L \hyph \mid \hyph \R 左右ともセクション
 \L \vvec{\hyph} \Mid \vec{\hyph} \R'  \Sigma'^r \times (\Sigma\otimes\Omega)_r  \to \Omega[{}^r_r]  \L\hyph \mid \hyph \R' 右が微分形式
 \L \vvec{\hyph} \Mid \vec{\hyph} \R'' (\Omega\otimes\Sigma')^r \times \Sigma_r \to \Omega[{}^r_r]  \L\hyph \mid \hyph \R'' 左が微分形式

これらの行列積の定義は以下のとおりです。


\:\:\:\: \L f \Mid \omega \R' = \L \vvec{f} \Mid \vec{\omega} \R' \\
=
\L
\begin{bmatrix}
f^1    \\ f^2 \\
\vdots \\ f^r
\end{bmatrix}
\Mid
\begin{bmatrix}
\omega^1 & \omega^2 & \ldots & \omega^r
\end{bmatrix}
\R' \\
:=
\begin{bmatrix}
\L f^1 \mid \omega^1 \R' & \ldots & \L f^1 \mid \omega^r \R' \\
\vdots             & \ddots & \vdots \\
\L f^r \mid \omega^1 \R' & \ldots & \L f^r \mid \omega^r \R' \\
\end{bmatrix}


\:\:\:\: \L \rho \Mid e  \R'' = \L \vvec{\rho} \Mid \vec{e}  \R'' \\
=
\L
\begin{bmatrix}
\rho^1    \\ \rho^2 \\
\vdots \\ \rho^r
\end{bmatrix}
\Mid
\begin{bmatrix}
e_1 & e_2 & \ldots & e_r
\end{bmatrix}
\R'' \\
:=
\begin{bmatrix}
\L \rho^1 \mid e_1 \R'' & \ldots & \L \rho^1 \mid e_r \R'' \\
\vdots             & \ddots & \vdots \\
\L \rho^r \mid e_1 \R'' & \ldots & \L \rho^r \mid e_r \R'' \\
\end{bmatrix}

様々な行列積のあいだには、結合法則が成立します。

  1.  \L \vec{\tau}\cdot \vvec{f} \mid s \R = \vec{\tau}\cdot \L \vvec{f} \Mid s \R
  2.  \L t \mid \vec{e}\cdot \vvec{\sigma} \R =  \L t \Mid \vec{e} \R \cdot \vvec{\sigma}
  3.  \L \vvec{f} \Mid (\vec{e} \dototimes \vvec{\alpha}) \R' = \L \vvec{f} \Mid \vec{e} \R \cdot \vvec{\alpha}
  4.  \L (\vec{\beta} \dototimes \vvec{f}) \Mid \vec{e} \R'' = \vec{\beta} \cdot \L \vvec{f} \Mid \vec{e} \R

結合法則に見えませんか?  \L \hyph \mid \hyph \R, \L \hyph \mid \hyph \R', \L \hyph \mid \hyph \R'', \L \hyph \Mid \hyph \R, \L\hyph \Mid \hyph \R', \L\hyph \Mid \hyph \R'' は似たりよったりなので、すべて \diamond で書くことにして、 \cdot,\; \otimesdot も同じ記号(ドット)で書くことにすると次のようになります。

  1.  (\tau \cdot f) \diamond s = \tau \cdot (f \diamond s)
  2.  \tau \diamond (e \cdot \sigma) = (\tau \diamond e) \cdot \sigma
  3.  f \diamond (e \cdot \alpha) = (f \diamond e) \cdot \alpha
  4.  (\beta \cdot f) \diamond e = \beta \cdot (f \diamond e)

結合法則でしょ。これらの証明は、定義に従って“インデックス計算”をしてください。

ここでの行列計算の話は、演算子記号をたくさん導入したりしてアドホックな印象があるでしょうが、もっと一般的かつ系統的に定式化できます。演算子記号が爆発することもありません。が、複圏/多圏の概念が必要になり、それなりに面倒です。

双対な接続の条件

計算の道具が揃ったので、∇:Σ→Σ\otimesΩ covder と ∇':Σ’→Ω\otimesΣ’ covder が双対な接続である条件を、相反フレームに対する接続形式により記述しましょう。e∈Σr, f∈Σ’r を相反フレームとします。接続形式を次のように置きます。

  • A := eRC(∇) : Σ→Σ\otimesΩ in Φ-Mod
  • B := fLC(∇') : Σ’→Ω\otimesΣ’ in Φ-Mod

したがって、

  • ∇ = eRD + A : Σ→Σ\otimesΩ covder in Φ-Mod
  • ∇' = fLD + B : Σ’→Ω\otimesΣ’ covder in Φ-Mod

∇と∇'が互いに双対である条件は以下でした。

  •  d \L t \mid s \R = \L \nabla' t \mid s \R'' +  \L t  \mid \nabla s \R' \eqon \Omega

この等式の左辺と右辺を別々に計算してみます。まずは左辺を。


\:\:\:\; d\L t \mid s \R \\
= d\L \tau\cdot f \mid e \cdot \sigma \R \\
= d( \tau \cdot \L f \Mid e \R \cdot \sigma ) \\
= d( \tau \cdot I_r \cdot \sigma ) \\
= d( \tau \cdot \sigma ) \\
= d\tau \cdot \sigma + \tau \cdot d\sigma

最後のライプニッツ法則は、関数タプルの行列積に関するライプニッツ法則です。その証明は難しくはありません。

次に右辺を計算します。 Ae = A(\vec{e}), Bf = B(\vvec{f}) は、線形写像 A, B の引数と値をタプルに拡張して考えます。


\:\:\:\; \L \nabla' t \mid s \R'' +  \L t  \mid \nabla s \R' \\
%
= \L ({}^f LD + B)(\tau\cdot {f}) \mid {e}\cdot \sigma \R'' +
\L \tau \cdot {f}  \mid ({}^e RD + A) ({e}\cdot\sigma) \R' \\
%
= \L ({}^f LD)(\tau\cdot {f}) \mid {e}\cdot \sigma \R'' +
\L B(\tau\cdot {f}) \mid {e}\cdot \sigma \R'' + \\
\:\:\:\;  \L \tau \cdot {f}  \mid ({}^e RD) ({e}\cdot\sigma) \R' +
\L \tau \cdot {f}  \mid A({e}\cdot\sigma) \R' \\
%
= \L d\tau\dototimes {f} \mid {e}\cdot \sigma \R'' +
\L \tau\cdot B{f} \mid {e}\cdot \sigma \R'' + \\
\:\:\:\;  \L \tau \cdot {f}  \mid {e} \dototimes d\sigma \R' +
\L \tau \cdot {f}  \mid A{e} \cdot\sigma \R' \\
%
= d\tau\cdot \L {f} \Mid {e} \R \cdot \sigma  +
 \tau\cdot \L B{f} \Mid {e}  \R'' \cdot \sigma + \\
\:\:\:\;  \tau \cdot \L {f} \Mid {e}  \R \cdot d\sigma +
\tau \cdot \L {f}  \Mid A{e}  \R' \cdot\sigma \\
%
= d\tau\cdot \sigma  +
 \tau\cdot \L B{f} \Mid {e}  \R'' \cdot \sigma + \\
\:\:\:\;  \tau \cdot  d\sigma +
\tau \cdot \L {f}  \Mid A{e}  \R' \cdot\sigma \\

並び方向を示す矢印付きだと分かりやすいかな? かえって鬱陶しいかも。


\:\:\:\; \L \nabla' t \mid s \R'' +  \L t  \mid \nabla s \R' \\
%
= \L ({}^f LD + B)(\vec{\tau}\cdot \vvec{f}) \mid \vec{e}\cdot \vvec{\sigma} \R'' +
\L \vec{\tau} \cdot \vvec{f}  \mid ({}^e RD + A) (\vec{e}\cdot\vvec{\sigma}) \R' \\
%
= \L ({}^f LD)(\vec{\tau}\cdot \vvec{f}) \mid \vec{e}\cdot \vvec{\sigma} \R'' +
\L B(\vec{\tau}\cdot \vvec{f}) \mid \vec{e}\cdot \vvec{\sigma} \R'' + \\
\:\:\:\;  \L \vec{\tau} \cdot \vvec{f}  \mid ({}^e RD) (\vec{e}\cdot\vvec{\sigma}) \R' +
\L \vec{\tau} \cdot \vvec{f}  \mid A(\vec{e}\cdot\vvec{\sigma}) \R' \\
%
= \L d\vec{\tau}\dototimes \vvec{f} \mid \vec{e}\cdot \vvec{\sigma} \R'' +
\L \vec{\tau}\cdot B\vvec{f} \mid \vec{e}\cdot \vvec{\sigma} \R'' + \\
\:\:\:\;  \L \vec{\tau} \cdot \vvec{f}  \mid \vec{e} \dototimes d\vvec{\sigma} \R' +
\L \vec{\tau} \cdot \vvec{f}  \mid A\vec{e} \cdot\vvec{\sigma} \R' \\
%
= d\vec{\tau}\cdot \L \vvec{f} \Mid \vec{e} \R \cdot \vvec{\sigma}  +
 \vec{\tau}\cdot \L B\vvec{f} \Mid \vec{e}  \R'' \cdot \vvec{\sigma} + \\
\:\:\:\;  \vec{\tau} \cdot \L \vvec{f} \Mid \vec{e}  \R \cdot d\vvec{\sigma} +
\vec{\tau} \cdot \L \vvec{f}  \Mid A\vec{e}  \R' \cdot\vvec{\sigma} \\
%
= d\vec{\tau}\cdot \vvec{\sigma}  +
 \vec{\tau}\cdot \L B\vvec{f} \Mid \vec{e}  \R'' \cdot \vvec{\sigma} + \\
\:\:\:\;  \vec{\tau} \cdot  d\vvec{\sigma} +
\vec{\tau} \cdot \L \vvec{f}  \Mid A\vec{e}  \R' \cdot\vvec{\sigma} \\

以上の計算から、∇と∇'が互いに双対である条件は次のようになります。


\:\:\:\;\tau\cdot \L Bf \Mid e  \R'' \cdot \sigma + \tau \cdot \L f  \Mid Ae  \R' \cdot\sigma = 0
\eqon Ω[{}^r_r]

これは、行列に関する方程式です。任意の τ, σ に対してこの等式が成立する必要があるので、要求される方程式は:


\:\:\:\; \L Bf \Mid e  \R''     = - \L f  \Mid Ae  \R'\:\: \mbox{on}\: Ω[{}^r_r]

これは、微分形式を成分とする r×r 行列の等式です。ここから、(必要なら)露骨な〈explicit〉成分表示を得ることもできます。が、今回はしません。いつか、インデックスをバキバキ使った計算を扱うときの例題に残しておきます。

*1:ベクトルバンドルの双線形写像は、ベクトルバンドル準同型写像ではありません。ファイバーごとに線形写像にはならないからです。次の脚注も参照。

*2:実際には、加群の圏のなかに双線形写像は存在しません。双線形写像の居場所は別に設定する必要があります。それについては、「テンソル積の作り方」参照。

*3:騙されるな、接続係数(クリストッフェル記号)の仕掛け」では、標準共変微分と呼んだものです。左右の区別は双対性を扱うための便宜的なものです。

*4:物理的に言えば、フレームとは観測者が使う参照系なので、「参照系は静止している」と仮定した微分操作が自明微分です。

圏にグロタンディーク流位相を与える方法

昨日の記事の続きです。

内容:

色々な方法

集合Xがあるとき、Xに位相を載せる〈位相構造を与える〉標準的な方法は、開集合の集合 O⊆Pow(X) を特定することです。この方法が標準的ですが、他の方法もあります。閉包作用素や開核作用素で位相を定義することがあります。各点ごとに近傍系を与える方法もあります。一般性は損なわれますが、距離から位相を導くこともできます。色々な方法があるなかで、開集合の方法が利便性が高かったので、標準の地位を獲得したのでしょう。

集合ではなくて、圏に位相を載せる方法を考えてみましょう。何が標準的方法か、ハッキリとは分かりませんが、よく引用されるのは、グロタンディークによるグロタンディーク位相です。

別なやり方として、まず、圏C上の前層の圏 [Cop, Set] からトポスを作ってしまい、そのトポス上のオペレーターとして位相を導入する方法もあります。ローヴェア/ティアニー位相です。

ローヴェア/ティアニー位相とグロタンディーク位相の同値性が知られています。

前層トポスやグロタンディーク位相は、ふるい〈篩 | sieve〉の概念に基づいています。ふるいについては次の記事で扱っています。

ふるいを使わない、もっと単純な位相の定義はグロタンディーク・プレ位相です。グロタンディーク・プレ位相からグロタンディーク位相が決まります。

グロタンディーク位相/グロタンディーク・プレ位相の定義のなかで、引き戻し〈ファイバー積〉が使われています。引き戻しに依存しない定義は、被覆系〈coverage〉で与えられます。

現在のところ、集合に対する開集合のように、安定した標準的方法はないようです。いずれは、汎用性と使い勝手に優れた方法が標準として選ばれるのでしょう。今は、色々な可能性を試す時期なのかもしれません。

使いやすい方法

さてここで、汎用性はともかくとして、使い勝手がいい方法を紹介します。昨日の記事で触れた、圏Cとその部分圏Sのペアです。利便性を重視するので、Cにも条件を付けます。

  • 任意の集合 I に対するCの対象の族 (Xi | i∈I) は、余極限(直和)を持つ。

TopMan はこの条件を満たします*1

Sは単元被覆系〈singleton coverage〉となる(すぐ下で説明)のですが、部分圏であることから次は成立しています。

  • u, v in S で結合可能(cod(u) = dom(v))ならば、u;v in S

これは被覆の推移性を意味します。

Sが被覆系である条件は次のように書けます。

  • u:U→X in S, f:Y→X in C のとき、v:V→Y in S と g:V→U in C が存在して次の図式を可換にする。

\require{AMScd}
\begin{CD}
V   @>{g}>>  U \\
@V{v}VV      @VV{u}V \\
Y   @>{f}>>  X
\end{CD}

被覆、つまりSの射が十分にあることを保証するために、次の条件を付けます。

  • fがCの同型射ならば、f in S

特に、恒等射 idX:X→X は被覆になります。したがって、どんな対象にも被覆が存在します。Sにより単元被覆系が定義されるので、Cov(X) という記法を使います。

  • Cov(X) := {u:U→V in C| u in S}

S内でのファイバー積の存在は仮定します。

  • u:U→X, v:V→X ならば uとvのファイバー積が存在し、Sに入る。

特に、自分とのファイバー積 u×Xu を u[2] のように書きます。u[3], u[4] なども同じです。u[k] は、被覆のナーブ〈nerve | 脈体〉の構成に使われます(今日は述べませんが)。

以上の条件〈公理〉を満たす (C, S) は使いやすい“位相”になります。その実例は:

開射の圏

前節で述べた (C, S) により、Cに位相を載せることはできます。しかし、従来からよく知られている“開集合”の概念が欲しいときもあります。開集合に相当するCの射を開射〈open morphism〉と呼ぶことにします。開射は、従来の概念との橋渡しであって、実際はなくてもいいものです。

開射の全体OCの部分圏になります。次の条件を付けておきます。

  • [開射の公理 1] 開射はモノ射である。(O⊆Mono(C))

開射は、被覆(Sの射)との関係性において定義されます。

  • [開射の公理 2] 被覆 u:U→X と射 f:V→U があり、f;u : V→X がモノ射ならば f;u は開射である。
  • [開射の公理 3] 開射の族 ui:Ui→X のコタプル [ui | i∈I] : \coprod_{i \in I}Ui→X がエピ射ならば被覆になる。

被覆が、実は開被覆族であるとすれば、開射と被覆がお互いを規定しあう関係になります。

  • [開射の公理 4] 任意の被覆 f:W→X に対して、開射の族 ui:Ui→X と同型 g:W→\coprod_{i \in I}Ui が存在して、f = g;[ui | i∈I] となる。

以上の条件〈公理〉で、被覆は開射から構成されることになります。しかし、被覆がいつでも開射から構成されるわけではないし、重要なのは開射ではなくて被覆です。よって、開射の存在に拘ったり前提するのは良くないですが、従来型の(古典的)位相を扱う場合は、上記のように開射を仲立ちにすると分かりやすくなります。次の例では、開射が存在します。

  • C = Man
  • S = (なめらかな全射局所同相写像の圏)
  • O = (なめらかな開埋め込みの圏)

まとめ

  1. ManTopのような大きな圏〈large category〉上に、直接的に“巨大位相”を載せて使う方法は良さそう。
  2. “位相”は、圏の被覆系〈coverage〉として定義するのが良さそう。
  3. 被覆系が単元被覆系になると、話が単純になって楽だ。
  4. 古典的な開集合概念が欲しいときは、開射の圏で代用すれば良さそう。
  5. Man上には、全射しずめ込みの単元被覆系と、全射局所同相写像の単元被覆系がある。

*1:添字集合 I が大きすぎると余極限が多様体にならないケースがあるので、そこの調整は必要です。

グロタンディーク流サイトについて調べてみた

サイト〈site〉とは、圏であり、その対象が位相空間のように扱える構造を備えたものです。“位相を持った圏”とも言われます。“サイト=位相を持った圏”はグロタンディークのアイディアですが、本来のグロタンディーク位相以外に、様々な変種があるので、それらを総称してグロタンディーク流位相〈topology à la Grothendieck〉と呼ぶことにします。すると、「サイト = なんらかのグロタンディーク流位相を持つ圏」となります。

サイトについて、いくつかの記事を書きました。

  1. ビッグサイト微分幾何と自然変換の上付き添字
  2. サイトと層の大きさやら作り方やら
  3. ビッグサイトから巨大サイトへ

三番目の記事で巨大サイト〈giant site〉と呼んだタイプのサイトを使っている例を検索してみたので、それらを眺めた感想を記しておきます。

内容:

巨大サイトを使っている例

次の論文(順不同)で、巨大サイトを使っています。たまたま見つかったものなので脈絡はありません*1

  1. Differentiable Stacks, Gerbes, and Twisted K-Theory
  2. A NOT SO SHORT INTRODUCTION TO GROTHENDIECK TOPOI (EXTENDED ABSTRACT)
  3. Smooth loop stacks of differentiable stacks and gerbes
  4. Equivariance In Higher Geometry

使っているサイトや層をなんと呼んでいるかを表にまとめると:

nLabの分類 little big
ここでの分類 リトル ビッグ 巨大
1. Xu small on Man big on Man
2. de Carvalho Zariski on Top étale on Top
3. Roberts-Vozzo O, C, Subm on Man
4. Nikolaus-Schweigert open, sub on Man

グロタンディーク流位相を載せている台となる圏は、(なめらかな)多様体の圏Man位相空間の圏Topです。以下、グロタンディーク流位相を単に「位相」ともいいますが、普通の位相(開集合の集合)ではありません。

XuのMan上のsmall位相と、de CarvalhoのTop上のZariski位相は、標準的なリトル位相、つまり空間 X ごとに開集合の圏 Open(X) を考えるものです。したがって、Xuのsmallサイトとde CarvalhoのZariskiサイトは伝統的なサイト構造を持ちます。de Carvalhoは代数幾何の言葉を借用してますが、Top上のZarisiki位相〈グロタンディーク流位相〉は、スペクトルのザリスキー位相ではないです(用語法がマズイ気がする)。

Xuのbig位相、Roberts-VozzoのO位相、Nikolaus-Schweigertのopen位相は同じもので、標準リトル位相と大差ありません。単射 u:U→M in Man で、Uと“Mの開集合”との同相を与える射(開埋め込み)を開射〈open morphism〉として、開射の族 (ui:Ui→M | i∈I) が全体として全射〈jointly epic〉のとき被覆だとします。

de Carvalhoの(Topにおける)étale射は、局所同相写像のことで、étale射の族が全体として全射のとき被覆だとする位相が(Top上の)étale位相です。これも、代数幾何と同じ言葉ですがTopでの話です。

Roberts-VozzoのSumb位相と、Nikolaus-Schweigertのsub位相は同じ位相で、単一の全射的しずめ込み〈surjective submersion〉を被覆とする(Man上の)位相です。

Roberts-VozzoのC位相とは、"regular closed compact neighbourhoods, such that the interiors also cover"が被覆になる位相だそうです。有限次元多様体においては、コンパクト集合は正則閉集合なので、無限次元多様体も考えるときにC位相を使うようです(よく知らんけど)。

グロタンディーク流位相を定義している実体は被覆(と呼ばれる射の族)の集まりですが、被覆の集まりとして違っても“同値な位相”になることがあります。同値性の定義は次のようなものがあります。

  1. 与えられた2つの被覆の集まりを可能なかぎり膨らまして(飽和させて)同じ集まり(集合とは限らない)になる。
  2. 与えられた2つの被覆の集まりから定義される層の概念が同じになる。
  3. 与えられた2つの被覆の集まりから定義されるスタックの概念が同じになる。
  4. 与えられた2つの被覆の集まりから定義されるトポスが、トポスとして同値になる。

de Carvalho論文とNikolaus-Schweigert論文に、それぞれ次のことが書いてあります。

  1. Top上で、Zariski位相(=small位相=標準リトル位相)とétale位相は、同値なトポスを定義する。
  2. Man上で、open位相(=O位相)とsub位相(=Sumb位相)が定義するスタックの概念は同じになる。

目的とする構造(トポスやスタック)が同じになるのなら、位相(被覆の集まり)の与え方が違うのは別にかまわないのです。

被覆系による位相の定義

nLabの意味でのビッグサイトは、あんまり使われないようです*2。使っているのは、従来型のリトルサイトか、巨大サイトです。となると、nLabの用法とは食い違いますが、巨大サイトをビッグサイトと呼んでもいい気がします。実際、Xuのビッグサイト/ビッグ層は、巨大サイト/巨大層の意味です。

グロタンディーク流位相の定義としては、グロタンディーク・プレ位相が使い勝手がいいですが、一般性からはやはり被覆系〈coverage〉が優れているようです。

射の族の集まりが被覆系であるための条件はひとつしかありません。しかし、その条件は複雑です。ここで確認しておきましょう。

被覆系の条件: 圏Cの対象 X 上の任意の被覆族〈covering family〉U = (Ui→X | i∈I) と、任意の射 f:Y→X を取ったとき、次のような、Y 上の被覆族 V = (Vk→Y | k∈K) が存在する。

\require{AMScd}
\forall k \in K, \\
\exists i \in I ,\; \exists g:V_k \to U_i \:\mbox{in}\:  {\mathcal C}.\\
\mbox{commutes}\: [ \\
\begin{CD}
V_k  @>{g}>>     U_i \\
@VVV          @VVV \\
Y    @>{f}>>  X
\end{CD} \\
]

上記の図式を D として、条件全体をもう一度論理式で書けば:

  • ∀ X ∈|C|, ∀ U = (Ui→X | i∈I) ∈Cov(X), ∀ (f:Y→X) ∈Mor(C).
    ∃ V = (Vk→Y | k∈K) ∈Cov(Y).
    ∀ k ∈K, ∃ i ∈I, ∃ (g:Vk→Ui) ∈Mor(X). commutes [D]

鬱陶しい条件ですが、これひとつだけですし、圏Cに対して何の条件も要求していません。ファイバー積〈引き戻し〉が作れないときでも使えるのが便利です。

単元被覆系

今回驚いたことは、被覆系の単純化としての単元被覆系という概念です。これは、コロンブスの卵。

サイトCの対象Xをターゲットとする被覆族〈covering family〉の集まりを Cov(X) と書くのでした。U∈Cov(X) ならば、Uは、適当な添字集合 I を持つ族 (ui:Ui→X | i∈I) です。この添字集合が単元集合〈singleton set〉なら、被覆を単に一本の射 u:U→X とみなせます。添字集合がすべて単元である被覆系を単元被覆系〈singleton coverage〉と呼びます。

単元被覆系においては、被覆は族ではなくて射です。

  • u∈Cov(X) ⇒ (u:U→X for some U)

単元被覆系では、色々と話が単純になります。例えば、被覆系である条件は次のように書けます。

  • ∀ X ∈|C|, ∀ (u:U→X) ∈Cov(X), ∀ (f:Y→X) ∈Mor(C).
    ∃ (v:V→Y) ∈Cov(Y).
    ∃ (g:V→U) ∈Mor(X).(g;u = v;f)

Man上のSumb位相〈sub位相〉は単元被覆系です。さらに、Subm位相は次の性質も持ちます。

  • (u:U→X), (v:V→X) ∈Cov(X) ならば、uとvのファイバー積が存在して Cov(X) に入る。

一般に、圏Cの部分圏Sがあって、次の条件を満たすとします。

  1. S(X) := {u∈Mor(S) | cod(u) = X} とすると、X \mapsto S(X) は、C上の単元被覆系になる。
  2. u:U→X, v:V→X in S ならば、uとvのファイバー積もSに入る。

このとき、CSのペアは、使いやすいサイトを定義します。C = ManS = (全射的しずめ込みの圏) 以外に、C = TopS = (全射的étale写像の圏) もこのようなサイトの例です。

今まで出てきたグロタンディーク流位相とサイトの特徴をまとめておきます。

位相 台圏 開射 被覆は族か射か
open Top, Man 開埋め込み 被覆族
étale Top, Man étale写像 被覆族
Subm Man 全射的しずめ込み 被覆射(単元族)
surj-étale Top, Man 全射的étale写像 被覆射(単元族)

*1:しかしながら、やはりテーマに共通性は見られます。層、スタック、ジェルブ〈gerbe フランス語〉などを話題にしてますね。

*2:ビッグサイトは、主題的に扱うよりは、巨大サイトとリトルサイトのつなぎ役のような位置付けのようです。

シュバレー/アイレンベルク関手の話

おそらく2019年最後の記事。別に総括とかを意識はしてないですが、結果的にそれらしい記事になったかも知れません。

自分で書いた過去記事を読んで「なんだこれ?」と思うことがあります。内容が分からないというよりは、動機を思い出せないのです。「何のために、この記事を書いたのだろう?」が不明になるのです。

最近書いた幾つかの記事:

これらの記事達の背後にある動機について書いておこうかな、でないと「なんだこれ?」になりそうだから。

内容:

シュバレー/アイレンベルク代数とシュバレー/アイレンベルク関手

最近、シュバレー/アイレンベルク関手に興味を持っています。なんで興味を持つかは、この記事の後半で書きます。

nLab項目では、次のページがあります。

項目名が"Chevalley-Eilenberg algebra"となってますね(関手じゃない)。これは、リー代数 L に対して作られる微分階付き代数〈differential graded algebra | 次数付き微分代数〉 CE(L) について書いてあるからです。リー代数 L のシュバレー/アイレンベルク代数 CE(L) は、様々な拡張・変種を持ちます。拡張・変種では、L がリー代数とは限りません。この事情を考慮して、以下では L をリー代数類似物〈Lie-algebra-like object〉と呼びましょう。

特定のリー代数類似物 L に対して、そのシュバレー/アイレンベルク代数 CE(L) を考えるだけではなくて、すべてのリー代数類似物に対してシュバレー/アイレンベルク代数を対応させるならば、CE は関手 CE:CD となるでしょう。ここで、C は、リー代数類似物とそのあいだの準同型射からなる圏、D微分階付き代数&準同型射の圏です。

先に引用したnLab項目"Chevalley-Eilenberg algebra"では、CE を関手としては記述していません。CE の域圏〈domain category〉、余域圏〈codmain category〉となる圏についてもハッキリとは*1書いてありません。説明が(ときに過剰に)圏論的であるnLabにしては不徹底で、なんか不満が残ります。

そこで、関手としてのシュバレー/アイレンベルク代数、つまりシュバレー/アイレンベルク関手〈Chevalley-Eilenberg functor〉については自分で書き下してみよう、とか思い立つわけです。が、思い立ってもそれほど簡単ではありません。シュバレー/アイレンベルク関手は、そこそこ複雑なモノなので、短くて正確な記述を与えるのは、なかなか大変。

短くて正確な記述を与えるための道具 -- 基本的な概念・用語・記法 -- を準備する必要がありそうです。冒頭で引用した記事達は、そういう記述の道具に関するものです。シュバレー/アイレンベルク関手だけが目的ではありませんが、同様なレベルの複雑さを持つ対象物を短く正確に記述できたらいいな、と思っているのです。

リー亜代数

今ここで(この記事で)、シュバレー/アイレンベルク関手の定義を与えるのか、というと、それはしません(いずれ)。シュバレー/アイレンベルク関手の雰囲気のお話です。

まず、どんなタイプのリー代数類似物を扱うかを決めましょう。リー亜代数〈Lie algebroid〉にします。リー亜代数は、多様体Mに対して定義されます。M上のベクトルバンドルEに代数構造を付け加えたものです。以下の定義では、「多様体上の関数、微分形式、接ベクトル場などの書き方」にある Γ, Ω, Φ, Ξ などを使います。

ベクトルバンドルEに対して、リー亜代数として付け加える構造は:

  1. Γ(E)上の、R-リー代数の構造。リー括弧を [-, -] とする。
  2. EからTMへの、M上のベクトルバンドル写像 ρ:E→TM (ρ;πTM = πE)。ρをアンカー写像〈anchor map〉と呼ぶ。

注意すべきは、ベクトルバンドルEがリー代数バンドル(各ファイバーがリー代数)なのではなくて、セクション空間 Γ(E) がR上の(Φ(M)上のではない!)リー代数であることです。セクション空間のリー代数構造とアンカー写像が満たすべき法則(公理)は:

  • [ρ-ライプニッツ法則] For X, Y∈Γ(E), f∈Φ(M),
    [X, f・Y] = (ρ*(X)(f))・Y + f・[X, Y]

ここで、'・'は、Γ(E) をΦ(M)-加群とみたときのスカラー乗法です。ρ*(X) は、ρ:E→TM から誘導された加群射 ρ*:Γ(E)→Γ(TM) (Γ(TM) = Ξ(M))によるXの像を、微分作用素(Φ(M)上の導分)とみたものです。X∈Γ(E) はΦ(M)に直接は作用しませんが、ρを経由してΦ(M)に作用する微分作用素のようにみなせます。

リー亜代数のより詳しいことは、nLab項目 "Lie algebroid" を参照してください。リー亜代数の例をみると、けっこう色々な例があります。(僕にとって)わかりやすいモノを挙げると:

  1. Mの接ベクトルバンドル自体は、アンカー写像を恒等射としてリー亜代数になります。Γ(TM) = Ξ(M) はR-リー代数であり、ρ = id であるρ-ライプニッツ法則=普通のライプニッツ法則を満たします。
  2. M = 一点 とすると、TM = 0 (一点上のゼロベクトルだけのベクトルバンドル)、Φ(一点) = R となります。任意のリー代数 L はアンカー写像をゼロ写像として一点上のリー亜代数になります。ρ-ライプニッツ法則は、Lのリー括弧のR-双線形性に退化します。
  3. Eをベクトルバンドルとして、end(E) = hom(E, E) (記法は「バンドルと層の記法 まとめ」参照)は代数〈多元環〉バンドルになります。end(E) は結合的単位的代数のバンドルなので、交換子積を入れるとリー代数バンドルになります。Γ(end(E)) には誘導されたリー代数構造が入ります。アンカー写像をゼロ写像とすれば、M上のリー亜代数が得られます。
  4. Mが葉層多様体〈foliated manifold〉のとき、葉に沿った接ベクトルの全体はTMの部分ベクトルバンドル F⊆TM になります。Γ(F) がリー代数 Γ(TM) の部分リー代数になることは、フロベニウスの定理から分かります。埋め込み F→TM をアンカー写像として F はM上のリー亜代数になります。

任意のリー亜代数から、そのジェット・リー亜代数〈jet Lie algebroid〉を構成できるようです。

*2

接バンドルのリー亜代数とド・ラーム複体

接バンドル〈接ベクトルバンドル〉は自然にリー亜代数になります。その構成素を繰り返し書くと:

  1. ベクトルバンドル πTM:TM→M
  2. 接ベクトル場の空間 Γ(TM) = Ξ(M) のリー代数構造。リー括弧は、リー微分(「流れとリー微分」参照)。
  3. アンカー写像は、TM→TM の恒等写像
  4. ライプニッツ法則は、通常のライプニッツ法則(ヤコビ恒等式

リー亜代数としての接バンドルも記号の乱用で TM と書くことにします。特別なリー亜代数 TM に対して、シュバレー/アイレンベルク代数を構成すると、それはMのド・ラーム複体〈de Rham complex〉になります。ド・ラーム複体は微分階付き代数です。ここから先、微分階付き代数をDG代数〈DG algebra〉と呼ぶことにします。

「複体」がやたらに多義語なことは「複体、複体、複体 … なんとかしてくれ!」で書きましたが、ド・ラーム複体の「複体」は「DG代数」に置き換えてもOKです。通常の複体(より正確にはコチェーン複体)に付け加わる構造は掛け算(外積)です。

DG代数とは、掛け算を持ったコチェーン複体だと思えばいいのですが、多様体Mのド・ラームDG代数〈de Rham DG-algebra〉DR(M) を単一の代数構造として記述すれば:

  1. DR(M) の下部構造は、可換環Φ(M)上の結合的単位的代数〈多元環
  2. Nで番号が付いた*3 DR(M) の部分加群 DRi⊆DR(M) が指定されている。Mの次元を超えた k では DRk(M) = 0 。
  3.  DR(M) \cong {\displaystyle \bigoplus_{i \in {\bf N}}}DR_i(M) (標準的な同型が在る)
  4. 部分加群 DR0(DR) は可換環になっていて(掛け算で閉じていて)、可換環として DR0(M) \cong Φ(M) (標準的な同型が在る)
  5. 掛け算は、階付き可換律〈graded commutative law〉「x∈DRi(R), y∈DRj(R) ならば y・x = (-1)i+j(x・y)」を満たす。
  6. R-線形自己写像 d:DR(M)→DR(M) があり、a∈DRi(M) ならば d(a)∈DRi+1(M) (dは次数 +1 の写像
  7. 階付きライプニッツ法則〈graded Leibniz rule〉: a∈DRk(M) ならば d(a・b) = (da)・b + (-1)ka・(db) を満たす。
  8. d\circd = 0 を満たす。(dの平方零性〈nilquadraticy〉)

Mのド・ラームDG代数 DR(M) は、Mから直接構成できますが、接バンドル・リー亜代数 TM にシュバレー/アイレンベルク関手 CE を施しても作れます。

  • DR(M) \cong CE(TM) in Φ(M)-DGAlg

ここで、Φ(M)-DGAlg は、可換環Φ(M)上のDG代数の圏です(射の定義をしてないけど)。この同型だけでも、シュバレー/アイレンベルク関手(リー亜代数からのシュバレー/アイレンベルク代数の構成)を考える価値があると思います。ベクトル場のリー代数と、ド・ラーム複体〈ド・ラームDG代数〉の関係がハッキリします。

微分インフラとシュバレー/アイレンベルク関手

多様体上で微分計算をするときに必要な演算〈操作〉には何があるでしょうか。並べてみます。

  1. 関数の偏微分
  2. ベクトル場のリー微分
  3. 微分形式の外微分
  4. 微分形式の内微分

「内微分〈interior derivative〉」は聞いたことがないかも知れません。https://en.wikipedia.org/wiki/Interior_product によると、次の別名があるそうです。

  • interior product, interior multiplication, inner multiplication, inner derivative, insertion operator, inner derivation

他に、antiderivation〈反微分〉、contraction〈縮約〉もあります。知名度低い割に別名あり過ぎ! ベクトル場Xによる微分形式ωの内微分 iX(ω) は、ωを、ベクトル場の空間上の交代的〈反対称的〉複線形形式とみて、ω(X, -, ..., -) を対応させる写像です。引数の個数がひとつ減るので Ωk(M)→Ωk-1(M) という写像です。

上記の4種の微分操作〈導分〉達〈four derivation operators〉を備えたシステムを微分インフラ〈differential infrastructure〉と呼びましょう。「微分インフラ」は、厳密な定義を持つ言葉ではなくて、雰囲気な言葉ですが、上記4種の微分操作の存在は念頭に置きます。

多様体上の微分インフラの表現方法として、大ざっぱには二種類が考えられます。

  1. ベクトルバンドルを中心とした幾何的な定式化
  2. 微分形式を中心とした代数的な定式化

ここでの「幾何的」「代数的」は、強いて言えばの“傾向性”であって、たいした意味はありません。今までに出した例で言えば、接バンドル・リー亜代数が(微分インフラの)幾何的な定式化で、ド・ラームDG代数が(微分インフラの)代数的な定式化となります。

シュバレー/アイレンベルク関手 CE とは、微分インフラの幾何的定式化から微分インフラの代数的な定式化を構成する関手です。

  • CE : (微分インフラの幾何的定式化の圏) → (微分インフラの代数的定式化の圏)

単なる関手ではなくて、2つの圏の圏同値を与えてくれると嬉しいです。

シュバレー/アイレンベルク関手の拡張

今までに述べた事例では、次の3つの概念が登場しました。

  • リー亜代数
  • DG代数
  • リー亜代数からDG代数を構成するシュバレー/アイレンベルク関手

これらの概念の拡張・一般化を考えましょう。

リー亜代数の一般化としてライプニッツ亜代数Leibniz algebroid〉があります。その定義はリー亜代数とほとんど同じですが、リー括弧が持っていた反対称性の条件を落とします。ベクトルバンドルEのセクション空間 Γ(E) は、反対称とは限らない括弧積 {-, -} を持つ代数系になります。

上記のような括弧積 {-, -} をライプニッツ/ドルフマン括弧Leibniz-Dorfman bracket〉*4と呼び、代数系のことはライプニッツ代数Leibniz algebra〉と呼びます。反対称性を持たないライプニッツ代数は、リー代数に比べてだいぶ扱いにくいようですが、アンカー付きベクトルバンドル ρ:E→TM 上で考えると、微分インフラとして機能します。ライプニッツ亜代数の法則〈公理〉は:

しかしこれだけだと、微分演算の局所性〈locality〉が保証されず局所計算ができないので、局所性作用素〈locality operator〉を入れた局所ライプニッツ亜代数〈local Leibniz algebroid〉が適切な一般化でしょう。

DG代数の一般化はどうでしょうか。DG代数から、外微分dの平方零性〈nilquadraticy〉を落としたものを曲DG代数〈curved DG-algebra〉と呼びます。単に「d\circd = 0 が成立しない」と言われても途方に暮れるので、d\circd が曲率元/曲率作用素〈curvature {element | operator}〉で表現可能なことを要請します。DG代数の条件〈公理〉から階付き可換性を落とすと非可換DG代数になりますが、曲DG代数では可換性も仮定しないようです。

曲DG代数を使うと、多様体上の接続(定義は色々、「コジュール接続の圏」の最初の節を参照)の曲率2-形式や接続1-形式、共変外微分余系列(コチェーン複体にはならない)などをとてもうまく説明できます。これは正しい一般化なのだと思います。コジュール接続〈線形接続〉を扱うには、曲DG代数だけではなくて、曲DG代数上の曲DG加群〈curved DG-module〉も必要になります。

今述べたような一般化をすれば、シュバレー/アイレンベルク関手は、局所ライプニッツ亜代数の圏から曲DG代数/曲DG加群の圏への関手となります。これは、域圏・余域圏の拡張に伴う関手の拡張です。それだけではなく、構成手順も拡張・一般化することができます。

リー代数に対するシュバレー/アイレンベルク代数の拡張として、ヴェイユ代数〈Weil algebra〉があります。シュバレー/アイレンベルク代数が、台として外積代数〈反対称代数〉だけを使っていたのに対して、ヴェイユ代数では対称代数も使います。さらにヴェイユ代数の拡張としては:

  1. リー代数の線形表現τを組み入れたτ-共変ヴェイユ代数〈τ-covariant Weil algebra〉
  2. リー代数の普遍包絡代数とクリフォード代数を使った量子ヴェイユ代数〈quantum Weil algebra〉
  3. 上記両方の拡張を施した量子τ-共変ヴェイユ代数〈quantum τ-covariant Weil algebra〉

シュバレー/アイレンベルク関手の構成法に、このような各種ヴェイユ代数を取り入れた関手をヴェイユ/シュバレー/アイレンベルク関手〈Weil-Chevalley-Eilenberg functor〉と呼ぶことにすれば、これは単なる域・余域の拡張以上のモノになります。

シュバレー/アイレンベルク関手が意味を失うとき

シュバレー/アイレンベルク関手の最初の定義を思い出すと、“接ベクトルバンドル・接ベクトル場の構造”から、“余接ベクトルバンドル微分形式の構造”を作り出すものでした。“接ベクトルバンドル・接ベクトル場”と“余接ベクトルバンドル微分形式”は、双対な構造物です。つまり、シュバレー/アイレンベルク関手は、双対なモノを対応付けていると言えます。

シュバレー/アイレンベルク関手が、その域圏と余域圏のあいだの圏同値を与えるとき、それは双対な圏が同値になることを意味するでしょう。その意味で、シュバレー/アイレンベルク関手は、大規模な双対性の一部分を担っている素材です。互いに双対なペアが、異なる圏に住んでいる(遠距離恋愛)ので、シュバレー/アイレンベルク関手が、ペアを結びつけてくれているのですね。

双対ペアを異なる圏に離れ離れに住まわせるのではなくて、一緒にしたらどうでしょうか。単一の構造の内部に双対性を閉じ込めてしまうのです。接ベクトル場と微分形式を一緒にした構造は想像できるでしょう。もし、双対性込みの構造として微分インフラを定式化すれば、シュバレー/アイレンベルク関手は存在意義を失います。

おそらくですが、微分インフラの定式化として、2つの流儀の定式化をシュバレー/アイレンベルク関手でつなぐやり方はだるくなる気がします。いずれは、接ベクトル場方式と微分形式方式を統合・融合した定式化により、シュバレー/アイレンベルク関手とはオサラバするときが来るのかも知れません。

参考資料

検索で調べただけで、まったく見てない資料もあります。

nLabの関係する項目:

  1. Chevalley-Eilenberg algebra
  2. Lie algebroid
  3. Lie infinity algebroid
    • リー亜代数の一般化であるリー∞亜代数
  4. differential graded algebra
  5. Leibniz algebra
  6. curved dg-algebra
  7. Weil algebra

その他の資料:

  1. Branislav Jurčo, Jan Vysoký -- Leibniz algebroids, generalized Bismut connections and Einstein–Hilbert actions
  2. Zhaoting Wei -- Covariant Weil algebras
  3. Camilo Arias Abad, Marius Crainic -- The Weil algebra and the Van Est isomorphism
    • 前半に、リー亜代数に対するヴェイユ代数の説明があるようです(読んでない)。
  4. Notes of the talk of A. Polishchuk -- Introduction to curved dg-algebras
    • わずか3ページですが、曲DG代数について非常によくまとまっています。
  5. Jonathan Block -- Duality and equivalence of module categories in noncommutative geometry I
    • 曲DG代数、曲DG加群、曲DG圏などについて書いてあるようです。II もあります。
  6. Hyungrok Kim, Christian Saemann -- Adjusted Parallel Transport for Higher Gauge Theories
    • ヴェイユ代数(とその他色々な道具)を使って高次平行移動の説明。2019年11月14日投稿の新しい論文。

*1:[追記]ちょっとだけ書いてありました。基本的な場合においては、CEはリー代数の圏からDG代数の圏への関手だと書いてあります。[/追記]

*2:https://www.youtube.com/watch?v=VV7w-4U8KSo(映画フランス語版) のスクリーンショット画像
ジェット・リー〈Jet Li〉さんは、現在病気を患っているようです。ご回復を願っております。

*3:Zで番号が付いていて、負の部分はゼロ加群だと思ってもいいです。

*4:単に「ライプニッツ括弧」と呼ぶことが多いですが、ライプニッツ代数を考案したのはドルフマンなので、ドルフマンに敬意を払っておきます。

多様体上の関数、微分形式、接ベクトル場などの書き方

なにかについて伝える・語るとき、書き方・言い方を決めておかないと、行き違いや混乱が起きて苦労します。なので、記事タイトルにあるモノ達の「書き方」を決めておきます。

扱うモノは、バンドルのセクション空間から派生するモノ達だけです。つまり、バンドルのセクション空間に対する幾つかの略記法を決めます。決めておきたい理由は、様々なバンドルの様々なセクション空間がとても重要で頻出するからです。

内容:

バンドルの局所セクションの集合

(なめらかな)多様体を M, N などで表します。E, F などは多様体上のファイバーバンドルですが、ベクトルバンドルに限定はしません(ベクトルバンドルを扱うことが圧倒的に多いですが)。記号の乱用で次のような書き方をします。

  • E = (E, |E|, π)

ここで、|E| はバンドルEの底空間を表します。|E| = M と分かっているときは、

  • E = (E, M, π)

と書きます。

EはM上のバンドルで、U⊆M は開集合とします。このとき、U上で定義されたEの局所セクションの集合を次のように書きます。

  • ΓM(U, E)

この集合の定義は:

  • s∈ΓM(U, E) :⇔ sは U→E というなめらかな写像、かつ s;π = idU

s;π に出てくるπは、正確にはUの逆像に制限した π|π-1(U) です。

実は、もし略記を使わないなら、書き方の約束はこれで終わりです。これから出てくる書き方は、ΓM(U, E) に対する略記の仕方を約束してます。

Γに関する省略規則

左辺が右辺の略記であることを、\stackrel{abb}{:=} で表すことにします。abb は abbreviation からです。

  1. Γ(U, E) \stackrel{abb}{:=} Γ|E|(U, E)
  2. ΓM(E) \stackrel{abb}{:=} ΓM(M, E)
  3. Γ(E) \stackrel{abb}{:=} Γ|E|(|E|, E)

Γにとって、バンドルEは必須の情報なので、Eを省略することはありません*1

  1. 下付きの底空間が省略されても、バンドルEから底空間は決まる。
  2. 第一引数の開集合Uが省略された場合は、Uは多様体全体(これも開集合)だと約束する。
  3. 底空間も開集合も省略された場合は、上の2つの規則から補える。

注意すべきは、Γの引数が1つのときは、第二引数のバンドルが明示されている、と考えることです。

Ωの定義と省略規則

Ωkを次のように定義します。ここのEはベクトルバンドルです。

  • ΩkM(U, E) := ΓM(U, E\otimes_Mk(T*M)))

ここで、T*M は、Mの余接ベクトルバンドルで、Λk外積に関するk乗操作です。次のことに注意しましょう。

  • Λ1(T*M) \cong T*M
  • Λ0(T*M) \cong RM

ここで、RM は、Rをファイバーとする自明バンドルです。通常、上の同型はイコールとみなしてしまいます。

さて、Ωに関する省略規則です。

  1. ΩM(U, E) \stackrel{abb}{:=} Ω1M(U, E)
  2. Ωk(U, E) \stackrel{abb}{:=} Ωk|E|(U, E)
  3. ΩkM(U) \stackrel{abb}{:=} ΩkM(U, RM)

Γの場合とは違ってベクトルバンドルEを省略可能です。省略したときは、自明バンドル RM だと解釈します。Ωの引数が1つのときは、第一引数の開集合が明示されている、と考えます。Γとは省略規則が違います。

ただし、これとは異なる省略規則(Γと同じ省略規則)を採用して、

  • ΩkM(E) \stackrel{abb}{:=} ΩkM(M, E)

とすることもあります。僕がこの規則を採用しない理由は、一番よく使う自明バンドル RM のときに省略ができないからです。

次のような省略もできます。

  1. Ω(U, E) \stackrel{abb}{:=} Ω1|E|(U, E)
  2. ΩM(U) \stackrel{abb}{:=} Ω1M(U, RM)
  3. Ωk(U) \stackrel{abb}{:=} ΩkM(U, RM) (Mは事前に了解されている)
  4. Ω(U) \stackrel{abb}{:=} Ω1M(U, RM) (Mは事前に了解されている)

特に Ω(M) は、大域的に定義された1次微分形式の空間になります。

  • Ω(M) \stackrel{abb}{:=} Ω1M(M, RM)

究極の略記として、Mが了解されている前提で:

  • Ω \stackrel{abb}{:=} Ω(M)

ΦとΞ

ΓとΩは、広く合意されよく使われている記号です。それに対して、ΦとΞは僕の個人的な使用です。

  • ΦM(U) := ΓM(U, RM)
  • ΞM(U) := ΓM(U, TM)

Φは通常、Cで表します。{\mathcal A}, \mathcal{F} なども使いますが標準的ではないです。Ξは通常、 \mathcal{X} で表します。{\mathcal A}, \mathcal{F}, \mathcal{X} など、スクリプト体(でいいのか?)を使うのは僕は好きじゃないです*2

Φの省略規則は:

  1. Φ(U) \stackrel{abb}{:=} ΦM(U) (Mは事前に了解されている)
  2. Φ \stackrel{abb}{:=} ΦM(M) (Mは事前に了解されている)

究極の略記を使うと、多様体M上の外微分作用素は d:Φ→Ω と略記で書けます。

Ξの省略規則は:

  1. Ξ(U) \stackrel{abb}{:=} ΞM(U) (Mは事前に了解されている)
  2. Ξ \stackrel{abb}{:=} ΞM(M) (Mは事前に了解されている)

ΦM(U) には、関数の可換環の構造を仮定します。ΞM(U) には、接ベクトル場のリー代数の構造を仮定します。

層としてのセクション空間

ΓM(U, E) のUの部分を無名変数'-'(ハイフン)に置き換えると、対応する層を表します。

  • ΓM(-, E) は、Open(M)opSet という関手(層の条件を満たす)
  • Eがベクトルバンドルのときは、ΓM(-, E) は、Open(M)opModM(-)] という関手(層の条件を満たす)

微分作用素を、層のあいだの射とみなすなら、d:Φ(-)→Ω(-) と書けます。ちゃんと書くなら:

  • d:ΦM(-)→ΩM(-)
  • d:ΓM(-, RM)→ΓM(-, T*M)

無名変数としてのハイフンを僕は多用します。次は、ハイフン使い過ぎの例です。

  • <- | ->:Ω(-)×Ξ(-)→Φ(-)

言いたいことは、どんな開集合Uをとっても、Ω(U)とΞ(U)が双対になっていることです。U上で定義されたスカラー積を τU とすると、Uごとに、

  • τU:Ω(U)×Ξ(U)→Φ(U)

τU の2つの変数をハイフンで書いたのが <- | ->U = τU(-, -) でした。省略とハイフン使い過ぎだわ。

*1:特定のバンドルEしか扱わない状況では、Γ \stackrel{abb}{:=} Γ(E) というローカル・ルールを設けてもいいかもしれません。

*2:好きじゃない理由は、悪筆の僕には、ローマン立体とイタリック体やスクリプト体を手書きで区別して書くのが難しいからです。書体の変化ではなくて、字の形が違うほうが書くのが楽です。

モノイド対象と単体的対象

複体、複体、複体 … なんとかしてくれ!」を書いているときにふと思ったことがあるんですが、横道にそれるので書きませんでした。そのことをこの記事で書きます。

ふと思ったこととは、「圏C内のモノイド対象と、圏C内の単体的対象は酷似した概念だなー」。モノイド対象と単体的対象が酷似しているのなら、指標とモデルの理論(インスティチューション理論含む)と、ローヴェア理論(ちゃんと言うと、「ローヴェア理論」の理論)と、形状圏を使ったホモロジーコホモロジーが扱っているモノ達は、酷似しているのでしょう、おそらく。

書き方に関する注意:ある言葉の同義語がある場合は、山形括弧('〈'と'〉')で囲んで示します。

内容:

モノイド対象

モノイド〈monoid〉とは、集合Aと、二項演算 (*) = (-*-) = λ(x, y)∈A×A.(x*y) : A×A→A と、特定の要素 e∈A からなる構造です。二項演算(*)と要素eは、結合律と左右の単位律を満たします。

  • 結合律: (x*y)*z = x*(y*z)
  • 左単位律: e*x = x
  • 右単位律: x*e = x

単なる集合Aの代わりに、順序集合 (A, ≦) を台〈underlying thing〉にした場合は順序モノイド〈ordered monoid〉が定義できます。順序モノイドでは、二項演算(*)が、順序(≦)と整合することが要求されます。

  • x ≦ x' かつ y ≦ y' ならば x*y ≦ x'*y'

自然数の普通の大小順序に足し算(あるいは掛け算)を考えると順序モノイドになります。非負実数係数の正方行列の集合に、成分ごとの順序から導かれる順序*1と行列の掛け算を考えると、非可換な順序モノイドになります。

Vが(R上の)ベクトル空間で、双線形な二項演算 (*):V×V→V と、特定の要素 e∈V がモノイドと同じ法則(結合律と左右の単位律)を満たすとき(R上の)代数多元環 | algebra〉と呼びます。双線形写像は、テンソル積 V\otimesV からの線形写像とみてもいいので、(*):V\otimesV→V とも書けます。V = End(W) = VectR(W, W) = (WからWへのR-線形写像全体のベクトル空間) とすると、Vは線形写像の結合を二項演算(掛け算)として代数〈多元環〉になります。

以上に挙げた、普通のモノイド、順序モノイド、代数〈多元環〉を統一的・総称的に扱いたいときは、“圏C内のモノイド対象”という概念が使えます。

  • 普通のモノイドは、圏Set内のモノイド対象
  • 順序モノイドは、圏Ord内のモノイド対象
  • R上の)代数〈多元環〉は、圏VectR内のモノイド対象

実は、モノイド対象をホストする圏Cは、単なる圏ではなくてモノイド圏〈monoidal category〉です。Set, Ord, VectR は横着して書いてる、あるいは、次のような記号の乱用をしています。

  • Set = (Set, ×, 1)
  • Ord = (Ord, ×, 1)
  • VectR = (VectR, \otimes, R)

上記乱用の右辺もまだ正確ではなくて、オーバーロード/略記をしています。

  • '×'は、集合の直積、または、順序集合の直積。
  • '1'は、特定された単元集合、または、特定された単元集合上の自明な順序集合。
  • '\otimes'は、実数体R上のテンソル\otimes_\bf{R}
  • モノイド圏の結合律子、左単位律子、右単位律子は省略(律子に関しては「律子からカタストロフへ」を参照)。

普通のモノイドは、直積を備えた集合圏におけるモノイド対象ですが、他のモノイド圏内でもモノイド対象を考えることができます。

モノイドの指標

モノイド対象を構文的に定義するために指標〈signature〉を使いましょう。

signature Monoid {
 sort A
 operatiron (*):A×A→A
 operation e:1→A
 equation assoc:: ((*)×idA);(*) ⇒ (idA×(*));(*)
 equation lunit:: (e×idA);(*) ⇒ idA
 equation runit:: (idA×e);(*) ⇒ idA
}

いくつかの注意事項を:

  • 指標と仕様の区別は決めてませんが、ここでは、指標内に法則も書いています。
  • (*) という書き方はHakell風です。「指標のパラメータ化とグロタンディーク構成」の最初のほうに、二項演算を'm'という記号で表した指標があります。
  • equation〈等式〉と書いてありながらイコール記号でなくて二重矢印を使っている理由は:
    1. 律子を省略しているので、正確にイコールではない。
    2. 1-射である演算〈operation〉を一重矢印、2-射である等式を二重矢印と揃えたかった。

上に挙げた指標は、一般的・総称的です。特定の圏ごとに具体化してみます。

集合圏において具体化
signature Monoid {
 sort A in Set
 operatiron (*):A×A→A in Set
 operation e:1→A in Set
 equation assoc:: ((*)×idA);(*) ⇒ (idA×(*));(*) in Set
 equation lunit:: (e×idA);(*) ⇒ idA in Set
 equation runit:: (idA×e);(*) ⇒ idA in Set
}
  • AはSetの対象、つまり集合である。
  • 二項演算(*)はSetの射、つまり写像である。
  • '×'は集合の直積を表す。
  • 1は単元集合を表す。
  • eは単元集合1からの射(写像)とみなす。単元集合からの写像は要素と同じこと。
  • 等式は、写像の等しさと解釈する。
順序集合の圏において具体化
signature OrderedMonoid {
 sort A in Ord
 operatiron (*):A×A→A in Ord
 operation e:1→A in Ord
 equation assoc:: ((*)×idA);(*) ⇒ (idA×(*));(*) in Ord
 equation lunit:: (e×idA);(*) ⇒ idA in Ord
 equation runit:: (idA×e);(*) ⇒ idA in Ord
}
  • AはOrdの対象、つまり順序集合である。
  • 二項演算(*)はOrdの射、つまり順序を保存する写像である。
  • '×'は順序集合の直積を表す。
  • 1は単元集合を台とする自明な順序集合を表す。
  • eは自明な順序集合1からの射(順序を保存する写像)とみなす。自明な順序集合からの順序を保存する写像は要素と同じこと。
  • 等式は、順序を保存する写像の等しさと解釈する。
ベクトル空間の圏において具体化
signature Algebra {
 sort V in VectR
 operatiron (*):V\otimesV→V in VectR
 operation e:R→V in VectR
 equation assoc:: ((*)\otimesidV);(*) ⇒ (idV\otimes(*));(*) in VectR
 equation lunit:: (e\otimesidV);(*) ⇒ idV in VectR
 equation runit:: (idV\otimese);(*) ⇒ idV in VectR
}
  • VはVectRの対象、つまり(R上の)ベクトル空間である。
  • 二項演算(*)はVectRの射、つまり線形写像である。
  • '\otimes'はベクトル空間のテンソル積を表す。
  • R実数体をベクトル空間とみなした自明な1次元ベクトル空間を表す。
  • eは自明な1次元ベクトル空間Rからの射(線形写像)とみなす。自明な1次元ベクトル空間からの線形写像は要素と同じこと。
  • 等式は、線形写像の等しさと解釈する。

ローヴェア圏

モノイドの指標を、特定の圏(ここでは、SetOrdVectR)内で“実現”することにより、各圏内のモノイド対象が得られます。モノイド対象は、モノイドの指標から圏Cへの関手と捉えます。しかし、前節に書き下したテキスト形式だと、「指標が圏である」とは思えないでしょう。

テキストとして書き下した指標には、色々と余分で恣意的な情報が含まれます。例えば:

  • ソート〈sort〉の名前は 'A' か 'V' か。はたまた、'X' がいいのではないか。
  • モノイド積の記号は、集合圏に合わせて'×'がいいのか、テンソル積の記号'\otimes'がいいのか。はたまた、見慣れない記号' \boxplus'がいいのではないか。
  • 二項演算の記号は、中置演算子Haskell風に書いた'(*)'がいいのか、一文字の'm'がいいのか。はたまた、'mul'のような綴りがいいのではないか。
  • などなど … …

構文を決めるとは、こういう、どうでもいい選択に決着を付けることです*2。が、モノイド対象(モノイドの指標のモデル)を考えるとき、どうでもいい構文(記号・書き方の決め事)の影響を受けるのは避けたいです。そこで、構文の定義をテキストで書き下した指標をもとに、そのローヴェア圏を作ります。

ローヴェア圏〈Lawvere category〉は、通常はローヴェア理論〈Lawvere theory〉と呼ばれます(https://ncatlab.org/nlab/show/Lawvere+theory 参照)が、紛らわしい呼び名なのでローヴェア圏にします。ちなみに、「用語のバリエーション記述のための正規表現 // ウンザリする例」で、「ローヴェア圏」の(あり得る)別名を60個列挙しています。

さて、ローヴェア圏とは次のような圏Lです。

  1. Lは、直積(デカルト積)を持つ小さな圏である。
  2. Lの対象集合は、自然数の集合と同型である。
  3. 適切な同型写像 N→|L| を選ぶと、Lの直積は、Nの足し算で表現できる。

上記条件の「適切な同型写像」を φ:N→|L| とすると、φ(n) を [n] とか n とか略記します。この略記を使うと、3番目の条件は次のように書けます。

  • [n]×[m] = [n + m]

特に、[0] は直積の単位になります。Nと|L|の1:1対応を与える φ = [-] もローヴェア圏の構造の一部とみなすことにします。

2つのローヴェア圏 L, M のあいだの準同型関手 F:LM とは、次のように、直積を厳密に保存する〈strictly preserving〉関手です。圏同型な2つのローヴェア圏は同一視します。

  • F([n]×[m]) = F([n])×F([m])

ローヴェア圏Lデカルト圏(直積を持つ圏)なので、[n + m] = [n]×[m] に対して、射影 [n + m]→[n], [n + m]→[m] in L を持ちますが、そこまでは要求しないで、単なるモノイド圏でもいいと条件を緩めたローヴェア圏をモノイド・ローヴェア圏〈monoidal Lawvere category〉と呼ぶことにします*3。モノイド・ローヴェア圏のあいだの準同型関手は、厳密モノイド関手です。

ローヴェア圏Lから、任意のデカルトCへの直積保存関手を、C内の〈Cにおける〉Lモデル〈model | 実現 | realization | implementation | 代数 | algebra〉と呼びます。同様に、モノイド・ローヴェア圏Mから、任意のモノイド圏Dへのモノイド関手(タイトなモノイド関手)を、D内の〈Dにおける〉Mモノイド・モデル〈monoidal model | モノイド実現 | monoidal realization | monoidal implementation | モノイド代数 | monoidal algebra〉と呼びます。ただし、形容詞「モノイド」を付けるとかえって混乱することもあるので、単にMモデルと呼ぶのを許します。

指標のモデルは、指標に対応するローヴェア圏またはモノイド・ローヴェア圏のモデルと解釈できます。となると、指標からローヴェア圏を作り出す手順が必要になります。それは次節で述べます。

モノイドの指標のローヴェア圏

単ソート等式的指標〈single-sorted equational signature〉から、ローヴェア圏を作ることができます。が、一般的な手順を説明するのは面倒なので、我々の事例であるモノイドの指標から、対応するローヴェア圏を実際に作るだけにします。これから作るローヴェア圏は、本来のローヴェア圏(直積を持つ圏)ではなくてモノイド・ローヴェア圏ですが、モノイド・ローヴェア圏も単にローヴェア圏と呼んでしまいます。

モノイドの指標を再掲します。

signature Monoid {
 sort A
 operatiron (*):A×A→A
 operation e:1→A
 equation assoc:: ((*)×idA);(*) ⇒ (idA×(*));(*)
 equation lunit:: (e×idA);(*) ⇒ idA
 equation runit:: (idA×e);(*) ⇒ idA
}

記号 [n] で、Aをn個掛け合わせたモノを表すとします。

  • [n] = A× ... ×A (n個)

[1]はAのことで、[0]は1のことだとします。

二項演算 (*) の代わりに Y、要素のポインティング射 e の代わりに i を使います。なんで、'Y'と'i'なんだ? と訝〈いぶか〉しく思うでしょうが、これらの文字は“象形文字”として使います。象形文字とは、絵と似た形状の文字ということです。僕が愛用(?)している象形文字を挙げておきます。

象形文字'I'は idA を表します。さらに、[n] はドット'.'をn個並べて表現します。例えば、[2] = .. 、[3] = ... 、[0] は何もない空虚になります。これらの象形文字を使って指標を書き直すと:

signature Monoid {
 sort .
 operatiron Y: .. → .
 operation i: → .
 equation assoc:: (Y×I);Y ⇒ I×Y;Y
 equation lunit:: (i×I);Y ⇒ I
 equation runit:: I×i;Y ⇒ I
}

'×'を横並置、';'を縦並置として、等式的法則(結合律、左右の単位律)をアスキーアートで記述してみます。

...   ...
Y I   I Y
. . ⇒ . .
 Y     Y
 .     .

  .   .
i I   |
. . ⇒ I
 Y    |
 .    .

.     .
I i   |
. . ⇒ I
 Y    |
 .    .

アスキーアートじゃなくて、普通の絵で描くなら(あんまり代わり映えしない):

象形文字と絵により直感が得られたところで、モノイドの指標のローヴェア圏 Lawv(Monoid) を定義します。Lawv(Monoid) は厳密モノイド圏です。

mon = Lawv(Monoid) と置くとして:

  1. |mon| = {[n] | nは自然数} \cong N
  2. monの射は、I, Y, i から横並置と縦並置で構成される“図形”の同値類。縦並置はテキストで書けないのでセミコロンで縦並置を表す。
  3. 同値類を作るときの同値関係は、結合律、左単位律、右単位律に相当する変形(上の絵の'⇒'で表現される描き換え)と、縦棒(何個かのIの縦並置)を縮める操作を何度かして同じ図形になるなら同値とする。
  4. dom, cod は:
    1. dom(Iの同値類) = [1], cod(Iの同値類) = [1]
    2. dom(Yの同値類) = [2], cod(Yの同値類) = [1]
    3. dom(iの同値類) = [0], cod(iの同値類) = [1]
  5. 射の結合は図形の縦並置。
  6. 恒等射は、id[n] = (Iをn個横に並べた図形)
  7. 対象のモノイド積は [n]\otimes[m] := [n + m]
  8. 射のモノイド積は図形の横並置
  9. モノイド積の単位対象は [0]

ローヴェア圏の別な構成法

前節で述べた mon = Lawv(Monoid) = (モノイドの指標のローヴェア圏) は、絵を描けるので、直感的理解には向いています。が、直感的であるゆえに、なんかハッキリしない印象もあるでしょう。もっとハッキリしていて簡単な構成を紹介します。

まず、Ordは順序集合と順序を保存する写像の圏です(既に出ています)。順序を保存する写像単調写像〈{monotone | monotonic} {map | mapping | function}〉とも呼びます。TotOrdは、全順序集合〈{total | linear} ordered set〉の圏だとします。TotOrdは、Ordの充満部分圏です。さらに、有限集合が台である全順序集合の圏をFinTotOrdとします。FinTotOrdは、TotOrdの充満部分圏です。

一般に、圏Cの部分圏Sが、Cの骨格〈skeleton〉だとは、Sが骨格的であり、CSが圏同値になることです。より詳しくは:

FinTotOrdの標準骨格〈canonical skeleton〉を、CanSkelFinTotOrd と…、いやっ、綴りを省略しても長すぎるので、CSFTOとします。CSFTOを具体的に記述しましょう。

  1. CSFTOの対象は、自然数区間 {0, 1, ..., n} に通常の順序を考えた有限全順序集合。空集合 {}、単元集合 {0} もCSFTOの対象。
  2. 射は、単調写像
  3. 射の結合と恒等射は、写像の結合と恒等写像

前節と同じ記号 [n] を次の意味で再定義します。

  • [0] = {}
  • [1] = {0}
  • [2] = {0, 1}
  • [n] = {0, ..., n-1} = {k∈N | 0≦ k <n}

CSFTOは、モノイド積を [n]\otimes[m] := [n + m] と定義してモノイド・ローヴェア圏になります。モノイド・ローヴェア圏Mの定義は次のようでした。

  1. Mは、モノイド積を持つ小さな圏である。
  2. Mの対象集合は、自然数の集合と同型である。
  3. 適切な同型写像 N→|L| を選ぶと、Lのモノイド積は、Nの足し算で表現できる。

CSFTOはこれらの条件を満たします。

前節で、絵を使って定義した“モノイドの指標のローヴェア圏”は、CSFTOと同型です。象形文字 I, Y, i に対応する単調写像を具体的に書き下します。絵ではなくて写像〈関数〉なので、記述のために番号(上付き・下付き添字)が必要です。

  1. In:[n]→[n]
    For k∈[n], In(k) := k
  2. Ynj:[n+1]→[n] (0≦ j <n)
    For k∈[n], Ynj(k) := if (k ≦ i) then k else (k - 1)
  3. inj:[n-1]→[n] (0≦ j <n)
    For k∈[n], inj(k) := if (k < j) then k else (k + 1)

これらの単調写像達(の一部)を絵に描いてみると、次のよう。

写像 Ynj では、出力値が j のところでだけ値の衝突〈double hit | collision〉が発生します。写像 inj では、出力値が j のところでだけ入力値がありません(逆像が空集合)。I0は[0](空集合)の恒等写像、i10空集合から単元集合への唯一の写像です。

CSFTOの任意の射(つまり、単調写像)は、In, Ynj, inj を組み合わせれば作ることができます。これを実際に確認するのは良い練習問題です。

前節の mon = Lawv(Monoid) と、この節のCSFTOは、定義の仕方はまったく違いますが、同型な圏です。片方は人間の図形的な直感に訴え、もう一方はアルゴリズム的で計算機で計算することも出来ます。

モノイド対象 再度

テキストとして書かれた指標は、インターフェイスと制約に関する記述です。そのまま直接に、圏論的マシーナリーへとインプットは出来ません。が、指標から作ったローヴェア圏は圏なので、圏論の遡上に載せることが出来ます。

MonCAT を、小さくないかも知れないモノイド圏の圏とします。モノイド関手はいっぱい種類がありますが、ここではタイト・モノイド関手を射にします。モノイド関手の種類も明示して MonCATtight とします。MonCATtight は、モノイド圏の直積をモノイド積として、それ自身モノイド圏になります。そして、内部ホム homMonCATtight(C, D) を持ちます。この内部ホム〈指数対象〉を [C, D] と略記します。

Lをモノイド・ローヴェア圏としましょう。もちろん、L∈|MonCATtight| です。C∈|MonCATtight| とします。すると、内部ホム [L, C] を作れます。この内部ホム圏が、ローヴェア圏LCにおけるモデルの圏です。次の記号を使います。

  • Model(L, C) := [L, C]

Model(L, C) は関手圏なので、射は自然変換です。Cのモノイド構造を受け継いでモノイド圏になります。

ローヴェア圏Lとして、特に L := mon = Lawv(Monoid) としたとき、Model(mon, C) が、Cにおけるローヴェア圏monのモデルの圏です。圏 Model(mon, C) の対象が、C内の〈Cにおける〉モノイド対象〈monoid object〉です -- やっと、モノイド対象を正式に(ちょっと大げさな道具で)定義できました。

Σをなんらかの指標だとするとき、記号の乱用で、

  • Model(Σ, C) := Model(Lawv(Σ), C)

と定義します。今の例だと、

  • Model(Monid, C) = Model(Lawv(Monoid), C) = Model(mon, C)

Cを特定した場合は次のようになります。

  • Model(Monid, Set) = Mon = (普通のモノイドの圏)
  • Model(Monid, Ord) = OrdMon = (順序モノイドの圏)
  • Model(Monid, VectR) = AlgR = (R上の代数の圏)

指標とモデルの圏に関するネーミング・コンベンション

話のついでに、指標とそのモデルの圏に名前を付けるときの規則〈コンベンション〉を述べておきます。僕の個人的規則ですが、規則があれば命名の負担が軽くなります。

指標名に対して、ニックネームを決めます。ニックネームは指標名そのままでも、短縮名でもかまいませんが、小文字始まりとします。例えば、

  • Monoid のニックネームは mon
  • Group のニックネームは grp
  • CommutativeGroup のニックネームは ab
  • CommutativeRing のニックネームは crng

指標に対応するローヴェア圏の名前は、ニックネームをそのまま使います。

  • Lawv(Monoid) = mon
  • Lawv(Group) = grp
  • Lawv(CommutativeGroup) = ab
  • Lawv(CommutativeRing) = crng

モデルの圏の名前は、ローヴェア圏の名前(=ニックネーム)の最初を大文字にした名前を関手の名前として使って書きます。

  • Model(mon, C) = Mon(C)
  • Model(grp, C) = Grp(C)
  • Model(ab, C) = Ab(C)
  • Model(crng, C) = CRng(C)

C = Set の場合は、関手の名前を太字にして圏の名前とします。

  • Mon(Set) = Mon
  • Grp(Set) = Grp
  • Ab(Set) = Ab
  • CRng(Set) = CRng

こういう規則は、常に守れるとは限りませんが、原則は決めておくほうがいいでしょう。

単体形状圏

CSFTOから空集合を取り除いた圏をCSFTO+とします。末尾のプラスは、何かを加えた意味ではなくて、非空集合≒非ゼロ集合≒正の集合 という連想からです。対象 [0] を取り除いたので、[0] から出る射もなくなります([0]に入る射は I0 以外はもともと存在しません)。

複体、複体、複体 … なんとかしてくれ!」に出てきた単体圏〈単体形状圏〉Sの標準的な定義は次です*4

  • S := CSFTO+op

反対圏における射を、右肩に'op'を付けて表すことにして、Sの面作用素は、(inj)op:[n]→[n-1] 達です。そして、Sの退化作用素は (Ynj)op:[n]→[n+1] 達です。僕は、(inj)op = !nj, (Ynj)op = Δnj と書くことが多いですが、名前や番号の付け方は人により変わります*5Sの定義から、余単体圏〈余単体形状圏〉SopCSFTO+そのものになります。

モノイドのローヴェア圏 mon = CSFTO (同一視してしまいましょう)と、余単体圏 Sop = CSFTO+ はほとんど同じものです。空集合の有り無ししか違いがありません。

CSFTO, CSFTOop, CSFTO+, CSFTO+op, から集合圏への関手圏を考えると次のようになります*6

  • [CSFTO, Set] = Model(mon, Set) = (モノイドの圏)
  • [CSFTOop, Set] = Model(comon, Set) = (コモノイドの圏)
  • [CSFTO+, Set] = Sop.Set = (余単体的集合の圏)
  • [CSFTO+op, Set] = S.Set = (単体的集合の圏)

つまり、モノイド/余単体的集合/コモノイド/単体的集合という概念は酷似しています。モノイド以外の指標や、単体圏以外の形状圏においても、同様な現象は起きるのでしょうか? 指標とモデルの理論と形状圏を使った方法(S的方法)には、なにかしらの内在的関係があるのでしょうか?

次元がズレている!

最後に、ひとつ注意をしておきます。ローヴェア圏の対象を [0], [1], [2], ... のように書きました。CSFTO においては、[0] = {}, [1] = {0}, [2] = {0, 1} でした。

ところが! 単体圏/余単体圏では、通常次の定義を採用します。

  • [0] = {0}
  • [1] = {0, 1}
  • [2] = {0, 1, 2}
  • [n] = {0, ..., n} = {k∈N | 0≦ k ≦ n}

次元(番号)の数え方がズレているのです。空集合が必要なときは、

  • [-1] = {}

と、空集合の次元を -1 とします。

1だけシフトして考えればいいのですが、けっこうなフラストレーションになります。

おわりに

“指標とそのモデル”という概念は次のように一般化できます。

  • 指標 → コンピュータッド
  • 指標のローヴェア圏 → コンピュータッドが生成する最小で最厳密な圏
  • 指標のモデル圏 → コンピュータッドから生成された圏(一般化ローヴェア圏)から、ターゲット圏(モデル達が棲む圏)への関手圏

“指標とそのモデル”は、「デカルト構造の無限タワー: 怖がらずに登れ」で述べたような無限階層を作ります。モデルのターゲット圏が、メタ指標(例えば、モノイド圏の指標)により特徴付けられるので、ひとつ上の階層の存在が仮定され、その階層も同様にひとつ上の階層の存在が仮定され、……

モノイドの指標や単体形状圏は、このような無限階層のなかで一番扱いやすい部分を形成しているように思えます。扱いやすいけれども決して自明ではないところが魅力的です。


[追記]
この記事内に、幾つか「単体集合」という語がありました。「単体的集合」に置換しました。「的」の有無を気にしたくはないのですが、単体圏〈simplex category〉と単体的圏〈simplicial category〉では意味が変わるので、他の場合も"simplicial"なら「単体的」にします。が、いつでも「的」の有無を区別し続けるのは困難そうなので、そのうちイイカゲンになってしまいそうです。
[/追記]

*1:A ≦ B を、すべての成分で Aj i ≦ Bj i と定義することです。

*2:形式言語の構文を設計するときは、「どうでもいい選択に決着を付ける」ために、膨大な労力を使います。理論的にはどうでもいいからこそ、現実的にシリアスに考慮すべき点は多数あり、決定はとてもむずかしい作業となります。

*3:モノイド・ローヴェア圏と同様な概念の呼び名としては、PRO, PROPがあります。PROは対称性を仮定しないモノイド圏、PROPが対称モノイド圏バージョンのローヴェア圏です。また、クローンは複圏バージョンのローヴェア圏です。

*4:単体圏と余単体圏の定義が逆になることもあります。鬱陶しい話ですが、しょうがない。

*5:同一人物=檜山 のなかでも、気分で変えたりしてます。象形文字の観点からは退化作用素がΔですが、境界作用素∂の材料としての面作用素をδと書いたりします。

*6:単体的集合の変種として、添加単体的集合〈augmented simplicial set〉というモノがあります。添加単体的集合に条件を付けると、コモノイドの圏になります。もっとも、添加単体的集合の用途はコモノイドの圏を作ったりすることではないようですが。

複体、複体、複体 … なんとかしてくれ!

ホモロジーコホモロジーの文脈で、「複体」という言葉が出てくるのですが、この言葉は多義的でいくつもの意味があります。大げさな言い方をすると、「出てくるモノはなんでも『複体』と呼んでいる」ようです。

僕自身も混乱・困惑しましたし、コミュニケーションのときに非常に困ります。なんとかしたい。

内容:

なんでも「複体」

以前、「ド・ラーム・コホモロジーとホッジ分解のオモチャ (1/2)」という記事を書きました。このとき、「複体」という言葉の扱いにはだいぶ困り、悩みました。一応、「幾何複体」、「組み合わせ複体」、「代数的複体」と分けて説明してますが、明確とは言い難いですね。

下の図は、「複体にチェーン構成をして複体を作る」という話を口頭でしたときに使った説明図(?)です。

何種類かの概念をすべて「複体」と呼ぶので、こんなことになっています。この図はマジメな説明図ではなくて、まー「ネタ」ですけどね。

分類と整理

説明は後回しとして、とりあえず、「複体」と呼ばれるモノ(概念)を表にまとめます。

呼び名 もとの概念 双対概念
複体 その1 {組み合わせ的}?形状圏 {組み合わせ的}?余形状圏
複体 その2 複体的形状圏 余複体的余形状圏
複体 その3 CS的対象 Cの余S的対象
複体 その4 Mod[R]の複体的系列 Mod[R]の余複体的余系列

「{組み合わせ的}?」と書いてあるのは、「組み合わせ的」は省略可能なことを示します。つまり、ちゃんと言えば「組み合わせ的形状圏」だけども、単に「形状圏」でもかまいません。「{…}?」のような書き方については「用語のバリエーション記述のための正規表現」を参照。

表に出現するCは任意の圏で、Sは形状圏(後述)です。Mod[R] は、可換環R上の加群の圏です。形容詞としての「複体的/余複体的」の意味は次のとおりです*1

  • 複体的〈complex〉: 境界作用素〈boundary operator〉を備えている。
  • 余複体的〈cococomplex〉: 余境界作用素〈coboundary operator〉を備えている。

単に「複体」と言った場合、複体的系列/余複体的余系列を指す場合が一番多そうです。これらは次の別名を持ちます。

  • 複体的系列: 鎖複体、チェーン複体、(単に)複体
  • 余複体的余系列: 余鎖複体、コチェーン複体、余複体

上の表に出現した概念を、順に急ぎ足で説明していきます。

組み合わせ的形状圏とその双対

組み合わせ的形状圏の例には次のものがあります。

記号 別な記号 名称 参考
S Δ 単体圏 simplex category (nLab)
C \square 方体圏 category of cubes (nLab)
G 球体圏 globe category (nLab)
Θ テータ胞体圏 Theta category (nLab)

名称には、「☓☓☓圏〈☓☓☓ category〉」と「☓☓☓の圏〈category of ☓☓☓s〉」の二種類があります。「テータ胞体圏」は、"cell category", "category of cells" とも呼ばれますが、単に"cell"では紛らわしいので「テータ」を付けたほうがいいでしょう。

例に挙げた圏達は、なにかしら組み合わせ的フレーバーを持ち、直感的な意味で「図形の形」を表現しています。それで、組み合わせ的形状圏〈combinatorial shape category〉と総称します。

Cが、組み合わせ的形状圏である条件はどんなものでしょうか? 次のような特徴を備えていれば、組み合わせ的形状圏と呼んでよさそうです。

  1. Cは小さい圏で、Cの対象集合はZ区間(有限区間、半無限区間、無限区間Z のどれでもよい)と同型である。整数 i に対応する対象を [i] と書くことにする。
  2. 射の有限集合 FiC([i], [i-1]) と、DiC([i], [i+1]) が指定されていて、C は、合併集合 \bigcup_{i}(Fi∪Di) (これは無限集合でもよい)で生成される。
  3. 生成元〈生成射〉のあいだの関係も具体的に書き下せる。

「具体的に書き下せる」が曖昧ですが、まーいいとしましょう。射の有限集合 Fi の要素を作用素〈face operator〉、Di の要素を退化作用素〈degeneracy operator〉と呼びます。上の条件の2番目は、Cの射が面作用素と退化作用素の組み合わせから出来ている、ということです。

形状圏〈shape category | category of shapes〉は、関手の域〈domain〉になる圏という意味合いがあります。実際、例に挙げた組み合わせ的形状圏は、関手の域として使われます。関手の域としての用途を強調したいときは、単体形状圏、方体形状圏のような呼び方もします。

組み合わせ的形状圏に対して、その反対圏〈opposite category〉を作ると:

  • 作用素は [n]→[n+1] の射となる。
  • 退化作用素は [n]→[n-1] の射となる。

組み合わせ的形状圏の反対圏は「余」を付けて呼び、反対圏における面作用素余面作用素〈coface operator〉、反対圏における退化作用素余退化作用素〈codegeneracy operator〉と呼びます。例えば、単体圏の反対圏は余単体圏〈cosimplex category〉で、余単体圏は余面作用素と余退化作用素で生成されています。

複体的形状圏とその双対

組み合わせ的形状圏を単に形状圏〈shape category〉と略称します。形状圏Sに対して、整数の加法群で豊饒化〈enrichment〉をします。つまり、ホムセット S([n], [m]) からZ係数で自由生成した加法群 Z<S([n], [m])> を新しいホムセットとして圏を作ります。こうすると、射を足したり引いたりできるようになります。ホムセットを加法群に豊饒化した圏を、単に ZS で表します。

(整数として)隣り合う2つの対象 [n], [n-1] のあいだに ZS の射 ∂nZS([n], [n-1]) が指定されていて、次が満たされるとき、形状圏 S と (∂n | [n]∈|S|) の組を複体的形状圏〈complex shape category〉と呼びましょう。

  • For [n]∈|S|, ∂n\circn+1 = 0 on ZS([n+1], [n-1])

この条件を満たす ∂n境界作用素〈boundary operator〉と呼びます。

例えば、単体形状圏 S = Δ の場合、面作用素 δni (i = 0, 1, ..., n)の交代和を作ると、それが境界作用素になります。

  •  \partial_n := {\displaystyle \sum_{i = 0}^n (-1)^i} \delta_n^i

余形状圏(形状圏の反対圏)においては、dnZSop([n], [n+1]) という射の族が次の条件を満たすとき、余形状圏 Sop と (dn | [n]∈|Sop|) の組を余複体的余形状圏〈complex shape category〉と呼びます。

  • For [n]∈|Sop|, dn\circdn-1 = 0 on ZSop([n-1], [n+1])

この条件を満たす dn余境界作用素〈coboundary operator〉と呼びます。

S的対象の圏とその双対

形状圏Sは圏なので、そこからの関手を考えることができます。Cを任意の圏として、関手圏 [S, C] を考えます。この関手圏の対象、つまり関手 A:SC を、CS的対象S-object in C〉と呼びます。例えば、球体形状圏Gに対して、[G, Set] の対象は、SetG的対象です。Setの対象は集合と呼ぶので「G的集合」、さらに噛み砕いて「球体的集合〈globular set〉」と呼びます。

CS的対象の圏、つまり [S, C] を S.C とも書くことにします。この書き方と、対象の呼び名の例をいくつか挙げます。

CS的対象 噛み砕いた呼び名
S.Set の対象 単体的集合
S.Top の対象 単体的空間
S.CRng の対象 単体的可換環
C.Set の対象 方体的集合
G.VectR の対象 球体的実ベクトル空間

余形状圏Sopに関しても同様に考えます。[Sop, C] の対象はCの余S的対象〈coS-object in C〉です。

Cの余S的対象 噛み砕いた呼び名
Sop.Set の対象 余単体的集合
Sop.Ab の対象 余単体的アーベル群
Sop.FinSet の対象 余単体的有限集合
Cop.Mod[R] の対象 余方体的R-加群
Gop.Man の対象 余球体的多様体

加群の複体的系列の圏とその双対

(Z, ≦) は、整数と普通の大小順序による順序集合とします。順序集合は圏とみなせるので、同じ記号で圏も表します。Cを任意の圏として、関手圏 [(Z, ≦)op, C] の対象をCの系列〈sequence in C〉と呼びます。関手圏 [(Z, ≦), C] の対象はCの余系列〈cosequence in C〉と呼ぶことにします。Cの系列の圏を Seq(C), 余系列の圏を CoSeq(C) と表しましょう。

A:(Z, ≦)opCCの系列だとすると、Aは、番号が減る向きの射 A(n)→A(n-1) in C の集まりとみなせます。余系列では番号が増える向きの射です。こう決めたのは他の用語との整合性のため(だけ)で、他の理由はありません。

Z区間を J として、[J, C], [Jop, C] を考えることもできますが、ここでは、関手の域はZだけにします。Cが終対象と始対象を持つ圏ならば、系列/余系列の不要な(余分な)位置は終対象と始対象で埋めることにします。

A∈Seq(C) のとき、A(n) の代わりに An と書き、系列Aを A とも書きます。B∈CoSeq(C) のとき、B(n) の代わりに Bn と書き、余系列Bを B とも書きます。また、系列 A に対する A(n→n-1):An→An-1 を an:An→An-1 と、対応する小文字で書くことにします。余系列 B に対しては bn:Bn→Bn+1 です。

可換環Rに対して、Mod[R] はR-加群の圏とします。Mod[R] の系列 A複体的系列〈complex sequence〉だとは、次を満たすことです。

  • For n∈Z, an\circan+1 = 0 : An+1→An-1

同様に、Mod[R] の余系列 B余複体的余系列〈cocomplex cosequence〉だとは、次を満たすことです。

  • For n∈Z, bn\circbn-1 = 0 : Bn-1→Bn+1

通常は、複体的系列を鎖複体〈チェーン複体〉、余複体的余系列を余鎖複体〈コチェーン複体〉と呼びます。

胞体と幾何実現

Sを形状圏として、XはS的集合、つまり関手 X:SSet だとします。Sの対象は整数でエンコードできるので、[n] と書くのでした。集合 X([n]) の要素を、Xのn次元胞体〈n-dimensional cell〉と呼びます。「胞体〈cell〉」は一般的な呼び名で、具体的な形状圏に応じて、「n次元単体」「n次元方体」「n次元球体」などと呼びます。

以上の意味でのn次元胞体は、単にnとラベルされた集合の要素なだけで、特に幾何的な意味でのn次元性は持っていません。幾何的意味が生まれるのは、S的集合を幾何的に“実現”した場合です。幾何実現〈geometric realization〉については、例えば次を参照してください。

S的集合Xを幾何実現した位相空間〈多面体空間〉を GR(X) とすると。Xのn次元胞体(単なる要素)は、位相空間 GR(X) の部分空間としての幾何的実体を持つようになります。「n次元胞体」の直感的な意味は、幾何実現のなかでのこの部分空間のことでしょう。

S的方法

なんらかのモノ、例えば多様体から、複体的系列〈鎖複体 | チェーン複体〉、余複体的余系列〈余鎖複体 | コチェーン複体〉を作るとき、形状圏Sまたは余形状圏Sopを使うならば、その作り方をS的方法と呼びます。単体的方法、方体的方法、球体的方法などです。単体的方法が一番よく使われている方法です。

例として、単体的方法による特異チェーン複体〈singular chain complex〉の作り方を簡単に説明します。Mを多様体とします(一般の位相空間でもかまいません)。標準幾何単体 σn = {x∈Rn+1 | xi ≧ 0 かつ x1 + ... + xn+1 = 1} からMへのなめらかな写像の全体を SSn(M) とします。

作用素 δni:SSn(M)→SSn-1(M) と退化作用素 ιni:SSn(M)→SSn+1(M) がうまく定義できるので、SS(M) = (SS(M), δi, ιi) は単体的集合になります。つまり、SS(M)∈S.Set

集合から自由R-加群を作る関手を FreeModR:SetMod[R] とします。以下、FreeModR を F と略記します。F:SetMod[R] は、[S, Set]→[S, Mod[R]] を誘導するので、誘導された関手を S.F:S.SetS.Mod[R] とします。S.F により、単体的集合 SS(M) を単体的R-加群の圏に送ったものを SC(M) とします。

SC(M) は単体的R-加群であり、Sは複体的形状圏(境界作用素を持っている圏)だったので、Sの境界作用素∂の定義をR-加群の圏内で解釈すると、SC(M) からチェーン複体〈R-加群の複体的系列〉が構成できます。これが、単体的方法によりMから作られたチェーン複体です。

S(単体形状圏)以外の形状圏でも、同様なS的方法でチェーン複体/コチェーン複体を構成できます。

おわりに

分類と整理」の節に出した表には 4×2 = 8 個の欄があります。8個の欄に記入された概念は、どれも「複体」と呼ばれる可能性があります。そう呼ぶ習慣が現実にあるのは致し方ないですが、相互に関連はするが別な概念が8つあることを認識しておいたほうがいいでしょう。


[追記]
脚注に「「境界作用素を持つ」を表すうまい形容詞がなくて困りますね。」と書いたのですが、余境界作用素微分作用素〈differential operator〉とも呼ぶので、微分複体〈differential complex〉で、余境界作用素を持つ加群の余系列の意味になります。余境界作用素微分作用素なら、境界作用素は余微分作用素ということになります。

形容詞「余微分」「微分」を使うと:

どうもシックリ来ませんね。その理由は:

  1. 微分作用素」は、本来の意味(解析的な意味)での微分作用素を連想する。
  2. 双対を表す「余」の付き方のバランスが悪い。

ホモロジーコホモロジーのもとになるモノだから、形容詞としての「ホモロジー」「コホモロジー」を付けてみると:

悪くはないかな。いずれにしても、一度ゴチャゴチャになってしまったものを、分類するのは難しい(現実的には不可能)ですな。
[/追記]

*1:[追記]最初、複体的=complical にしていましたが、"complical"はそういう意味ではないようですし、"complicial"(https://ncatlab.org/nlab/show/complicial+set 参照)と見間違うので、単なる"complex"に変更しました。「境界作用素を持つ」を表すうまい形容詞がなくて困りますね。[/追記]