今年の8月に「基底とフレーム、丸く収まる妥協案」という記事を書きました。その記事で、混同されがちな3つの概念を区別して、それぞれに別な名前を与えました。「うまくいった」と思ったのですが、まだ問題がありました。
内容:
定義が狭すぎた
「基底とフレーム、丸く収まる妥協案」において、3つの概念に付けた呼び名は、
- 基底集合
- 基底フレーム
- 線形フレーム
でした。一部省略を許すと:
- 基底集合 または 基底
- 基底フレーム または 基底 または フレーム
- 線形フレーム または フレーム
省略により呼び名の衝突が起きますが、区別されてない状況が再現するだけだから別にかまわない(区別したいなら省略するな)、という態度。
実際にこの用語法で書いたり話したりしてみたのですが、どうも具合が良くない。基底フレーム、線形フレームの概念が狭すぎるのです。一般性に欠ける、特殊ケースしか扱ってないのです。
準備
A, B などは集合、V, W などはベクトル空間を表します。ベクトル空間Vの台集合はU(V)と書きます。'U'は underlying set の'u'からです。通常、ベクトル空間とその台集合は区別しませんが、区別しないと曖昧さから混乱するリスクがあるので区別します。
圏論の概念を使うことにします; F:Set → Vect は自由ベクトル空間{生成}?関手とします(中括弧と疑問符は、「生成」が省略可能なことを示します)。台集合を対応させるUは忘却関手 U:Vect → Set です。自由ベクトル空間関手Fと忘却関手Uは随伴ペアとなっているので、次のホムセット同型があります。
- Vect(F(A), V) Set(A, U(V))
このホムセット同型を与える2つの写像に名前を付けておきます。
- 線形拡張〈linear extension〉 linExtA,V:Set(A, U(V)) → Vect(F(A), V)
- 線形制限〈linear restriction〉 linRestrictA,V:Vect(F(A), V) → Set(A, U(V))
linExtA,V と linRestrictA,V は互いに逆です。
任意の写像 f:A → U(V) in Set に対して、線形写像 linExtA,V(f):F(A) → V in Vect を構成できます。できた線形写像に linRestrictA,V を適用すると、もとの写像に戻ります。
- linRestrictA,V(linExtA,V(f)) = f :A → U(V) in Set
linExtA,V と linRestrictA,V は互いに逆だったので、次も成立します。
- 線形写像 g:F(A) → V in Vect に対して linExtA,V(linRestrictA,V(g)) = g :F(A) → V in Vect
B⊆A のとき、包含写像〈inclusion map〉を inclAB:B → A in Set と書きます。
再定義
「基底とフレーム、丸く収まる妥協案」と、そこから参照されている関連する記事では、基底集合を基本的概念としています。基底集合は広く知られているお馴染みな概念なので、「基底集合ありき」とするのは当然とも言えます。が、圏論的セッティングで線形代数をするときは「基底集合ありき」から出発するのはなんかシックリ来ない。
ではどうするか?「フレームありき」から出発しましょう。「フレーム」を改めて次のように定義します。新しい定義は以前の「基底フレーム」の定義よりずっと一般的です。
- ベクトル空間Vに対して、写像 f:A → U(V) in Set がVのフレーム〈frame〉だとは、linExtA,V(f):F(A) → V in Vect が線形同型であること。
フレームの定義に先立って、自由ベクトル空間関手 F と線形拡張 linExtA,V(AとVを動かした全体は自然変換になる)が必要になります。が、どちらも具体的に構成可能です。
さて、基底集合はフレームを使って定義します。
- ベクトル空間Vに対して、集合 A⊆U(V) が基底集合〈basis set〉だとは、包含写像 inclU(V)A:A → U(V) in Set がフレームであること。
従来の基底集合の定義(線形独立な生成系集合)を知っている場合は、上の定義と従来の定義が同値であることを確認しましょう。従来の定義と新しい定義にくいちがいはありません。
ベクトル空間が有限次元のときを考えましょう。dim(V) = m だとは、Vの基底集合Aの基数〈cardinality | 濃度〉がmであることです。したがって、A {1, ..., m} in Set 。この同型を与える写像(のひとつ)を φ:{1, ..., m} → A (AはVの基底集合)とします。φ;inclU(V)A:{1, ..., m} → U(V) in Set がVのフレームになることは、次のことから分かります。
- linExt(φ;inclA) = F(φ);linExt(inclA) (一部の添字を省略)
- F(φ):F({1, ..., m}) → F(A) in Vect は線形同型
一番目は随伴系の反転置に関して一般的に成立する等式*1ですが、直接具体的に計算しても示せます。二番目は、同型射を関手で移せば同型射に移ることから示せます。
これで、典型的なVのフレームが二種類得られました。
- A⊆U(V) がVの基底集合のとき、包含写像 inclU(V)A はフレームである。
- A⊆U(V) がVの基底集合、φ:{1, ..., m} → A が同型写像のとき、φ;incluU(V)A はフレームである。
「基底とフレーム、丸く収まる妥協案」で「基底フレーム」と呼んでいたものは、φ;inclU(V)A の形のフレームでした。今回の定義は、この形に限定してないので、域〈domain〉が番号の集合じゃないフレームもあります。例えば、dim(V) = 3 のとき、3つのラテン小文字の集合 {'x', 'y', 'z'} を使ったフレーム e:{'x', 'y', 'z'} → U(V) は世間で普通に使われています。
整理と反省
Vはベクトル空間だとして:
- Vのフレーム: 写像 f:A → U(V) in Set で、その線形拡張が線形同型であるもの。
- Vの基底{集合}?: 集合 A⊆U(V) で、包含写像 inclU(V)A がVのフレームであるもの。
- Vの線形フレーム: 線形写像 g:F(A) → V in Vect で線形同型〈可逆線形〉であるもの。
フレームと基底集合は1:1対応しません*2が、フレームと線形フレームは1:1対応します。その1:1対応が、線形拡張/線形制限で与えられます。
- linExt:Set(A, U(V))⊇FrameA(V) ←→ LinFrameA(V)⊆Vect(F(A), V):linRestrict
ここで、
- FrameA(V) は、Aを域とするVのフレームの集合。
- LinFrameA(V) は、F(A)を域とするVの線形フレームの集合。
前節で挙げたフレームの特殊例、よく使うフレームは次のように呼ぶとよいでしょう。
この呼び名は、「古典的微分幾何・ベクトル解析のモダン化: ダイレクトインデックス記法」のダイレクトインデックスとナンバリング{インデックス}?と整合します。
今まで僕が書いた/話したなかで、基底集合とフレームをゴッチャにすることはなかったと思いますが、フレームと線形フレームを区別しない(同じ呼び名・記号をオーバーロードする)ことは多かったです。今後も徹底して区別することは出来ないだろうし、その必要もないと思います。
ただし、この記事で定義した(ナンバリングフレームに限らない)一般的なフレームは便利なので使い続けるでしょう。ナンバリングフレームに限定するのは辛い、もう嫌だ。