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

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

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

参照用 記事

さまざまな関手/オペレータと微分の表示

多様体の圏上の計算デバイス: 具体的な計算」の最後で:

因習的な計算手順とは違い、天下りに手順を与えるのではなくて、...[snip]... むしろ、幾何的実体から具体的な計算へと至るプロセスが主たる関心事になります。

多様体のあいだの写像 f:M→N in Man (dim(M) = m, dim(N) = n)があるとき、fの微分は、最終的には写像・行列ペア(「多様体の圏上の計算デバイス: 具体的な計算 // 写像・行列ペアの計算」参照) [φ : A]∈ParAES(Rm×Rm, Rn×Rn) で局所表示されます。上記の引用内の「幾何的実体から具体的な計算へと至るプロセス」を考えると、fから[φ : A]までのプロセスはけっこう長いです。もちろん、バイパス/ショートカットはありますが、バイパス/ショートカットをやり過ぎると「天下りの計算ルール」になってしまいます。

「幾何的実体から具体的な計算へと至るプロセス」の基本ステップを構成するのは、ある種の“変換”です。多様体のあいだの写像に関して、その“微分”と呼ばれるものがたくさんあるのは、変換がたくさんあるからです。よく使われる変換(関手/オペレータ)を挙げて、幾つかの“微分”を構成してみます。

内容:

さまざまな関手/オペレータ

fから[φ : A]へと至るプロセスに登場する関手/オペレータには次のようなものがあります。

  1. 接関手 T:ManVectBundle
  2. 余域引き戻し関手 CodPb::VectBundle→∫VectBdl# (圏の同型)
  3. ベース・ファイバー分解 g = (gbase, gfib→)
  4. 大域セクション関手 ΓM:VectBdl[M]→Φ[M]-Mod
  5. セクション化オペレータ SectE,F:VectBdl[M](E, F)→ΓM([E, F]) (集合の同型)
  6. 関数テンソル化オペレータ FTensE,F:[E, F]→F*\otimesME (集合の同型)
  7. 局所セクション関手 ℓΓM:VectBdl[M]→Φ-Mod-Sh[M] (圏の埋め込み)

繰り返し言いますが、これらの関手/オペレータを経由しない定式化や理解の方法はいくらでもあります。が、具体的な計算手段の背後のプロセス/メカニズムを問題にするなら、これらの関手/オペレータを明示的に取り扱うべきです。

なお、オペレータ(圏論的オペレータ)と呼んでいるものは、圏の射(主に集合圏の射=写像)の添字族〈indexed family〉です。オペレータは自然変換の成分になっていることがありますが、自然変換ではないオペレータもあります。「オペレータ」と「コンビネータ」は同義語として使います(「圏論的コンストラクタと圏論的オペレータ: 関手性・自然性の呪縛からの脱却」参照)。今回出てくるオペレータは、実は自然変換とみなせます。

それぞれの関手/オペレータについて、短い説明・注意を以下にします。

接関手 T

多様体にその接バンドル、写像にその接写像を割り当てるのが接関手〈tangent functor〉です。注意すべきは、接関手が ManVectBundleManMan のどちらの意味で使われているか、です。多様体ベクトルバンドルを対応させるなら、当然に ManVectBundle です。バンドルにその全空間を対応させる関手を E:VectBundleMan とすると、T*E:ManMan ('*'は関手の図式順結合記号)のことを接関手と呼ぶこともあります。TとEは随伴ペアで、T*E はモナドになります(「接関手の上のモナド」参照)。この記事での接関手は ManVectBundle の形のものです。なお、記事「接関手の上のモナド」内の「VectBdl」は、この記事での「VectBundle」の意味なので注意してください。

余域引き戻し関手 CodPb

ベクトルバンドルの圏VectBundleは、グロタンディーク構成とは独立に定義できます。一方で、インデックス付き圏VectBdl#[-]をグロタンディーク構成で順方向平坦化すると、VectBundleと同型な圏 ∫VectBdl#/Man が得られます。ここで使ったグロタンディーク平坦化については「インデックス付き圏のインデックス付き対象の圏 // 4種のグロタンディーク平坦化」を参照してください。バンドルと層の用語・記号は次の記事にまとめてあります。

VectBundleと∫VectBdl#の同値(実際は同型)を与える関手が余域引き戻し関手〈codomain-pullback functor〉 CodPb:VectBundle→∫VectBdl# で、

ここで(次節のタイトルである)ベース・ファイバー分解の概念(「インデックス付き圏のインデックス付き対象の圏 // ベース・ファイバー分解」参照)が出てきます。CodPb(f)のベース部は、インターベース射 f のベース射〈底射〉|f|と同じです(インターベース射/イントラベース射については、「コジュール接続の圏 その2 // イントラベースとインターベース」参照)。CodPb(f)のファイバー部 E→|f|#(F) in VectBdl[M] が、ベクトルバンドルの意味でも fibre-to-fibre 対応の情報を持っています。

VectBundleの射は、インターベースなバンドル射です。f:E→F in VectBundle に対して、CodPb(f) はfの情報を完全に保持していますが、主に注目するのはCodPb(f)のファイバー部である VectBdl[|E|] の射のほうです。

老婆心で注意しておくと; 「ファイバー」という言葉が、ベクトルバンドルでの意味と、インデックス付き圏/ファイバー付き圏での意味で使われているので注意してください。平坦化圏(ファイバー付き圏の全圏)の射のファイバー部が、ベクトルバンドルのファイバーごとの射を寄せ集めた情報を担っています。

ベース・ファイバー分解

グロタンディーク構成で作られた圏(平坦化圏)の射 f は、その定義から、ベース部とファイバー部を持ちます。ベース・ファイバー分解〈base-fibre decomposition〉とは、単に、f を (fbase, ffib) の形に書くことです。ファイバー部 ffib は、平坦化圏の作り方に応じて ffib→, ffib←, ffib→, ffib← と書きます。次の記事に詳しく書いてあります。

大域セクション関手 Γ

Φは、関数環関手 Φ:ManCRng 、または関数環層 ΦMCRng-Sh[M] の意味で使います。詳しくは「インデックス付き圏のインデックス付き対象の圏 // 事例:関数環層Φ」を参照してください。

大域セクション関手〈global section functor〉 ΓM:VectBdl[M]→Φ(M)-Mod は、M上のベクトルバンドルEに対して、そのセクションからなる加群 ΓM(E) を対応させます。加群の係数環〈基礎環 | スカラー環〉は、Φ(M) = C(M) です。

大域セクション関手は、後で出てくる局所セクション関手の特定値(特定の開集合)を選ぶ関手ですが、それ自体として重要なので、局所セクション関手とは独立に定義を与えました。

セクション化オペレータ Sect

セクション化オペレータ〈sectionize operarot〉は、イントラベース・ベクトルバンドル射をセクションに変換します。f:E→F がイントラベース・ベクトルバンドル射のとき、底空間(Mとします)の点pに対して、射のファイバー fp:Ep→Fp が決まります。この fp を内部ホムバンドル [E, F] のファイバー [E, F]p の点だと思います; fp∈[E, F]p 。すると、p \mapsto fp は、ベクトルバンドル [E, F] のセクションになります。

この対応を、f \mapsto Sect(f) とします。Sect:VectBdl[M](E, F)→Γ([E, F]) という写像になります。関与するベクトルバンドルを明示するために SectE,F と添字付けすることもあります。

イントラベース・ベクトルバンドル射 f と、そのセクション化 Sect(f) は、多くの場合暗黙に同一視されます。そうなると、セクション化オペレータを意識できないことになりますが、セクション化オペレータの存在は意識しておいたほうがいいです。セクション化オペレータは可逆なので、セクションをバンドル射にすることもできます。

[追記]
ベクトルバンドルEとセクションの空間Γ(E)を、別物だと認識するのは容易です。が、イントラベース・バンドル射 f:E→F と、Γ(f):Γ(E)→Γ(F) を区別するのは困難です。想像以上に区別してなくて、区別している例が見つかりません。

「だったら、区別する必要がないだろう」は一理あるかも知れませんが、それでも僕は区別したい。fの引数は有限次元多様体の点ですが、Γ(f)の引数は無限次元ベクトル空間のベクトルで全然別物ですからね、同一視するのはオカシイ、と思いますよ。
[/追記]

関数テンソル化オペレータ FTens

線形代数のレベルで、[V, W] \cong W*\otimesV が成立します。この同型を与える写像(左から右方向)を関数テンソル〈function tensorize〉と呼ぶことにします。内部ホム空間 [V, W] の要素〈ベクトル〉は、V→W という関数〈線形写像〉を表現します。その関数をテンソル(ここでは、テンソル積で構成されたベクトル空間の要素の意味)に変換する、つまり「関数のテンソル化」と捉えます。

関数テンソル化は、ベクトルバンドルに対しても定義できて、それを FTens:[E, F]→F*\otimesE とします。関与するベクトルバンドルを明示するために FTensE,F と添字付けすることもあります。関数テンソル化と、その逆であるテンソル関数化tensor functionize〉 TFunc:F*\otimesE→[E, F] も暗黙に、あるいは無意識に使われています。

局所セクション関手 ℓΓ

局所セクション関手〈local section functor〉は、M上のベクトルバンドルEに対して、M上の加群層を対応させます。大域セクション関手から局所セクション関手を定義できます。

  • For 開集合 U⊆M,
    ℓΓM(E)(U) := ΓM(U, E) = ΓM(E|U)

バンドルと層の記法 追加 // 前層におけるバッククォート記法」で導入したバッククォート記法を使うなら、

  • ℓΓM(E)`U = ΓM(U, E)

イントラベース・バンドル射 f:E→F に対して、ℓΓM(f):ℓΓ(E)→ℓΓ(F) は、セクションに対して f を後結合する操作です。ℓΓM(E) に渡す開集合として特にMを選ぶと大域セクションが再現します。

局所セクション関手は、ベクトルバンドルの圏を加群層の圏に埋め込む働きをします。ベクトルバンドルの圏における演算(テンソル積など)を、加群層の圏の対応する演算に移します。加群層の圏は、ベクトルバンドルの圏よりはるかに自由な構成ができるので、加群層の圏で考えるほうが便利です、格段に便利です。

ℓΓM の下付きMを、インデックスと考えると、局所セクション関手ℓΓは、インデックス付き圏 VectBdl#[-] からインデックス付き圏 Φ-Mod-Sh-|[-] へのインデックス付き関手になっています。

fの微分

f:M→N in Man に対して「fの微分」と呼ばれるものが、それはそれはたくさんあります。幾つかの「fの微分」をみていきましょう。ここで列挙されてない「fの微分」もまだまだあります。

まず、fに接関手 T:ManVectBundle を適用して、Tf:TM→TN in VectBundle が得られます。Tfを「fの微分」と呼んでもいいでしょうが、「fの接写像」が普通でしょう。

Tfに余域引き戻し関手 CodPb:VectBundle→∫VectBdl# を適用すると、インデックス付き圏 VectBdl#[-] の順方向平坦化圏 ∫VectBdl# 内の射 CodPb(Tf) が得られます。このファイバー部を Df と置きます。

  • Df := CodPb(Tf)fib→ :TM→f#TN in VectBdl[M]

Dfを「fの微分」と呼んでもいいかも知れません。(以下、このテの文言は省略。)

Dfにセクション化オペレータ Sect:VectBdl[M](TM, f#TN)→Γ([TM, f#TN]) を適用すると、大域セクション Sect(Df)∈Γ([TM, f#TN]) が得られます。Sect(Df) は、M→([TM, f#TN]の全空間) という写像で、射影で元に戻るものです。セクションの各点での値は、[TM, f#TN]p= [TpM, Tf(p)N] という内部ホム・ベクトル空間の要素です。

大域セクション関手の代わりに局所セクション関手を適用してみましょう。例えば、Dfに局所セクション関手を適用すると:

  • ℓΓ(Df) : ℓΓ(TM)→ℓΓ(f#TN) in Φ-Mod-Sh[M]

ℓΓ(Df) は層のあいだの射なので、開集合 U⊆M に対して、

  • ℓΓ(Df)`U : ℓΓ(TM)`U→ℓΓ(f#TN)`U in Φ(U)-Mod

今回は述べてませんが、加群層のなかでの同型を利用して、ℓΓ(Df) を ℓΓ(RM) → ℓΓ(f#TN)\otimesℓΓ(T*M) in Φ-Mod-Sh[M] とみなすことができます。ここで、RMは、M上のRファイバー自明バンドルで、ℓΓ(RM) = ΦM です。

Tfから出発するとして、∫VectBdl#内でのさまざまな操作、局所セクション関手ℓΓによる埋め込み、そして ∫Φ-Mod-Sh-|内でのさまざまな操作を組み合わせると、たくさんの「fの微分」を作れます。

たくさんの「fの微分」を列挙することは重要ではなくて、それらを作り出すツールとなっている関手/オペレータを理解して使うことが重要です。ツールの組み合わせにより、自分の目的にふさわしい「fの微分」を作ることができます。

さらに

この記事で述べてない変換のツールとして、カリー化/反カリー化、要素とポインター射の変換があります。今僕が思い出せない変換ツールが他にもあるかも知れません。いつか取り上げます、たぶん。

よく使われる記号  \frac{\partial}{\partial x^i}, \: dx^i は、同じ記号のままで、セクション、イントラベース・バンドル射、インターベース・バンドル射、加群の射などの意味で使われます。 \frac{\partial}{\partial x^i} は、微分作用素の意味でも(つうか、それが本来の用法)使われます。いちいち変換を明示しないで、とにかくオーバーロード(記号の多義的使用)を押し通す方針なのです。

いつも言ってますが、過度のオーバーロードはほんとに良くないなー、と思います。利便性からオーバーロードを使うにしても、実際は違うものだと明示すべきですよ。例えば:

  1.  \frac{\partial}{\partial x^i} : C^\infty(def(x)) \to C^\infty(def(x))
  2.  \frac{\partial}{\partial x^i} \in \Gamma(TM|_{def(x)})
  3.  \frac{\partial}{\partial x^i} : {\bf R}_{def(x)} \to TM|_{def(x)} \:\mbox{in}\: {\bf VectBdl}[def(x)]
  4.  \frac{\partial}{\partial x^i} : {\bf R}_{img(x)} \to TM|_{def(x)} \:\mbox{in}\: {\bf VectBundle}
  5.  \frac{\partial}{\partial x^i} : \Gamma({\bf R}_{def(x)}) \to \Gamma(TM|_{def(x)}) \:\mbox{in}\: C^\infty(def(x))\mbox{-}{\bf Mod}

この辺のことも、具体例で説明するかも知れません、いつか。