arXiv探訪

興味の赴くままに数学するだけ

32.5(コ)ホモロジー

目次

アーベル圏における蛇の補題の証明は長くなりそうなので、別の場所に写すことにした。

(コ)ホモロジーの長完全系列

先に示した蛇の補題がどのような場面で使われるのかを見ながら、これから我々が考えていく対象について確認しておこう。

{ R }に対し、{ R }-加群の中で最も基本的なものとして自由加群{ R^{\Lambda} }を挙げた。その理由としては、任意の{ R }-加群{ M }に対し、適当な自由加群{ F }を取り全射{ \epsilon:F\rightarrow M }が作れるからである。特に核を{ K }と置くと、準同型定理より{ M\cong F/K }が成り立つ。これを完全列の言葉で書き直すと

{ 0\rightarrow K\rightarrow F\rightarrow M\rightarrow 0 }

は完全となる。ここで{ F }は「{ M }の元のコピー」であり、{ K }はそれらの間の「関係」を表している。

ところで{ K }自身もやはり{ R }-加群なので、再び自由加群{ F_{1} }を取り、全射{ d_{1}:F_{1}\rightarrow K }が得られる。{ \mathrm{Im}d_{1}=K=\mathrm{Ker}\epsilon }だから、

{ 0\rightarrow\mathrm{Ker}d_{1}\rightarrow F_{1}\xrightarrow{d_{1}} F\xrightarrow{\epsilon} M\rightarrow 0 }

は完全となる。この作業を繰り返していけば、任意の長さの自由加群による完全系列

{ F_{n}\xrightarrow{d_{n}}F_{n-1}\xrightarrow{d_{n-1}}\dotsb\rightarrow F_{1}\xrightarrow{d_{1}}F\xrightarrow{\epsilon}M\rightarrow 0 }

を得ることができる。得られた系列は「関係」つまり{ M }の内部構造を反映したものではあるが、自由加群の取り方に依るため{ M }のみに注目していただけでは得られないある種の「{ M }のデータ」である。もちろんこの例は素朴過ぎて、新しい情報は何も得ることは出来ないだろう。しかし、このようなデータを集めれば、{ M }について何か言えるかもしれない。そう考えるのは自然なはずだ。

定義 加群の系列

{ \dotsb\rightarrow C_{n+1}\xrightarrow{d_{n+1}}C_{n}\xrightarrow{d_{n}}C_{n-1}\rightarrow\dotsb }

{ d_{n}\circ d_{n+1}=0 }を満たすとき、鎖複体(chain complex)あるいは単に複体と呼び{ C=(C_{n}, d_{n}) }{ C. }などと表す。このとき各{ C_{n} }を鎖あるいはチェイン(chain)と呼び、{ Z_{n}( C ):=\mathrm{Ker}d_{n} }を輪体あるいはサイクル(cycle)、{ B_{n}( C ):=\mathrm{Im}d_{n+1} }を境界輪体あるいは単に境界やバウンダリー(boundary)などと呼ぶ。そして{ H_{n}( C ):=Z_{n}( C )/B_{n}( C ) }を({ n }次)ホモロジー(homology)と呼ぶ。複体が完全とは、全てのホモロジーがゼロとなることを意味する。

我々は無限列について考えることにする。先の例では、自由加群による完全系列を任意の長さで構成できることは主張していたが、無限列の存在までは主張していない。これにはクラスに対する依存選択公理など超限的な操作が必要になる。しかし例えば{ R }ネーター環の場合、{ M }が有限生成なら{ F }として有限次元({ R }の有限個の直和)なものが取れる。その部分加群もまた有限次元であるから、{ K }の次元は{ F }の次元より小さくなる。従って少なくとも{ F_{n}=0 }が従うように系列が取れて無限列

{ \dotsb\rightarrow 0 \xrightarrow{0}F_{n}\rightarrow\dotsb\rightarrow F_{1}\rightarrow M\rightarrow 0 \rightarrow 0\rightarrow\dotsb }

が完全となる。

定義 複体{ A=(A_{n}, a_{n}), B=(B_{n}, b_{n}) }に対し、準同型の組{ f=(f_{n}:A_{n}\rightarrow B_{n}) }{ A }{ B }の間の射であるとは、{ f_{n}\circ a_{n+1}=b_{n+1}\circ f_{n+1} }を満たすことをいう。

すぐに確認できることだが、対象を複体、射を複体の間の射とすることで圏の公理を満たす。これを{ R }-加群の複体の圏と言い{ \mathrm{ch}(R\mathrm{-mod}) }と表す。ちなみにこれはアーベル圏となり、零対象は

