メモ: 群のコホモロジー

メモ: ヒルベルトの定理90の続き
数式の一部が表示されないときがある?ので分割した
目次

5. 群のコホモロジー その2

群のコホモロジーを前節とは違う形で導入してみる。
単体的複体のホモロジーを雛形にして考えるので、まず補足として単体的複体について。

補足:

5-1. 補足1: 単体的複体のホモロジー

まず単体と単体的複体の説明。
単体というのは、0次元単体は点、1次元単体は線分、2次元単体は(中身の詰まった)三角形、3次元単体は(中身の詰まった)四面体で、n次元単体はn+1個の点を互いに結んで内部を埋めて作ったn次元の立体。
単体的複体とは、複数の単体を適切に張り合わせて作った立体のことをいう。ただし全部がつながっていなくて複数の物体になっていてもかまわない(ここで「適切な張り合わせ」というのは、張り合わせる点と点 or 線分と線分 or 三角形と三角形……がちょうど一致していてズレていないような張り合わせ方のこと。正確な説明は略)。あるいは張り合わせとは逆に、対象とする物体をちょうどCGモデルのように複数の単体(点、線分、三角形、四面体……)に分割近似したものが単体的複体だと考えることもできる。
で、ホモロジーを考えるには「輪っか」とか「閉曲面」とか「縁」を扱う必要があるので、単体の縁(境界)を取り出す演算を定義する。
それに都合のいいように、単体に「向き」を入れて考える。単体の頂点のうち2つの順番を入れ替えると単体の向きが逆転するとみなす。
例えば二点a,bを結ぶ1次元単体(線分)[a,b][b,a]とは互いに逆向きになる。この関係を[b,a]=-[a,b]とか[a,b]=-[b,a]と書く。線分の向きを電流や水流の流れる向きだと思えば

[b,a]bからaに向かって流量1が流れる」=  - [a,b]aからbに向かって流量-1が流れる」
ということになる。[b,a]=-[a,b]を移項すれば[a,b] + [b,a]=0となり、これは逆向きの電流が重なり相殺していると思える。
このように単体に向きを入れて考えると、境界が扱いやすくなる。
1次元単体(線分)の境界(点)は次のように考える。
1次元単体(線分)[v_0,v_1]の境界は0次元単体(点)[v_0][v_1]だけど、点に向き(?)を入れて-[v_0][v_1][v_0,v_1]の境界であると考え、その2点をまとめて[v_1]-[v_0]のように書く。水流のイメージでいうと、v_0 \to v_1の水の流れの出口であふれ出しているのを[v_1]と書き、入り口で吸い込んでいるのを-[v_0]と書く感じ。
1次元の図形からその境界を得る演算子\partial_1 と書くことにすると、
 \partial_1 [v_0, v_1 ]  = [v_1 ] - [v_0 ]
と書くことができる。
このように向きを入れて考えると、単体的複体(単体の集まり)の境界も自然に扱える。
例えばa \to b \to c \to d \to eを結ぶ折れ線を、向きも込めて
[a,b] + [b,c] + [c,d] + [d,e]
と書くことにすると、その境界は、向きが逆のもの同士を合わせると相殺されると考えて計算すると
 \begin{eqnarray} \partial_1 \left( [a,b] + [b,c] + [c,d] + [d,e]  \right) & = & \left( [b] - [a ] \right) + \left( [c ] - [b ] \right) +  \left( [d ] - [c ] \right) +  \left( [e ] - [d ] \right) \\ & = & [e ] - [a ] \end{eqnarray}
となり、aeが端点であるという直感と一致する結果が得られる。
ここで何の説明もなしに単体の足し算引き算を持ち出したので、もう少し詳しく考える。
上の例では異なる単体の和[a,b ] + \cdots + [d,e]を考えたけど、同じ単体同士の和も認めることにする。つまり
[a,b]+[a,b] = 2[a,b]
のようなものも考える。これは電流の比喩でいうと、大きさ2の電流が a \to bに流れていることを表していると見ることができる。
あるいは3[a,b]-5[c,d]というものがあれば、これは大きさ3の電流がa \to bに流れていて大きさ-5の電流がc \to dに流れている(大きさ5の電流がd \to cに流れている)ことを表す。
より一般的には、考えている図形Xに含まれる1次元単体(線分)をs_1,s_2,\ldots,s_mがだとすれば、それぞれについての重み(流れている電流の大きさ)をa_1,a_2,\ldots,a_m \in \mathbb{Z}として
 a_1 s_1 + \cdots + a_m s_m
