次の2つの記事で「0次元多様体の向き」について書きました。
「向き」の定義が二種類あって、0次元のところでその齟齬が目立ってしまう、という事情でした。これらの記事を書く際に、特に参照した資料はなかったのですが、今になって(やるべき順番が逆ですが)「向き」の定義を調べてみました。僕が触れた二種類だけじゃなくて、「向き」の定義は色々あります。
内容:
向き付きベクトル空間:nLabの定義
いつものように、まずはnLabのエントリーを見てみます。
最初にベクトル空間の向きを定義して、それに基づいてベクトルバンドルや多様体の向きを定義しています。ベクトル空間の向きは、順序付き基底〈ordered basis〉の同値類です。順序付き基底とフレームは同じものなので、nLabの定義と「0次元多様体は向き付け不可能なのでは」で述べたフレームバンドルによる定義は本質的に同じです。
ベクトル空間Vの2つの順序付き基底 (v1, ..., vn) と (w1, ..., wn) が同値であるとは、これらのあいだの変換行列〈transformation matrix〉の行列式が正であること、と定義します。2つの同値類ができますが、それら同値類がベクトル空間Vの向きです。
問題の0次元の場合ですが:
In the case n = 0, the only ordered basis is the empty list, but we still declare there to be two orientations by fiat, usually called positive and negative.
n = 0 の場合は、順序付き基底は空リストしかない[檜山注: 2つの同値類は作れない]が、それにも関わらず、"by fiat"、通常、正の向き/負の向きと呼ばれる2つの向きがあるとみなす。
"by fiat"って分からなかったのですが、「絶対的な権威による命令に従って」みたいなことらしい; まさに天下りだ。
とはいえ、さすがnLabと言うべきは、n ≧ 1 の場合と n = 0 の場合を統合する定義を提示しているところです。ちょっと無理矢理感はただよってますが。
3つ組 (V, v, ε) を考えます。ここで:
- Vは(実数体上で有限次元の)ベクトル空間
- vは、Vの順序付き基底 v = (v1, ..., vn)
- εは +1 または -1
2つの3つ組 (V, v, ε), (W, w, δ) が同値だとは:
ここで、w/v は、順序付き基底vをwに移す変換行列です。δ/εは通常の割り算で、+1 か -1 になります。
n = 0 のときは、V = W = O = {0}, w = v = () = 空リスト となりますが、()/() = idO = (0行0列の行列), det(idO) = +1 と定義します。したがって、(O, (), ε) と (O, (), δ) が同値なのは、ε = δ のときです。
今述べた同値関係の同値類が向き付きベクトル空間〈oriented vector space〉になります。まどろっこしい定義になってしまいますが、0次元の場合をちゃんと含んでいるのがメリットです。
外積代数を使う向きの定義
Vが有限次元ベクトル空間のとき、その外積代数 Λ(V) を定義できます。Λ(V) は階付きベクトル空間〈graded vector space | 次数付きベクトル空間〉で、整数 i で番号付けられたベクトル空間達 Λi(V) の集まりです。次の性質を持ちます。
- Λ0(V) = R
- Λ1(V) = V
- Λk(V) の次元は、dim(V) = r として rCk
- Λi(V)×Λj(V)→Λi+j(V) という外積がある。(外積は双線形写像で、代数的な法則を満たす。)
dim(V) = 0 のとき、V = O と書いて:
- Λ0(O) = R
- Λ1(O) = O
- Λk(O) の次元は、0Ck
- 非自明な外積は Λ0(O)×Λ0(O)→Λ0(O) だけで、実数の掛け算で与えられる。
つまり、k ≠ 0 なら Λk(O) = O です。それでも、Λ0(O) = R はゼロではありません。
dim(V) = r として、rが0の場合も含めて次が成立します。
- Λr(V) R
Λr(V)\{0} R\{0} = {x∈R | x ≠ 0} の(位相的な)連結成分は2つです。連結成分のどちらか一方を選ぶことにより、Vの向きが定義されます。
外積代数によってベクトル空間の向きを定義する方法だと、なぜ0次元のときだけ符号(プラスとマイナス)が決まるかを説明できます。dim(V) = r ≠ 0 のときは、Λr(V) R なだけで、Λr(V) = R ではありません。0を取り除いてできる2つの連結成分に正負の区別はないのです。dim(V) = r = 0 の場合は、R\{0} の連結成分は正か負で、実数が持っていた符号で識別できます。
多様体の向き
向き付きベクトルバンドル〈oriented vector bundle〉とは、各ファイバーが向き付きベクトル空間であり、その向きの割り当て方が(なんらかの意味で)なめらかになっているものです。前節で定義した外積代数を使う向きの定義は、ベクトルバンドルとの相性がよく、外積代数バンドルからベクトルバンドルの向きが容易に定義できます。
ベクトルバンドル E の階数〈ファイバー次元〉を r として、外積代数バンドル Λ(E) が構成できて、そのr階部分〈r次部分〉は階数〈ファイバー次元〉1のベクトルバンドル Λr(E) となります。Λr(E) からゼロを取り除いて、R+(正実数の乗法群)作用で商空間を作れば二重被覆(ファイバーが二元集合のバンドル)となります。前節で述べたように、ファイバー次元が0であっても、目的の二重被覆が作れます。
“ファイバー・ベクトル空間の向きのバンドル”が作れれば、もとのベクトルバンドルに向きを与えることは、「向きのバンドルの大域セクションを選ぶこと」と同じです。ベクトルバンドルの向き付け可能性は、向きのバンドルが大域セクションを持つかどうかで判定できます。
多様体の向き付け可能性/向きは、接ベクトルバンドルの向き付け可能性/向きとして定義します。多様体Mの次元がmのとき、Mの向きの集合は次のように定義されます。
- Or(M) := ΓM((Λm(TM)\0M)/R+)
ここで、0M は、ベクトルバンドル全空間 TM のゼロベクトルを集めた部分多様体です。この定義は、構成が比較的容易で0次元も扱えるので優れていると思います。
Λm(TM) は、余接バンドルから作った Λm(T*M) とは別です。Λm(TM) と Λm(T*M) は同型ですが、標準的に〈canonically〉同型ではありません。
Mの向きは、Λm(TM) のセクションで代表させることができるので、非標準的な同型を経由して Λm(T*M) のセクション、つまり微分形式で代表できます。が、微分形式による表示は、非標準的な同型を使った間接的で恣意的なものになります(「根拠なき選択」参照)。
[/追記][/補足]
nLabエントリー "orientation" には、他にコホモロジーをベースにした向きの定義も書いてあります。コホモロジー的向きに関する次のエントリー(↓)は、nLabの面目躍如たるブーストした解説で、僕にはよくわかりません(苦笑)。
ところで、「0次元多様体は向き付け不可能なのでは」で触れた法直線バンドル/法ベクトル場を使った向きの定義も、捨てがたいものがあります。超曲面〈超部分多様体〉や境界を扱う場合は、法直線バンドル/法ベクトル場の方法が良さそうです。