「古典的微分幾何・ベクトル解析のモダン化」シリーズを、もう1,2回は続けようかな、と思ってます。局所座標を使った計算で一番多いのは微分計算ですから、微分計算まではたどり着きたいなー、と。
で、先に進む前に、「古式な記法に関する注釈や補足説明が必要だな」と感じます。この記事でそれを行います。
内容:
- はじめに
- 変数と関数の混同
- 写像と部分写像の未識別
- 部分写像の制限・ミート・ジョイン
- 関数の適用と結合〈合成〉の混同
- ユークリッド空間の開集合と多様体の開集合の混同
- モニタールームの男とピグマリオン症
- 関数環とその上の加群を導入しない
- おわりに
はじめに
「古式」という言葉の使い方に関しては、前回のここらへんを参照してください。
古式な微分幾何・ベクトル解析には、曖昧さや混乱がいくつか見られます。一連の記事で僕が言いたいことは、「それはダメだ」ではなくて、「問題点をちゃんと認識した上で、使えるものは使い続けよう」です。古式スタイルが長年使われ続けている理由は、やはり便利だからで、その便利さは捨てきれないな、と思うのです。
古式スタイルの曖昧さ/混乱の目ぼしいものを挙げます。以下で、「混同」とは、異なる概念であることは知っていて、ゴッチャにすることです。不注意というよりは意図的であることがほとんどです。「未識別」とは、異なる概念であると認識できてない、あるいはあえて区別する意思がないことです。
古式スタイルの曖昧さ/混乱:
これらの問題点を指摘して、対処法を述べます。その対処法(新しい解釈や記法)は、今後の記事で使う予定です。以前の記事(↓)といくぶん重複する記述があります。
変数と関数の混同
写像 f:X→Y を考えます。具体例としては、X = Y = R, f(x) = x2 + 1 。この写像fを、
- y = f(x)
と書くのは普通だし、特に問題はないでしょう。xは入力変数で、yは出力変数です。なお、「独立変数」「従属変数」という言葉は使いません。その理由は「古典的微分幾何・ベクトル解析のモダン化: ラムダ記法の利用 // 非独立入力変数と多出力変数」をみてください。
次の記法を許します。
- y = y(x)
具体例は、
- y = y(x) = x2 + 1
この記法は、次のラムダ記法による関数定義により合理化できます。
mapping y := λx∈R.(y := x2 + 1 : y∈R)
詳細は「古典的微分幾何・ベクトル解析のモダン化: ラムダ記法の利用」に書いてあります。
古式スタイルでは、同じ名前が変数名と関数名に使われることがあります。このため、単なる変数か、関数を表す変数かは、文脈(名前のスコープ)なしでは判断できません。上記のラムダ記法では、入力変数・出力変数はラムダ項のスコープに閉じ込められていて、関数名のスコープはその外にあります。
次の記法はどうでしょう。
- x = x(x)
ラムダ記法を使えば、これも合理化できます。
mapping x := λx∈R.(x := x2 + 1 : x∈R)
出力変数名、関数名、入力変数名の三者がどれも'x'という名前なのです。ここまでひどい書き方は稀でしょうが、ないとは言えません。なお、x(x) で自己適用を思い出す人もいるでしょうが、自己適用とは関係ありません。単に、ひどい書き方です。
写像と部分写像の未識別
微分幾何・ベクトル解析は、幾何的実体を取り扱います。なので、写像 f:X→Y と言う場合、X, Y は位相空間/多様体であり、fは連続写像/なめらかな写像のときが多いです。暗黙に(特に明示せずに)、位相空間/多様体、連続写像/なめらかな写像を前提するのは、まーいいでしょう。
さらに、古式スタイルの写像 f:X→Y は、実際には部分写像〈partial map〉である場合が非常に多いですね。古式スタイルの写像/関数は、デフォルトで部分写像/部分関数だと解釈したほうがいいと思います。
我々は、写像(全域写像)を f:X→Y と書き、部分写像を f:X⊇→Y と書き分けますが、古式スタイルでは書き分け/識別はされません。よって、部分写像が全域であるか? 全域でないなら定義域〈domain of definition〉はどこか?は、自分で文脈から判断する必要があります。文脈情報が不十分だと、判断できません。
「写像(全域写像)より、むしろ部分写像を基本として採用する」という方針自体は適切だと思います。マズイのは、それを明示しないこと、部分写像に関する概念をちゃんと導入しないことです。
我々のラムダ記法において、部分写像であることを明示するために、次の書き方を導入します。
- λx∈A⊆X.(写像の式 : Y)
このラムダ項が表す部分写像のプロファイルは、f:X⊇A→Y です。部分写像を表すラムダ項の具体例は、
- λx∈(R| x ≧ 0)⊆R.(x2 + 1 : R)
部分写像の結合〈合成〉は「出来るところだけ計算する」方式です。結合が出来ても、定義域が空になることがあります。例えば:
// 非負実数に対して定義された1次関数 mapping f := λx∈(R| x ≧ 0)⊆R.(-x - 1 : R) // 非負実数に対して定義された2次関数 mapping g := λx∈(R| x ≧ 0)⊆R.(x2 + 1 : R)
とすると、cod(f) = R, dom(g) = R なので結合可能〈composable〉ですが、f;g = gf は:
- λx∈(R| x ≠ x)⊆R.( : R)
となります。x ≠ x は空集合を作るための条件(常に偽ならなんだっていい)です。gf のプロファイルは、gf:R⊇∅→R です。空集合∅から任意の集合への写像はひとつだけあります。
部分写像の制限・ミート・ジョイン
ここで、部分写像に対する操作をいくつか紹介しておきます。積極的に部分写像を扱うなら知っておきたい基礎知識ですが、ちょっと退屈かも; この節飛ばして、必要なときに見返すでもいいです。
f:X→Y を普通の写像〈全域写像〉として、A⊆X とします。このとき、fの域をAに制限〈restrict | constrain〉できます。
- f|A := (inclA,X);f = f(inclA,X)
inclA,X は包含写像〈inclusion map〉で、ラムダ記法を使うなら次のように定義できます。
mapping inclA,X := λx∈A.(x : X)
恒等写像は X⊆X に対する包含写像となり、idX = inclX,X です。恒等写像や包含写像のような「バカみたいに簡単」なものが、非常に重要なことはままあります。
今度は f:X⊇→Y が部分写像とします。部分写像の場合、「fをAに制限する」の意味は二通りあります。普通の写像と同じく、域〈domain〉を制限する場合と、定義域〈domain of definition〉を制限する場合です。このふたつを区別する標準的記法がないので、域の制限〈domain restriction〉は f|A 、定義域の制限〈domain-of-definition restriction〉は仮に f‖A としておきます。制限後の域・定義域・余域は次のようになります。
余域の制限〈codomain restriction〉 f|B (B⊆Y)は普通の写像でも部分写像でも同じように定義されます。「古典的微分幾何・ベクトル解析のモダン化: ラムダ記法の利用 // 出力制約」を参照してください。
- dom(f|B) = X
- ddef(f|B) = ddef(f)
- cod(f|B) = B
よく使われる余域制限は、f|im(f) です。fが多様体のチャート f:M⊇→Rn のとき、f|im(f) は、可逆な(普通の)写像になります。
fの像〈image〉 im(f) は、普通の写像でも部分写像でも同じ定義です。
- im(f) := {y∈Y | f(x) = y となる x∈X が存在する}
fの余域 cod(f) と、fの像 im(f) を混同している人がいますが、これは区別しましょう。
一般に、集合A, Bに対してミート〈共通部分〉A∩Bとジョイン〈合併〉A∪Bが定義できますが、部分写像に対してもミート〈meet〉、ジョイン〈join〉が定義できます。ただし、fとgのミート f∩g、ジョイン f∪g が定義できるためには、次の条件があります。
2番目の条件は次のように言い換えられます。
- x∈(ddef(f)∩ddef(g)) に対して、f(x) = g(x)
この条件が満たされるとき、fとgは互換〈compatible〉である、とか一貫性があると言います。
fとgが互換のとき:
- f∩g := f‖ddef(g) (g‖ddef(f) でもいい)
- f∪g := λx∈(ddef(f)∪ddef(g))⊆X.(if (x∈ddef(f)) f(x) elseif (x∈ddef(g)) g(x))
念のため、f∩g, f∪g のプロファイルを書いておくと:
- f∩g:X⊇(ddef(f)∩ddef(g))→Y
- f∪g:X⊇(ddef(f)∪ddef(g))→Y
定義域が、集合のミート・ジョインになっています。
以上に述べた、部分写像の定義域の制限、ミート、ジョインは、部分写像に対するカットアンドペースト操作です。単一の、あるいは幾つかの部分写像を加工/細工〈craftwork〉するときに使います。
関数の適用と結合〈合成〉の混同
古式スタイルでは、f(x) あるいは f(x1, ..., xn) のような表現が何を意味するか判然としないことがあります。解釈の候補としては:
- f(x) は f(x) のことである。
- f(x) は f のことである。
- f(x) は fx のことである。
f:X→Y, x∈X として f(x) を素直に解釈すれば、f(x)∈Y である関数値です。関数fに入力値xを渡して関数値〈出力値〉を求めることを「xにfを適用〈apply〉する」ともいいます。関数値としての f(x) は、fを適用した結果です。
f(x) が実際は λx∈X.(f(x) : Y) の意味で使われることもあります。xは入力変数であり、f(x)はラムダ項の一部なのですが、外側のラムダ束縛が省略されていると解釈します。f = λx∈X.(f(x) : Y) なので、f(x) はfの意味です。XからYへの写像〈関数〉の全体(からなる集合)を Map(X, Y) とすると、今の解釈では “f(x)”∈Map(X, Y) です。
古式スタイルでは、変数と関数が混同されることを思い出してください。変数xは関数かも知れません。x = x(t) 、つまり x:T→X であるケースもあります。このとき、f(x) は結合〈合成〉 fx と解釈します。f(x) = fx は、TからYへの関数〈写像〉となるので、“f(x)”∈Map(T, Y) です。
それぞれの解釈において:
- [適用として解釈] f:X→Y, x∈X として、f(x)∈Y
- [関数として解釈] f(x) = λx∈X.(f(x) :Y) = f :X→Y として、“f(x)”∈Map(X, Y)
- [結合として解釈] f:X→Y, x:T→X, f(x) = fx として、“f(x)”∈Map(T, Y)
どの解釈が適切かは文脈によります。意外と f(x) = fx が多かったりします。z = z(y) = z(y(x)) のような等式も、
- 「出力変数z」 := 「関数z」「関数y」 = λx.(「関数z」(「関数y」(「入力変数x」)))
と解釈できます。ただし、z = z(y) = z(y(x)) = z(x) とやられると、zy = z なのでさすがに辻褄を合わせるのが辛くなります。でも、zy = z も「左辺を改めてzと置く」の意味で使われていそうです。
// yとzは事前に定義された関数 // zを上書き再定義 mapping z := λx∈X.(z := z(y(x)) : z∈Z) // 新z = (旧z)y = (旧z)(y)
xがタプルのときは、さらに解釈が厄介になります。x = (x1, ..., xn) とします。上付き添字〈インデックス〉を使ったのは、微分幾何では上付き添字が多いからです。x = (x1, ..., xn) でも話は同じです。Aはユークリッド空間Rnの開集合、Uは多様体Mの開集合とします。この状況で、xi(i = 1, ..., n)の解釈の候補は:
- xi は、Aを変域とする変数xの第i成分で、単なるスカラー変数
- xi は、AからRへの射影πiのこと
- xi は、A上の座標ラベルのひとつ
- xi は、U上のチャートxと射影πiの結合である座標関数
- xi は、U上の座標ラベルのひとつ
1番目は素直な解釈だからいいとします。2番目と3番目の例として、次の公式を考えてみましょう。
この公式の意味は、第i座標方向への偏微分〈方向微分〉作用素をDiとして、第j射影を πj:A→R としたときに、
の意味です。constは、R→C∞(A) という写像で、実数を定数関数にします。ラムダ記法で定義するなら:
mapping const = λc∈R.(λx∈A.(c : R) : C∞(A))
もとの公式の偏微分の分子であるxjは射影πjの意味なので、2番目の解釈を採用します。偏微分作用素の分母 のxiは、標準的な偏微分作用素をラベルする(識別する)ための座標ラベル記号です。座標ラベルに関しては、「古典的微分幾何・ベクトル解析のモダン化: ラムダ記法の利用 // 座標ラベル」を参照してください。
さて、4番目と5番目の解釈が生じるのは、古式スタイルでは変数と関数を区別しないからです。ユークリッド空間Rnの開集合A、またはRn全体を走る変数xは、なんかの関数かもしれません。よくあるのは、xが多様体Mの開集合U上で定義されたチャート〈座標写像〉 x:U→Rn, im(x) = A というケースです。このとき、xiは πix の意味、つまり4番目の解釈です。また、xiは、U上での偏微分作用素 をラベルするためにも使われます、5番目の解釈ですね。今の場合は、:C∞(U)→C∞(U) である点に気を付けてください -- 微分計算は、いずれ詳しく話すつもりですが。
意味は違っても使う記号は同じなので、心のなかで解釈を切り替えなくてはなりません。心の中での切り替えのトレーニングは、"Don't think. FEEL."方式になってしまいがちです。困ったことだけど、如何ともし難い。ただ、解釈の候補を知っておけば助けにはなるでしょう。
ユークリッド空間の開集合と多様体の開集合の混同
古式スタイルでは、多様体M上のチャートの定義域である開集合(座標近傍)Uと、チャートの像であるユークリッド空間Rnの開集合Aを意図的に混同します。これは、古式スタイルの欠点というより、メリット/アドバンテージと言うべきかも知れません。事情を知って慣れれば便利です。しかしながら、事情を知らずに慣れてないなら意味不明な風習です。
φはMのチャートとします。(チャートに関する詳細は「古典的微分幾何・ベクトル解析のモダン化: 局所座標って何だ?」を参照。)チャートの定義から次は成立します。
- φ|A:U→A (A = im(φ))は位相同型。
- φ|A:U→A は、C∞(A)とC∞(U)のあいだの可換環としての同型を導く。
2番目の性質は、チャートの定義によっては証明すべき定理になりますが、いずれにしても成立します。これらから、次が言えます。
- Uと点とAの点は、1:1に対応する。しかも、対応は連続的である。
- U上の関数とA上の関数は、1:1に対応する。しかも、対応は足し算・掛け算を保存する。
つまり、点や関数を扱う上で、UとAは(φを前提として)同一視可能です。古式スタイルでは、実際に同一視をします。
UとAの同一視を行う上で大活躍(?)するのが、変数と関数の混同です。前節の x = (x1, ..., xn) の5つの解釈、前々節のf(x)の3つの用法を思い出してください。
まず、fをA(ユークリッド空間の開集合)上の実数値関数として、x = (x1, ..., xn) をA上を走る単なる変数とします。このとき、f(x) = f と解釈して、“f(x)” :Rn⊇A→R です。
次に、チャート φ:M⊇U→Rn を、x:M⊇U→R と書く(呼ぶ)ことにします。そして、f(x) の解釈を、心のなかでソッと fx に切り替えます。すると、“f(x)”:M⊇U→R となります。変数名、関数名、記法を一切変えずに:
- “f(x)” = f :Rn⊇A→R
- “f(x)” = fx = fφ : M⊇U→R
のどちらでも表すことができるのです。さらには、微分の計算も、同じ記号・記号で出来ちゃうんですよ。なんて便利なんでしょう。地獄のような混乱も伴うけど。
モニタールームの男とピグマリオン症
古式スタイルは、“多様体Mの開集合U”と“ユークリッド空間Rnの開集合A”を同一視することを目標に記法が設計されているように思えます。目標が達成されているという意味では成功しています。しかしそれにより、“多様体Mの開集合U”と“ユークリッド空間Rnの開集合A”を区別できない/区別しようとしない人を生み出しているように思えます。
「古典的微分幾何・ベクトル解析のモダン化: 局所座標って何だ? // モニタールームの孤独な男」で述べたモニタールームの男が、“多様体Mの開集合U”と“ユークリッド空間Rnの開集合A”を区別できない/区別しようとしない人の戯画化です。
『相対性理論の考え方』*1のなかで、著者J・L・シンジが、「ピグマリオン症」という言葉を使っていました。「キュプロス王・ピグマリオンが、自ら彫り上げた象牙の人形を溺愛した」というギリシャ神話に基づく言葉らしく、「本物に似せて作った模型を本物より愛してしまう」とか「本物の存在を忘れて模型だけしか見られない」といった“病状”を意味しています。
モニタールームの男のように、局所座標が写し出す映像の集まりだけで十分だ、という立場も、計算目的なら頷〈うなず〉けます。しかし、物理現象がそこで起きる空間などを想定する場合、「写し出された映像が世界そのものだ」はやはり違うでしょう。モダンな定式化では、模型はあくまで模型であり、模型により表示される実体/実状があるんだ、という立場を強調します。
関数環とその上の加群を導入しない
XからYへのなめらかな写像〈smooth map〉の全体(からなる集合)を C∞(X, Y) と書くことにします。なめらかな写像を定義するには、事前にXとYに「なめらかさ」を定義可能とする構造(なめらか構造)が載ってなくてはなりません。が、今は追求しないでおきます。
S⊆X として、なめらかな部分写像 f:X⊇S→Y の全体は、C∞X(S, Y) と書きしょう。
- f∈C∞X(S, Y) ⇔ (f:X⊇S→Y, fはなめらか)
Uを多様体Mの開集合として、C∞M(U, R) を単に C∞M(U) と書きます。同様に*2、ユークリッド空間Rnの開集合Aに対しても、C∞Rn(A) := C∞Rn(A, R) 。ただし、C∞M(U), C∞Rn(A) という記法を使うときは、単に関数の集合ではなくて、足し算・掛け算を備えた可換環とみなすと約束します。
可換環としての C∞M(U) や C∞Rn(A) は、微積分でもの凄くよく使います。例えば、写像(なめらかなものしか考えない) g:A→Rm のヤコビ行列 J[g] は、
- J[g]:A→Mat(n, m;R)
として定義できます。ここで、Mat(n, m;R) は実数係数のm行n列行列の集合です。次の同型があります。
- C∞Rn(A, Mat(n, m;R)) Mat(n, m;C∞Rn(A))
この同型により、
- J[g]∈Mat(n, m;C∞Rn(A))
とみなせます。ヤコビ行列は、関数可換環 C∞Rn(A) を係数域とする行列なのです。この時点で、可換環係数の行列を扱っている、つまりは、可換環係数の線形代数に手を染めています。
手を染めているなら、ドップリ浸かってしまえばいいのに、と思うのですが、古式スタイルでは可換環係数線形代数に消極的です。意図的混同による古式記法や、前節で述べた同一視と相性が悪いのかも知れません。
多様体の議論にとって、線形代数はとても重要です。空間の拡がりが広くなると、それだけ“大規模な”線形代数が必要になります。
幾何的対象 | 一点 | 座標近傍 | 多様体 |
---|---|---|---|
線形代数 | ベクトル空間の線形代数 | 自由加群の線形代数 | 加群層の線形代数 |
ベクトル空間の線形代数に幾何的風味を付けたモノ、あるいは幾何にベクトル空間の線形代数を持ち込んだモノとしてベクトルバンドルがあります。
底空間 | 一点 | 座標近傍 | 多様体 |
---|---|---|---|
バンドル | ベクトル空間 | 自明ベクトルバンドル | ベクトルバンドル |
土台としての位相空間に、バンドルと線形代数を組み合わせた構造を載せれば、モダンな多様体の定式化になります。多様体達全体として、幾何と代数が密接に連携した巨大な複合体が出来上がります。
前節で述べた、モニタールームの男のようなピグマリオン症がまずい点のひとつに、多様体達が相互に連携した壮大な世界が見えなくなってしまうことがあります。モニター画面(チャートの像)しか見てないので、建物の外の広大な世界は見えません。
おわりに
今回の記事で、古式スタイルが、意図的な混同と同一視をベースにしていることがお分かりいただけたでしょう。しかし、これが便利なのは何故でしょうか?
古式スタイルで使われている混同と同一視を丁寧にほぐしてみると分かるのですが、概念の差異を区別するために、記号・記法がインフレーションを起こしてしまうのです。英字〈ラテン文字〉だけでは足りなくて、ギリシャ文字、スクリプト体、それでも足りなくて花文字、さらには何重にもネストした添字などを使わないと区別ができません。煩雑で負担になります。
なんでもゴッチャにするのはまずいですが、ある程度は混同と同一視をしないと大変過ぎてやってられないのです。古式スタイルは、混同と同一視に関して、長年培われたガイドラインを提供します。注意深く使うなら、このガイドラインは役に立つと思います。