となるものを考える(各単体に番号を入れて固定すれば(a_1,\ldots,a_m)のように書くこともできる)。このようなものを1次元の鎖(チェーン)と呼び、それらからなる集合をC_1(X)と書く。つまり
 C_1(X) = \{ a_1 s_1 + \cdots + a_m s_m |\; a_1,a_2,\ldots,a_m \in \mathbb{Z} \}
となる。こうすれば自由に足し算引き算を考えることができて代数的に扱いやすくなる。C_1(X)の各要素は可能な電流の流し方を表していて、その足し算は電流を重ね合わせることだと考えることができる(ただし「電流」とか「流れ」というのはあくまで1次元の場合に使える比喩で、実際には単体のそれぞれに重みとなる数を与えている以上の意味はない)。
ここまで1次元の場合だけを考えてきたけれど、2次元以上の場合についても同様に向きを入れて考える。

三点a,b,cを頂点とするふたつの2次元単体(三角形)[v_0,v_1,v_2][w_0,w_1,w_2]の向きが同じか逆かは、3つの頂点を[1,2,3]の順に回ったときに回る方向が同じになるか逆になるかで決める。
すると[a,b,c][b,c,a][c,a,b]は互いに同じ向き、それらと逆向きになるのが[a,c,b][c,b,a][b,a,c]となる。よって

[a,b,c] = [b,c,a] = [c,a,b] = - [a,c,b] = - [c,b,a] = - [b,a,c]
となる。

3次元単体(四面体)になると向きが何を表しているのかよく判らなくなるけれど、頂点の2点の順番を入れ替えると向きが逆になると考える。例えば[a,b,c,d] = -[b,a,c,d] = [b,c,a,d]のような関係になる。
1次元のときと同様に、n次元の単体を重み付きで足し合わしたものをn次元の鎖(チェーン)と呼んで、その集合をC_n(X)と書く。
境界についても、1次元のときと同様、張り合わせたときにうまく相殺されるように定義する。
2次元単体(三角形)[v_0,v_1,v_2]の境界は、頂点をv_0,v_1,v_2の順に回って、[v_0,v_1]+[v_1,v_2]+[v_2,v_0]とする。これは並べ替えると[v_1,v_2]-[v_0,v_2]+[v_0,v_1]になる。
3次元単体(四面体)[v_0,v_1,v_2,v_3]の境界はだいぶ想像しにくくなるけれど、四面体の展開図を作って各三角形の向き(頂点を回る方向)を同じに取って、[v_0,v_2,v_1]+ [v_0,v_3,v_2]+ [v_0,v_1,v_3] + [v_1,v_2,v_3] とする。これは
[v_1,v_2,v_3]- [v_0,v_2,v_3]+ [v_0,v_1,v_3] - [v_0,v_1,v_2] と等しい。
n次元単体の境界を取る演算子\partial_nと書けば、ここまでの結果は

\begin{eqnarray} \partial_1 [v_0,v_1] & = & [v_0]-[v_1] \\ \partial_2[v_0,v_1,v_2] & = & [v_1,v_2]-[v_0,v_2]+[v_0,v_1] \\ \partial_3 [v_0,v_1,v_2,v_3 ] & = & [v_1,v_2,v_3]- [v_0,v_2,v_3]+ [v_0,v_1,v_3] - [v_0,v_1,v_2] \end{eqnarray}
と書ける。より一般にn次元の境界演算子\partial_n
\partial_n [v_0,v_1,\ldots,v_n] = \sum_{k=0}^{n}(-1)^{k} [v_0,\ldots,\hat{v_k},\ldots,v_n]
と定義される。ここで [v_0,\ldots,\hat{v_k},\ldots,v_n]というのは [v_0,\ldots,v_k,\ldots, v_n]からv_kを除いたものを表すとする。