{ \dotsb 0\rightarrow 0\rightarrow 0 \rightarrow \dotsb }

である。{ f:A\rightarrow B }の核などが

{ \dotsb \rightarrow \mathrm{Ker}f_{n} \rightarrow \mathrm{Ker}f_{n-1} \rightarrow\dotsb }

などとなるが、言葉として用いたいだけなので確認する必要はないだろう。

定理 ホモロジーの長完全系列) 複体の系列{ 0\rightarrow C\xrightarrow{f}D\xrightarrow{g}E\rightarrow 0 }は完全であるとする。つまり

{ 0\rightarrow C_{n}\xrightarrow{f_{n}}D\xrightarrow{g_{n}}E\rightarrow 0 }

{ R }-加群の完全系列であるとする。このとき

{ \begin{align*} \dotsb &\rightarrow H_{n}( C )\rightarrow H_{n}(D)\rightarrow H_{n}(E) \\
& \xrightarrow{\delta}H_{n-1}( C )\rightarrow H_{n-1}(D)\rightarrow H_{n-1}(E) \\
& \rightarrow\dotsb \end{align*} }

を完全とする準同型{ \delta: H_{n}(E)\rightarrow H_{n-1}( C ) }が存在する。

(証明)次の可換図式

{ \begin{align*} 0\rightarrow & C_{n} & \rightarrow & D_{n} & \rightarrow & E_{n} & \rightarrow & 0 \\ & \downarrow & & \downarrow & & \downarrow & & \\ 0 \rightarrow & C_{n-1} & \rightarrow & D_{n-1} & \rightarrow & E_{n-1} & \rightarrow & 0 \end{align*} }

に蛇の補題を用いれば完全列

{ 0\rightarrow Z_{n}( C )\rightarrow Z_{n}(D)\rightarrow Z_{n}(E) }

及び

{ C_{n-1}/B_{n-1}( C )\rightarrow D_{n-1}/B_{n-1}(D)\rightarrow E_{n-1}/B_{n-1}(E)\rightarrow 0 }

を得る。これを{ \overline{c_{n}}:C_{n}/B_{n}( C )\rightarrow Z_{n-1}( C ) }などで繋いで、再び蛇の補題を用いれば{ \mathrm{Ker}\overline{c_{n}}=Z_{n}( C )/B_{n}( C )=H_{n}( C ) }及び{ \mathrm{Cok}\overline{c_{n}}=Z_{n-1}( C )/\mathrm{Im}\overline{c_{n}}=Z_{n-1}( C )/B_{n-1}( C )=H_{n-1}( C ) }などより求めたい長完全系列を得る。{ \delta }はこの連結準同型である。{ \square }

所感

単体的複体とかから導入してもいいけど、位相的な話題は全然やってないからなぁ、どうするか。

32.蛇の補題

目次

アーベル圏に対する議論は自明に思えることでもきちんと示していく必要がある。

加群の場合

加群の完全系列に対して、良く知られている補題が幾つかある。今後の議論を冗長にしないためにも、ここで示しておこう。

補題 (5項補題(five lemma)) 加群の系列{ M_{1}\xrightarrow{f_{1}}M_{2}\xrightarrow{f_{2}}\dotsb\xrightarrow{f_{4}}M_{5} }及び{ N_{1}\xrightarrow{g_{1}}\dotsb\xrightarrow{g_{4}}N_{5} }は完全とする。加群の準同型{ \phi_{i}:M_{i}\rightarrow N_{i} }が図式を可換にするとする。このとき{ \phi_{1}, \phi_{2}, \phi_{4}, \phi_{5} }が同型であれば、真ん中の{ \phi_{3} }も同型となる。

(証明)まず単射性を示そう。{ x, y\in M_{3} }を取り、{ \phi_{3}(x)=\phi_{3}(y) }が成り立つとする。

{ \phi_{4}\circ f_{3}(x-y)=g_{3}\circ\phi_{3}(x-y)=g_{3}(0)=0 }

であるから、{ \phi_{4} }が同型なので{ f_{3}(x-y)=0 }を得る。従って{ x-y\in\mathrm{Ker}f_{3}=\mathrm{Im}f_{2} }となるから、{ z\in M_{2} }として{ f_{2}(z)=x-y }を満たすように取れる。

{ g_{2}\circ\phi_{2}(z)=\phi_{3}\circ f_{2}(z)=\phi_{3}(x-y)=0 }