こうして「境界」が定義できたので、これを使って「輪っか」(閉曲線)を定義することができる。
曲線が輪っかになっているというのはどういうことかというと、その曲線のどこにも端になる点が存在しないことだと説明できる。すでに端点をとる演算子\partial_1は定義したのでそれを使えば、輪っかというのは\partial_1を適用したとき0になる曲線のことだと説明できる。
さらに曲線(折れ線)だけでなく、鎖についても\partial_1をとって0になるものを輪っかだと考えることにする。これは電流の比喩でいえば、各点でキルヒホッフの法則が成り立つような電流の流し方に対応する。これらは1次元の「輪体」「サイクル」と呼ばれ、その集合はZ_1(X)と書かれ

Z_1(X) = \ker \partial_1 = \; \{c \in C_1(X) | \; \partial_1 c = 0 \}
となる(なぜZを使うのかはよく判らない。サイクルのCはチェーンで使ったので、たいした意味は無しに別の文字を選んだのかもしれない)。(追記: コメントによると Zyklus(独) = サイクル から来ているとのこと。なるほど)。

ホモロジーではこの輪っかがどれくらいあるかを見ることで図形のつながり方を測る。ただこのZ_1(X)には重要でない輪っかがたくさん含まれている。
例えば、2次元単体(三角形) [a,b,c]の境界は[a,b] + [b,c] + [c,a]となるのだった。この[a,b] + [b,c] + [c,a]に対して\partial_1を適用すると、

 \partial_1 \left([a,b] + [b,c] + [c,a] \right) = 0
となる。つまり2次元単体の周囲の境界線は輪っかになる。さらに鎖(チェーン)は単体の和なので2次元鎖c \in C_2(X)の境界\partial_2 (c)はつねに輪っかになる(これは1次元のときに限らずなりたつ。それは
 \partial_{k} \circ \partial_{k+1} = 0
が成り立つので。つまりk+1次元の物体の境界を取るとk次元の輪っか(1次なら閉曲線、2次なら閉曲面)になる)。単体の境界が輪っかになるので、単体分割を細かくすればするほどたくさんの種類の輪っかが得られることになる。
しかし図形のつながり方を調べる上で知りたいのは「穴」の回りを回るような輪っかであって、境界として得られるような輪っかは図形のつながり方を見るのには役に立たない。
そこで2次元の鎖の境界になるような輪っかは全てキャンセルして0と同じだとみなしてしまう(代数的にいえば剰余類をとる)。2次元鎖の境界になるようなものを1次元の「境界輪体」「バウンダリーサイクル」と呼んでその集合をB_1(X)と書く。
 \begin{eqnarray} B_1(X) = {\rm im}\partial_2 & = & \{z \in C_1(X) | \; \exists c \in C_2(X) , \, \partial_2 c = z \}  \\ & = & \{z \in Z_1(X) | \; \exists c \in C_2(X) , \, \partial_2 c = z \}\end{eqnarray}
そして輪っかの集合Z_1(X)のうち、境界となっているような輪っかB_1(X)を0とみなすことによって1次元ホモロジー
 H_1(X) = Z_1(X) / B_1(X)
が定義される。
ここまで1次元について説明したけれど、各次元について同様にしてホモロジー群が定義される。
 0 \leftarrow C_0(X) \mathop\leftarrow\limits^{\partial_1} C_1(X) \mathop\leftarrow\limits^{\partial_2}  \cdots \mathop\leftarrow\limits^{\partial_{n-1}} C_{n-1}(X)\mathop\leftarrow\limits^{\partial_n} C_n(X) \leftarrow 0 \\ \partial_k \circ \partial_{k+1} = 0
 Z_k(X) = \ker \partial_k = \{ c \in C_k(X) | \; \partial_k c = 0 \} \\ B_k(X) = {\rm im} \partial_{k+1} = \{ z \in C_k(X) | \; \exists c \in C_{k+1}(X) , \, \partial_{k+1} c = z \} \\ H_k(X) = Z_k(X) / B_k(X)

5-2. 補足2: 単体的複体のコホモロジー

図形を調べる方法のひとつに、その図形上にどんな関数が定義されるかを調べるという考え方がある。
ここでは、k次元の鎖c \in C_k(X)を入力して整数f(c)を出力する関数f : \, C_k(X) \to \mathbb{Z}を考える。ただしfは線形性

 f(n_1 c_1 + n_2 c_2) = n_1 f(c_1) + n_2 f(c_2)
を満たすものだけを考え、このような関数全体をC^{k}(X)と書く。
C^{k}(X) = {\rm Hom}\left(C_k(X), \, \mathbb{Z} \right)
鎖を入力とする関数というと想像しにくいけれど、線形性に注目するといくらか判りやすくなる。
k次元単体全部を並べるとs_1,\ldots, s_mだったとすると、k次元の鎖は
 a_1 s_1 + \cdots + a_m s_m \quad( a_1,a_2,\ldots,a_m \in \mathbb{Z})
の形になり、fの線形性から
 f ( a_1 s_1 + \cdots + a_m s_m ) = a_1 f(s_1) + \cdots + a_m f(s_m)
となる。したがって各k単体s_1,\ldots, s_mについて
\begin{eqnarray} f(s_1) & = & f_1  \\ f(s_2)  & = & f_2 \\ \vdots \\f(s_m) & = & f_m \end{eqnarray}
を決めれば、fの値は確定する。
(a_1,\ldots, a_m )を決めれば鎖a_1 s_1 + \cdots + a_m s_m \in C_k(X)が決まるように、値(f_1,\ldots, f_m )を決めれば関数f \in C^{k}(X)が決まってしまう。どちらも各単体に重み付けをしていると考えれば、鎖c \in C_k(X)と関数f \in C^k(X)は似ている。C^k(X)は双対鎖(コチェーン)と呼ばれる。
C^{k}(X)に含まれる関数のうち、さらに次のような関数に注目する(1次元の場合を考える)。

どの2次元単体 [a,b,c]についても、
f \left( \partial_2 [a,b,c ] \right) = 0 、つまりf\left([a,b] + [b,c] + [c,a] \right) = 0
となる。
これはfの線形性からf \circ \partial_2 = 0あるいは\forall c \in B_1(X) , \, f(c) = 0と言い換えることができる。これをさらに「内部に穴のない2次元領域(=単連結領域)の境界となる閉曲線cに対してはf(c)=0となる」と言い換えると、コーシーの積分定理との類似や積分(微分形式)との関連が見え、それを追求していくとド・ラームコホモロジーにいたる(追記:cf.メモ:積分と微分形式)。

この性質を満たす関数全体をZ^{1}(X)で表す。