より{ \phi_{2}(z)\in\mathrm{Ker}g_{2}=\mathrm{Im}g_{1} }が分かる。そこで{ w\in N_{1} }{ g_{1}(w)=\phi_{2}(z) }となるように取れば、{ \phi_{1}, \phi_{2} }が同型なので

{ f_{1}(\phi_{1}^{-1}(w) ) = \phi_{2}^{-1}(g_{1}(\phi_{1}(\phi_{1}^{-1}(z) ) ) = \phi_{2}^{-1}(g_{1}(w) )=z }

が従う。故に{ z\in\mathrm{Im}f_{1}=\mathrm{Ker}f_{2} }であるから{ x-y=f_{2}(z)=0 }となる。つまり{ x=y }である。

次に全射性を示そう。{ y\in N_{3} }とする。{ \phi_{4} }が同相だから{ z\in M_{4} }{ \phi_{4}(z)=g_{3}(y) }となるように取れる。{ \phi_{5} }も同相だから、

{ f_{4}(z)=\phi_{5}^{-1}\circ g_{4}\circ\phi_{4}(z)=\phi_{5}^{-1}(g_{4}\circ g_{3}(y) )=\phi_{5}^{-1}(0)=0 }

となる。従って{ z\in\mathrm{Ker}f_{4}=\mathrm{Im}f_{3} }だから、{ x\in M_{3} }として{ f_{3}(x)=z }を満たすものが取れる。

{ g_{3}(\phi_{3}(x)-y)=\phi_{4}(f_{3}(x) )-g_{3}(y)=\phi_{4}(z)-g_{3}(y)=0 }

となるから、{ \phi_{3}(x)-y\in\mathrm{Ker}g_{3}=\mathrm{Im}g_{2} }を得る。そこで{ w\in N_{2} }{ g_{2}(w)=\phi_{3}(x)-y }を満たすように取れば、{ \phi_{2} }は同相だから

{ \phi_{3}(x-(f_{2}(\phi_{2}^{-1}(w) ) ) )=\phi_{3}(x)-g_{2}(w)=y }

となる。故に{ y\in\mathrm{Im}\phi_{3} }が従う。{ \square }

上のような証明を図式追跡(diagram chasing)と言ったりする。一見難しそうだが、特別高度な推論を行っているわけではないので、慣れれば感覚が掴めるはずだ。人生に一度位はゼロから計算してみるのも悪くないと思う。次の補題は、誰が命名したかは分からないが、聞いただけで心の踊る命題である。

補題 (蛇の補題(snake lemma)) 加群の系列{ L_{1}\xrightarrow{\phi_{1}}L_{2}\xrightarrow{\phi_{2}}L_{3}\rightarrow 0 }及び{ 0\rightarrow M_{1}\xrightarrow{\psi_{1}}M_{2}\xrightarrow{\psi_{2}}M_{3} }は完全であるとする。加群の準同型{ f_{j}:L_{j}\rightarrow M_{j} }は図式を可換にするとする。また{ i_{j}, p_{j} }を完全系列{ \mathrm{Ker}f_{j}\xrightarrow{i_{j}}L_{j}\xrightarrow{f_{j}}M_{j}\xrightarrow{p_{j}}\mathrm{Cok}f_{j} }で定めておく。このとき制限による{ \mathrm{Ker}f_{1}\rightarrow\mathrm{Ker}f_{2}\rightarrow\mathrm{Ker}f_{3} }及び{ \mathrm{Cok}f_{1}\rightarrow\mathrm{Cok}f_{2}\rightarrow\mathrm{Cok}f_{3} }は図式を可換にし、更にある準同型{ d:\mathrm{Ker}f_{3}\rightarrow\mathrm{Cok}f_{1} }が存在して、

{ \mathrm{Ker}f_{1}\rightarrow\mathrm{Ker}f_{2}\rightarrow\mathrm{Ker}f_{3}\xrightarrow{d}\mathrm{Cok}f_{1}\rightarrow\mathrm{Cok}f_{2}\rightarrow\mathrm{Cok}f_{3} }

は完全となる。

(証明)全部は大変なので{ d }の存在のみ示そう。図式の可換性と完全性は簡単な図式追跡で示せる。

{ f_{3}(x)=0 }とする。{ \phi_{2} }全射なので、{ y\in L_{2} }{ \phi_{2}(y)=x }を満たすように取れる。

{ \psi_{2}\circ f_{2}(y)=f_{3}\circ\phi_{2}(y)=f_{3}(x)=0 }

より、{ f_{2}(y)\in\mathrm{Ker}\psi_{2}=\mathrm{Im}\psi_{1} }が分かる。そこで{ z\in M_{1} }として{ \psi_{1}(z)=f_{2}(y) }となるように取る。このとき{ d:x\mapsto p_{1}(z) }と定めたい。この定義がwell-definedであることを示すためには、同様に{ y^{\prime}, z^{\prime} }を取り、{ z-z^{\prime}\in\mathrm{Im}f_{1} }となることを示せば良い。まず{ y-y^{\prime}\in\mathrm{Ker}\phi_{2}=\mathrm{Im}\phi_{1} }であるから、{ w\in L_{1} }{ \phi_{1}(w)=y-y^{\prime} }となるように取れる。

{ \psi_{1}(z-z^{\prime})=\psi_{1}(z)-\psi_{1}(z^{\prime})=f_{2}(y)-f_{2}(y^{\prime})=f_{2}(y-y^{\prime})=f_{2}\circ\phi_{1}(w)=\psi_{1}\circ f_{1}(w) }

だが、{ \psi_{1} }単射なので{ z-z^{\prime}=f_{1}(w)\in\mathrm{Im}f_{1} }が従う。{ \square }

ちなみに{ \phi_{1} }単射なら{ \mathrm{Ker}f_{1}\rightarrow\mathrm{Ker}f_{2} }単射であり、{ \psi_{2} }全射なら{ \mathrm{Cok}f_{2}\rightarrow\mathrm{Cok}f_{3} }全射である。{ d }のことを連結準同型(connecting homomorphism)などと言うこともある。

補題 (9項補題(nine lemma)) 加群の系列{ 0\rightarrow L_{j}\xrightarrow{\phi_{j}}M_{j}\xrightarrow{\psi_{j}}N_{j}\rightarrow 0 }は完全であるとする。加群の準同型

{ \begin{align*} A:& 0\rightarrow L_{1}\xrightarrow{f_{1}}L_{2}\xrightarrow{f_{2}}L_{3}\rightarrow 0 \\ B:& 0\rightarrow M_{1}\xrightarrow{g_{1}}M_{2}\xrightarrow{g_{2}}M_{3}\rightarrow 0 \\ C:& 0\rightarrow N_{1}\xrightarrow{h_{1}}N_{2}\xrightarrow{h_{2}}N_{3}\rightarrow 0 \end{align*} }

が図式を可換にするとする。このとき次が成り立つ。

  • { A, B }が完全なら{ C }も完全となる。
  • { B, C }が完全なら{ A }も完全となる。

(証明)上は{ A, B }に蛇の補題を用いれば{ C }の完全性が従う。下も同様。{ \square }

なお{ A, C }が完全であっても、{ B }が完全になるとは限らない。

アーベル圏の場合

アーベル圏においても上記の補題は同様に成り立つことが知られている。ただし系列{ X_{n}\xrightarrow{f_{n}}X_{n+1} }とは{ f_{n+1}\circ f_{n}=0 }を満たす対象と射の列のことを指し、系列が完全であるとは、系列に対して定まる自然な射{ \mathrm{Im}(f_{n-1})\rightarrow\mathrm{Ker}(f_{n}) }がイソであることを意味する。

まずは零対象を持つ圏における一般論から始めよう。

命題 { C }は零対象を持つとする。このとき以下が成り立つ。{ X }は任意の対象とする。

  • { 0\rightarrow X }はモノである。
  • { X\rightarrow 0 }はエピである。
  • { \mathrm{Ker}(0\rightarrow X)\cong 0 }が成り立つ。
  • { \mathrm{Cok}(X\rightarrow 0)\cong 0 }が成り立つ。
  • { \mathrm{Coim}(0\rightarrow X)\cong 0 }が成り立つ。
  • { \mathrm{Im}(X\rightarrow 0)\cong 0 }が成り立つ。
  • { \mathrm{Cok}(0\rightarrow X)\cong X }が成り立つ。
  • { \mathrm{Ker}(X\rightarrow 0)\cong X }が成り立つ。
  • { \mathrm{Im}(0\rightarrow X)\cong 0 }が成り立つ。
  • { \mathrm{Coim}(X\rightarrow 0)\cong 0 }が成り立つ。

(証明)偶数番目は奇数番目の双対圏における主張であるから、奇数番目のみ示せば良い。まず{ 0\rightarrow X }がモノであることは、射の唯一性より従う。便宜上{ 0\xrightarrow{f}X }と名前を付けると、図式を可換にする{ A\xrightarrow{g}X, A\xrightarrow{0}Y }に対し、{ 0\rightarrow X }モノであることから{ g=0 }が従う。故に核は{ 0 }と同型になる。ここまでの双対命題を示しておけば、

{ \mathrm{Coim}(0\rightarrow X):=\mathrm{Cok}(\mathrm{Ker}(f)\rightarrow 0)\cong\mathrm{Cok}(0\rightarrow 0)\cong 0 }

より{ f }の余像もゼロとなる。余核に対しては{ \mathrm{id}:X\rightarrow X }が普遍性を満たすことは直ぐに分かる。像については{ \mathrm{id} }がイソつまりモノであることから{ \mathrm{Im}(f):=\mathrm{Ker}(\mathrm{id})\cong 0 }が最初と同様に従う。{ \square }

上によれば、{ 0\rightarrow X, X\rightarrow 0 }の核、余核、像、余像は常に存在することが分かる。ちなみに証明中にも軽く触れたが{ \mathrm{id}:X\rightarrow X }の核、余核、像、余像も常に存在する。纏めると次のようになる。

{ 0\rightarrow X } { X\rightarrow 0 } { \mathrm{id}:X\rightarrow X }
{ 0 } { X } { 0 }
余核 { X } { 0 } { 0 }
{ 0 } { 0 } { X }
余像 { 0 } { 0 } { X }

次にアーベル圏で成り立つ一般論を述べておこう。

命題 { C }はアーベル圏とする。{ f:X\rightarrow Y }に対し以下が成り立つ。

  • 以下は同値となる。

    • { f }がモノである。
    • { \mathrm{Ker}(f)\cong 0 }が成り立つ。
  • 以下は同値となる。

    • { f }がエピである。
    • { \mathrm{Cok}(f)\cong 0 }が成り立つ。

更に{ f }がバイ(モノかつエピ)ならイソである。

(証明)核がゼロとなることは、先の命題と同様に示せる。実際{ g:A\rightarrow X, 0:A\rightarrow Y }が図式を可換とするとき{ g=0 }が従うので{ 0 }が普遍性を満たす。

{ \mathrm{Ker}(f)\cong 0 }とする。{ g, h:A\rightarrow X }{ f\circ g=f\circ h }を満たすとする。このとき{ (g-h):A\rightarrow X }を考えれば、これは{ 0:A\rightarrow Y }と図式を可換にするので核を経由する。故に{ g-h=0 }が従う。つまり{ f }はモノとなる。

エピの場合も同様である。最後に{ f }をバイとすると、{ \mathrm{Coim}(f)=\mathrm{Cok}(0\rightarrow X)\cong X }かつ{ \mathrm{Im}(f)=\mathrm{Ker}(Y\rightarrow 0)\cong Y }であるから、アーベル圏の定義より自然な射はイソになる。自然な射とは{ f }そのものであるから{ f }はイソとなる。{ \square }

{ C }はアーベル圏とする。{ f:X\rightarrow Y }に対し以下が成り立つ。

  • 以下は同値となる。

    • { f }はモノである。
    • { 0\rightarrow X\xrightarrow{f}Y }は完全である。
  • 以下は同値となる。

    • { f }はエピである。
    • { X\xrightarrow{f}Y\rightarrow 0 }は完全である。

TODO

Unityで数値計算ライブラリMath.NET Numericsを使う方法

Math.NETとは行列計算とかできるライブラリらしい。ゲームエンジンであるUnity上で使う用途はあまりないかもしれないが、Win8.1環境で導入できたので手順を以下にメモしとく。

まずNuGetのページでnupackファイルをダウンロードする。

Unityは.NETFrameworkのバージョンが3.5らしいので、Task Parallel Libraryもついでにダウンロードする。

nupackファイルはただのzipファイルらしいので展開する。MathNetはlib/net35に、TaskParallelはlibにあるdllをUnityのAssetsにドラッグ&ドロップする。

二つのdllのInspectorのPlatform settingsをx86_x64, winにする。

スクリプト上では

using MathNet.Numerics;

などを加えて、あとは公式サンプルなど自由にどうぞ。

もっともUnityの関数とは互換性がないので、そこを埋めるには適当に自作する必要はある。

var A = Matrix<double>.Build.DenseOfArray(new double[,]
{
   { 3, 2, -1 },
   { 2, -2, 4 },
   { -1, 0.5, -1 }
});
var b = Vector<double>.Build.Dense(new double[] { 1, -2, 0 });
var x = A.Solve(b);

Vector3 t;

t.x = (float)(x.ToArray())[0];
t.y = (float)(x.ToArray())[1];
t.z = (float)(x.ToArray())[2];

Debug.Log( t ); // (1.0, -2.0, -2.0)

他のdllとかも同じように使えそうね。