Z^{1}(X) = \{f \in C^{1}(X) | \, f \circ \partial_2 = 0 \}
ここで演算子\delta_k : \, C^{k} \to C^{k+1}\delta_k(f) = f \circ \partial_{k+1}のように定義してやると、
Z^{1}(X) = \{f \in C^{1}(X) | \, \delta_1(f)  = 0 \}
となりホモロジーに出てきた1次元サイクルの集合
Z_1(X) = \{c \in C_1(X) | \; \partial_1( c) = 0 \}
と対応した形になる。
関数f \in Z^{1}(X)は穴のない領域を回る輪っかに対しては値が0になる。ということはそうでない輪っかがあればそれについては0以外になってもよい。そしてZ^{1}(X)に含まれる関数がどれくらいたくさんあるかを見ることで図形のつながり方を測ることができる。
しかしホモロジーのときと同様に、Z^{1}(X)には図形の形を見る上で役に立たない余計な関数が含まれている。それはどのような関数かというと、境界となる輪っかz \in B_1(X)だけでなくどんな輪っかz \in Z_1(X)に対してもf(z)=0となってしまう関数。こうした関数がどれだけあっても図形のつながり方は反映されていない。
このような関数は、曲線lを入力したときの値f(l)が曲線の経路とは無関係に曲線の両端だけで決まってしまうような関数、と言い換えることができる。
なぜなら、どんな輪っかzについてもf(z)=0となるなら、点aから点bへ向かうふたつの経路l_1l_2を取ると、l_1 - l_2は輪っかなのでf(l_1) - f(l_2) = f(l_1 - l_2) = 0となり、f(l_1)=f(l_2)となる。つまり両端の点が同じなら経路と関係なくf(l)の値はひとつに決まる。逆に関数の値が曲線の両端だけで決まるなら、閉曲線は出発点と到着点が同じである曲線なので、輪っかを入力すると必ず0にならないといけない。
任意の曲線lについてf(l)の値が両端だけで決まるようにするには、0次元単体を入力する関数F \in C^{0}(X)があって、任意の1次元単体(線分)[a,b]についてf \left([a,b] \right) = F([b]) - F([a])となっていればいい。
このとき点aから点zへ向かう曲線lに対するf(l)の値は、f\left([a,b] + [b,c] + \cdots + [y,z] \right) = F([z]) - F([a])となり端点だけで決まる。
さらに「任意の[a,b]について、f([a,b] = F([b]) - F([a])となる」というのは
「任意のc \in C_1(X)についてf(c) = F(\partial_1(c))となる」と言い換えられ、さらに「あるFf = F \circ \partial_1」あるいは同じことだけど「あるF\delta_0(F)=f」と言い換えられる。この性質を満たす関数全体をB^{1}(X)で表すと、
B^{1}(X) = {\rm im} \delta_0 = \{f \in C^1(X) | \; \exists F \in C^{0} , \, \delta_0( F) = f \}
と書け、ホモロジーにおける
  B_1(X)  = {\rm im} \partial_{2} =  \{z \in C_1(X) | \; \exists c \in C_2(X) , \, \partial_2 (c) = z \}
と対応する。
そしてZ^{1}(X)B^{1}(X)を使って1次元コホモロジーH^{1}(X) = Z^{1}(X) / B^{1}(X)が定義される。
1次元以外の各次元についても同様に定義される。
 0 \to C^0(X) \mathop\to\limits^{\delta_0} C^1(X) \mathop\to\limits^{\delta_1}  \cdots \mathop\to\limits^{\delta_{n-2}} C^{n-1}(X)\mathop\to\limits^{\delta_{n-1}} C^n(X) \to 0 \\ \delta_{k} \circ \delta_{k-1} = 0 \\ Z^{k}(X) = \ker \delta_k = \{f \in C^{k}(X) | \; \delta_k(f)  = 0 \} \\ B^k(X) = {\rm im} \delta_{k-1} = \{ f \in C^k(X) | \; \exists F \in C^{k-1}(X) , \, \delta_{k-1}(F) = f \} \\ H^k(X) = Z^k(X) / B^k(X)
比較のためにホモロジーの場合を並べておく。
 0 \leftarrow C_0(X) \mathop\leftarrow\limits^{\partial_1} C_1(X) \mathop\leftarrow\limits^{\partial_2}  \cdots \mathop\leftarrow\limits^{\partial_{n-1}} C_{n-1}(X)\mathop\leftarrow\limits^{\partial_n} C_n(X) \leftarrow 0 \\ \partial_k \circ \partial_{k+1} = 0
 Z_k(X) = \ker \partial_{k} = \{ c \in C_k(X) | \; \partial_k c = 0 \} \\ B_k(X) = {\rm im} \partial_{k+1} = \{ z \in C_k(X) | \; \exists c \in C_{k+1}(X) , \, \partial_{k+1} c = z \} \\ H_k(X) = Z_k(X) / B_k(X)

5-3. 群のコモホロジーを定義する

群は図形ではないけれど、ホモロジーコホモロジーの手続きを流用して、群の特徴を反映した何らかの量を手に入れたい。
単体的複体のホモロジーでは、点(0次元単体)、線分(1次元単体)、三角形(2次元単体)、四面体(3次元単体)、……から鎖(チェーン)を定義して、そこからホモロジーを定義した。点は[a]、線分は[a,b]、三角形は[a,b,c]、四面体は[a,b,c,d]のような形をしていた。
そこで、群Gの要素\sigma \in Gを点、(\sigma_0,\sigma_1 ) \in G \times Gを線分、(\sigma_0,\sigma_1,\sigma_2 ) \in G \times G \times Gを三角形、……のようなものだと考えてみる。
ただし単体的複体の場合とは異なり、(\sigma_0,\ldots, \sigma_n)の「頂点」のなかに重複するものがあってもよいとする。また「頂点」の順番を入れ替えたものは互いに関係のない別のものと考える。つまり(a,b)(b,a)とは互いに無関係なものと考え、(a,b) = - (b,a)とはならない。

G = \{ \sigma_1,\sigma_2,\ldots,\sigma_n \}とすると、各次元の鎖C_k(G)

 \begin{eqnarray} C_0(G) = \mathbb{Z}[G] &=& \{ a_1 \sigma_1 + a_2 \sigma_2 + \cdots + a_n \sigma_n  | \; a_1,\ldots,a_n \in \mathbb{Z} \} \\ C_1(G) = \mathbb{Z}[G^2] &= &  \{ a_{11} ( \sigma_1, \sigma_1 ) +  a_{12} ( \sigma_1, \sigma_2 ) + \cdots + a_{nn} ( \sigma_n, \sigma_n ) | \; a_{11},\ldots , a_{nn} \in \mathbb{Z} \} \\ & \vdots  & \\  C_k(G)  =\mathbb{Z}[G^{k+1}] & = & \left\{ \sum_{l_0,\ldots,l_{k}} a_{l_0\cdots l_{k}} \left(\sigma_{l_0},\ldots, \sigma_{l_{k}} \right) \middle| \; a_{l_0\cdots l_{k}} \in \mathbb{Z} \right\} \end{eqnarray}
と定義される。境界演算子も単体的複体のものを流用して

 0 \leftarrow C_0(X) \mathop\leftarrow\limits^{\partial_1} C_1(X) \mathop\leftarrow\limits^{\partial_2}  \cdots \mathop\leftarrow\limits^{\partial_{k-1}} C_{k-1}(X)\mathop\leftarrow\limits^{\partial_k} C_k(X) \mathop\leftarrow\limits^{\partial_{k+1}} \cdots \\ \partial_k \left( \sigma_0,\sigma_1,\ldots, \sigma_k \right) = \sum_{l=0}^{k}(-1)^{l}  ( \sigma_0,\ldots,\hat{\sigma_l},\ldots,\sigma_k )
とすれば、ここからホモロジー群がとりあえず定義できる。
しかしこのようにして定義されたホモロジー群はk \geq 1のときGに関係なく必ずH_k = 0になってしまって、役に立つ量が出てこない。
またC^{k}(G) = {\rm Hom}\left(C_k(G), \, \mathbb{Z} \right)として\delta_kを単体的複体の場合と同様に定義すればコホモロジー群が得られるけれど、こちらもやはり有用な量はでてこない。
これは図形的に考えれば、鎖C_k(G)は任意の2点を線分(1次元単体)で結び、任意の3点を三角形(2次元単体)で結び、任意の4点を四面体(3次元単体)で結び……という作業を全ての点の組合せに行っているので、いわば穴の全くない物体を作ったことになり、そのためホモロジー群がH_k = 0となってしまったと考えられる。
しかしここでの定義には、もっと大きな欠点がある。
今おこなったホモロジーコホモロジーの定義では、群の演算がまったく何の役にも立っていない。群の要素数が同じなら、同じC_k(G),C^k(G)が得られてしまう。これでは群の性質を反映した量が得られるはずがない。
これは次のようにして修正される。
まずC^{k}(G) = {\rm Hom}(\mathbb{Z}(G^{k+1}), \, \mathbb{Z} )のうち後ろの\mathbb{Z}を任意の加群Mに置き換え、 {\rm Hom}(\mathbb{Z}(G^{k+1}), \, M )を考える。ただしこの加群Mには群Gが作用しているとする。つまり群の要素\sigma \in GMの要素x \in Mについて、変換\sigma(x) \in Mが(群の演算と合う形で)定義されているとする。
例えばG={\rm Gal}(L/K)に対してM=Lとすれば、GMに作用している。
ここで
 \mathbb{Z}[G^{k+1}]  =  \left\{ \sum_{l_0,\ldots,l_{k}} a_{l_0\cdots l_{k}} \left(\sigma_{l_0},\ldots, \sigma_{l_{k}} \right) \middle| \; a_{l_0\cdots l_{k}} \in \mathbb{Z} \right\}
について考えると、群の要素\sigma \in Gと各\left(\sigma_{l_0},\ldots, \sigma_{l_{k}} \right)について
 \sigma (\sigma_{l_0},\ldots, \sigma_{l_{k}} ) =(\sigma \sigma_{l_0},\ldots, \sigma \sigma_{l_{k}} )
になることにすれば、G \mathbb{Z}[G^{k+1}]Gに対する作用が定義できる。
こうして \mathbb{Z}[G^{k+1}]Mの両方についてGが作用していることになった。
すると線型写像スカラー倍を保存するf(kx)=k f(x)ということの類似で、関数f \in {\rm Hom}(\mathbb{Z}(G^{k+1}), \, M )のうち、Gの作用を保存する写像、つまり各\sigma \in Gについてf(\sigma x) = \sigma f(x)となる写像というのを考えられる。このような写像G線形写像とかG凖同型写像と呼ぶことにして、その集合を
 {\rm Hom}^{G}(\mathbb{Z}(G^{k+1}), \, M )
と書くことにする。
これは「各関数がGの作用を保存する」という形で群の演算の影響を受けたものになっていて、群の演算が無関係だった欠点を補ったものになっているので、
C^k(X) = {\rm Hom}^{G}(\mathbb{Z}(G^{k+1}), \, M )
とする。
\delta_kは前と同じように\delta_k(f) = f \circ \partial_{k+1}とすれば\delta_{k} \circ \delta_{k-1}=0となる。
 0 \to C^0(X) \mathop\to\limits^{\delta_0} C^1(X) \mathop\to\limits^{\delta_1}  \cdots \mathop\to\limits^{\delta_{k-2}} C^{k-1}(X)\mathop\to\limits^{\delta_{k-1}} C^k(X) \mathop\to\limits^{\delta_{k}} \cdots
この系列からコホモロジーH^{k}(G,M)を定義すれば、群の性質を反映したものが出てくる(ただしMの選び方によってはH^{k}(G,M)=0となってしまう)。

5-4. 2種類のコホモロジーの関係

こうして群のコホモロジーについて、「メモ:ヒルベルトの定理90」4節の最後に与えたものと5-3節の最後に与えたものの2つのコホモロジーが現れた。
その関係を見るために {\rm Hom}^{G}(\mathbb{Z}(G^{k+1}), \, M )をもう少し調べる。
関数 f \in {\rm Hom}^{G}(\mathbb{Z}(G^{k+1}), \, M )は線形なので、各 (\sigma_{0},\ldots, \sigma_{k} ) \in G^{k+1}に対する値 f (\sigma_{0},\ldots, \sigma_{k} )によって定まる。しかしfはさらにG線形であることより

 f (\sigma_{0},\sigma_{1}, \ldots, \sigma_{k} ) =\sigma_{0} f (1,\sigma_{0}^{-1} \sigma_{1}, \ldots, \sigma_{0}^{-1}  \sigma_{k} )
となるので、f(1,\sigma_{1},\ldots,\sigma_{k})という形のものに対する値だけで決まる。
ただ、この(1,\sigma_{1},\ldots,\sigma_{k})\delta_{k}(f) = f \circ \partial_{k+1}との相性が少し悪い。なぜなら\partial_{k}
\partial_k \left( \sigma_{0},\ldots, \sigma_{k} \right) = \sum_{j=0}^{k}(-1)^{l}  ( \sigma_{0},\ldots,\hat{\sigma_{j}},\ldots,\sigma_{k} )
と定義されているので、(1,\sigma_{1},\ldots,\sigma_{k})\partial_kを適用すると、(\sigma_{1},\ldots,\sigma_{k})という(1,\ldots)の形ではないものが出てくる。これは第一要素をくくり出せば(1,\ldots)の形になるけれどそれがどの(1,\ldots)になるかは群ごとに異なる。そのため、\partial_{k}適用の結果は(1,\ldots)を使って書くと群によって違う形になる。
そこで新たに
[\sigma_1,\sigma_2,\ldots,\sigma_k ] = (1, \, \sigma_1, \, \sigma_1 \sigma_2, \, \sigma_1 \sigma_2 \sigma_3,\, \ldots, \, \sigma_1\cdots \sigma_{k})
という形のものを導入する。この(1, \, \sigma_1, \,  \ldots, \, \sigma_1\cdots \sigma_{k})は各要素を削っても容易にこの形に書き直せる。
(1,\sigma_1,\sigma_2, \ldots,\sigma_k)
(1,\sigma_1,\sigma_2,\ldots,\sigma_k) = [\sigma_1, \,  \sigma_1^{-1} \sigma_2, \, \sigma_2^{-1} \sigma_{3}, \,  \ldots , \, \sigma_{k-1}^{-1} \sigma_{k} ]
と書けるので、[\sigma_1,\sigma_2,\ldots,\sigma_k ]の形の要素についてfの値を決めれば、fが定まる。
この[\sigma_1,\sigma_2,\ldots,\sigma_k ]を使って\delta_k(f)を考える。
 \delta_k(f) \in {\rm Hom}^{G}(\mathbb{Z}(G^{k+2}), \, M )なので、[\sigma_1,\sigma_2,\ldots,\sigma_{k+1} ]について\delta_{k}(f)が判ればよい。定義にしたがって計算していくと
 \begin{eqnarray} \delta_{k}(f)([\sigma_1,\sigma_2,\ldots,\sigma_{k+1} ] ) & = & f (\partial_{k+1} [\sigma_1,\sigma_2,\ldots,\sigma_{k+1} ]) \\ & = & f( \sigma_1 (1, \, \sigma_2, \, \sigma_2 \sigma_3 , \ldots , \, \sigma_2 \cdots \sigma_{k+1})) \\ & & + \sum_{l=1}^{k}(-1)^{l} f( 1, \, \ldots, \hat{\sigma_{1} \cdots \sigma_{l}},\ldots, \sigma_{1} \cdots \sigma_{k} ) \\ & & +(-1)^{k+1} f [\sigma_1,\ldots, \sigma_{k}] \\ & = & \sigma_1( f[\sigma_2,\ldots,\sigma_{k+1} ]) \\ & & + \sum_{l=1}^{k}(-1)^{l} f[ \sigma_1,\sigma_2,\ldots, \sigma_{l} \sigma_{l+1},\ldots, \sigma_{k} ] \\ & & +(-1)^{k+1} f [\sigma_1,\ldots, \sigma_{k}] \end{eqnarray}
となる。この式は形だけ見ると、4節最後での\delta_k(F)の定義と全く同じものになっている。ただ、ここでの\delta_kの型は
 \delta_k : \; {\rm Hom}^{G}(\mathbb{Z}[G^{k+1}], \, M) \to {\rm Hom}^{G}(\mathbb{Z}[G^{k+2}], \, M)
で、一方4節の\delta_kの型は
 \delta_k : \; {\rm Hom}(G^k, \, M) \to  {\rm Hom}(G^{k+1}, \, M)
という違いがある。でも
  \begin{eqnarray} \mathbb{Z}[G^{k+1}] \ni [\sigma_1,\ldots,\sigma_k] & \mapsto & f [ \sigma_1,\ldots,\sigma_k] = a \in M \\ & \Updownarrow & \\ G^{k} \ni (\sigma_1,\ldots,\sigma_k) & \mapsto & F ( \sigma_1 , \ldots,\sigma_k) =a \in M \end{eqnarray}
によって対応関係を与えることができる(fは線形性によって\mathbb{Z}[G^{k+1}]全体に定義が拡張される)。
この対応関係があるので、4節のH^{k}(G,M)と5-3節のH^{k}(G,M)は同じものになることが判る。