代数的トーラスの有理性問題
山崎愛一

目次
1

2

3

4

用語の説明

2

1.1

有理性 (rationality) . . . . . . . . . . . . . . . . . . . . . . . .

2

1.2

コホモロジー . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.3

flabby resolution . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.4

代数的トーラス . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.5

代数的トーラスの有理性 . . . . . . . . . . . . . . . . . . . . .

5GL(n, Z) の有限部分群5

2.1

n ≤ 6 のときの GL(n, Z) の有限部分群の表の整備 . . . . . . .

62.2

直既約分解の一意性の成否 . . . . . . . . . . . . . . . . . . . .

8rank 5 以下の代数的トーラスの有理性問題

93.1

rank 2, 3 のとき (Voskresenskii, Kunyavskii) . . . . . . . . . .

3.2

rank 4, 5 のときの計算プログラム . . . . . . . . . . . . . . . . 10

3.3

flabby resolution の構成 . . . . . . . . . . . . . . . . . . . . . 10

3.4

[MG ]f l の可逆性 . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.5

[MG ]f l = 0 の可能性 . . . . . . . . . . . . . . . . . . . . . . . 11

3.6

[MG ]f l = 0 の証明 . . . . . . . . . . . . . . . . . . . . . . . . 13

3.7

rank = 4, 5 のときの結果 . . . . . . . . . . . . . . . . . . . . 13

必要なソフトのインストール方法

9

14

4.1

linux への GAP 4.4.12 のインストール . . . . . . . . . . . . . 14

4.2

GAP のパッケージのインストール . . . . . . . . . . . . . . . 15

4.3

carat のインストール . . . . . . . . . . . . . . . . . . . . . . . 15

4.4

より新しい環境への carat のインストール . . . . . . . . . . . 16

4.5

caratnumber のインストール . . . . . . . . . . . . . . . . . . . 17

1

1

用語の説明

1.1

有理性 (rationality)

k を体,K を k 上有限個の元で生成される体とする.
定義 1. K が k 上 rational (k-rational) であるとは, K が k 上純超越的なとき, すなわち自然数 n が存在して K が k 上 n 変数有理関数体 k(x1 , . . . , xn )と同型なときを言う. K が k 上 stably rational (stably k-rational) であるとは, K 上超越元 y1 , . . . , ym が存在して K(y1 , . . . , ym ) が k-rational であるときを言う. k が無限体のとき, K が retract k-rational であるとは, K に含まれる k-algebra で(i) K は R の商体,(ii) 多項式 f ∈ k[x1 , . . . , xn ] および k-algebra としての準同型 φ : R →k[x1 , . . . , xn ][1/f ] と ψ : k[x1 , . . . , xn ][1/f ] → R が存在して ψ ◦φ = 1Rを満たす,ときを言う.
この 3 つの rationality の間には “k-rational” ⇒ “stably k-rational” ⇒“retract k-rational” の関係がある.

1.2

コホモロジー

Galois コホモロジーと Tate コホモロジーを定義する. 詳しくはたとえば[Bro82] 参照.
定義 2. G を群,Z[G] を G の整数係数群環, M を Z[G]-加群とする. 負でな
い整数 n に対して, C n (G, M ) を Gn から M への写像全体のなす加法群とする. C n (G, M ) の要素は n-コチェインと呼ばれる. 境界作用素と呼ばれる準同形 dn : C n (G, M ) → C n+1 (G, M ) を次のように定義する.

(dn φ)(g1 , . . . , gn+1 ) =g1 · φ(g2 , . . . , gn+1 )∑n+ i=1 (−1)i φ(g1 , . . . , gi−1 , gi gi+1 , gi+2 , . . . , gn+1 )+(−1)n+1 φ(g1 , . . . , gn ).

()
補題 1. dn+1 ◦ dn = 0 が成り立つ. すなわち C(G, M ), d はコチェイン復体になる.
定義 3. (群コホモロジー) n-コサイクルをZ n (G, M ) = Ker (dn ),2

n-コバウンダリーをB 0 (G, M ) = 0
B n (G, M ) = Im (dn−1 )n ≥ 1,n 次コホモロジーを
H n (G, M ) = Z n (G, M )/B n (G, M )で定義する.
定義 4. (Tate コホモロジー) G を有限群,M を Z[G]-加群とする. トレース
写像 TG : M → M を

TG (m) =∑g · m,

g∈Gn-コサイクルをẐ −1 (G, M ) = Ker (TG )Ẑ 0 (G, M ) = M G = H 0 (G, M )Ẑ n (G, M ) = Z n (G, M )n ≥ 1,

n-コバウンダリーを∑B̂ −1 (G, M ) = g∈G {g · m − m | m ∈ M }B̂ 0 (G, M ) = Im (TG )B̂ n (G, M ) = B n (G, M )n ≥ 1,

n 次 Tate コホモロジーをĤ n (G, M ) = Ẑ n (G, M )/B̂ n (G, M )で定義する.

1.3

flabby resolution

ここでは主に flabby resolution について述べる. 詳しくは [Lo05] 参照.
定義 5. G を有限群とする. Z[G]-加群 M は, Z-加群として有限生成自由加群のとき G-格子 (G-lattice) であるという. G-格子 M は,Z-基底を適当にとれば G の作用が基底の置換を引き起こすようなとき置換格子 (permutation

lattice) であるという. G-格子 M がある置換格子の直和因子になっているとき, 可逆格子 (invertible lattice) であるという. G-格子 M が,G のすべての部
分群 H に対して Ĥ −1 (H, M ) = 0 が成り立つとき, flabby であるという. ここで Ĥ は Tate コホモロジーを表す. G-格子 M が,G のすべての部分群 H に対して H 1 (H, M ) = 0 が成り立つとき, coflabby であるという.

3

定義 6. LG を G-格子全体の集合とする. LG に同値類を次のように定義する. M1 , M2 ∈ LG に対して

M1 ∼ M2 ⇐⇒ 置換格子 Q1 , Q2 が存在して M1 ⊕ Q1 ≃ M2 ⊕ Q2 .
M の属する同値類を [M ] と表すことにする.
LG の二つの要素を直和するという操作を LG 演算とみなすことにより, LGの同値類全体の集合 LG / ∼ に可換モノイドの構造が引き起こされる.
命題 1. 任意の G-格子 M に対して, 次のような完全系列が存在する.

0→M →P →F →0
ただし P は置換格子,F は flabby 格子である. そして,F の同値類 [F ] は完全系列の取り方によらずに決まる.
定義 7. 上の命題の完全系列 0 → M → P → F → 0 を G-格子 M の flabby

resolution という. [F ] ∈ LG / ∼ を M の flabby class といい,[M ]f l で表す.
[M ]f l が可逆とは, 可逆格子 E が存在して [M ]f l = [E] が成り立つときをいう.

1.4

代数的トーラス

代数的トーラスの定義と基本的性質を述べる. 詳しくは [Vos98] 参照.

k を体,k を k の代数的閉包とする.
定義 8. T を k 上定義された代数群とするとき, T が代数的トーラスであるとは自然数 n が存在して T ×k k ≃ k×nが成り立つときをいう. このとき nを代数的トーラス T の rank という.
補題 2. T が k-トーラス (=k 上代数的トーラス) とするとき, k の有限次

Galois 拡大 L が存在して T ×k L ≃ L×n が成り立つ. そのような L の中で最小のものが存在する.
定義 9. k-トーラス T に対して, T ×k L ≃ L×n が成り立つとき T は L で分裂するという. T が分裂する最小の体を最小分裂体という.

L を k の有限次 Galois 拡大とする. L で分裂する代数的トーラス T に対してその指標群 X(T ) = Hom(T, L× ) を考える. T ×k L ≃ L×n により T ×k Lと L×n を同一視すると, Hom(T ×k L, L×n ) は次の vi : L×n → L× で生成される自由 Abel 群である.

vi : L×n ∋ (l1 , . . . , ln ) 7→ li ∈ L× .
加法的に書くと Hom(T ×k L, L×n ) =⊕1≤j≤n Z · uj となる. G = Gal(L/k)

とおくと, X(T ) を G-格子と見なすことができる. 逆に G-格子 M が与えら4

れたとき, L で分裂する代数的トーラス T で X(T ) が G-格子として M と同型になるようなものが存在することが知られている. このようにして, L で分裂する代数的トーラス T と G-格子 M は一対一に対応する.

k の分離閉包を k sep , k の絶対 Galois 群 Gal(k sep /k) を G とおく. このとき rankn の k 上の代数的トーラス T は, 連続準同形 h : G → GL(n, Z) の Z共役類で決まる. このとき h(G) は GL(n, Z) の有限部分群である.

L で分裂する代数的トーラス T に対して T ×k L ≃ L×n により T ×k L とL×n を同一視すると,T ×k L の関数体は次の vi を超越基底とする有理関数体
L(v1 , . . . , vn ) になることがわかる.
vi : L×n ∋ (l1 , . . . , ln ) 7→ li ∈ L× .
σ ∈ G の M への作用を σ(vj ) =∑n

i=1 ai,j vi , ai,j ∈ Z と書くとき, 有理関数

体 L(x1 , . . . , xn ) に σ の作用を

σ(xj ) =n∏axi i,j ,

1≤j≤n

i=1

で入れたものを L(M ) と書くことにする. このとき T の関数体は L(M ) の

G-不変体 L(M )G と同一視される.

1.5

代数的トーラスの有理性

定義 10. 代数的トーラス T が k 上 rational, stably rational, retract rational
であるとは, 対応する L(M ) (1.4 で定義したもの) がそれぞれ rational, stably

rational, retract rational であるときをいう.
代数的トーラスの有理性がいつ成り立つかを問題にする. 遠藤-宮田, Voskre-

senskii, Saltman による次の定理により, 代数的トーラスの有理性は対応する
G-格子 M の flabby class [M ]f l に帰着される.
定理 1. ([EM73, Vos74, Sal84])(EM73) [M ]f l = 0 ⇐⇒ L(M )G は stably k-rational.
(Vos74) [M ]f l = [M ′ ]f l ⇐⇒ L(M )G (x1 , . . . , xm ) ≃ L(M ′ )G (y1 , . . . , yn ).
(Sal84) [M ]f l は可逆 ⇐⇒ L(M )G は retract k-rational.

2

GL(n, Z) の有限部分群
この章から後は, 私と星明考さんとの共著論文 [HY] の結果と計算機によるその具体的な計算例を主に扱う.

5

2.1

n ≤ 6 のときの GL(n, Z) の有限部分群の表の整備

各自然数 n に対して, 共役でない GL(n, Z) の有限部分群は有限個しかな
い. n ≤ 6 のとき, 共役でない GL(n, Q) の有限部分群の個数, 共役でない

GL(n, Z) の有限部分群の個数は次の表の通りである. ([BBNWZ78, PS00] 参
照).

n

1

2

3

4

5

6

GL(n, Q) の有限部分群の個数

2

10

32

227

955

7103

GL(n, Z) の有限部分群の個数

2

13

73

710

6079

85308

.
GL(4, Z) までの有限部分群の共役類については, [BBNWZ78] に完全な分類表が載っていて, 各共役類に番号付けがされている. また, 数式処理ソフ
ト GAP には, 指定した番号の群を呼び出す組み込み関数が用意されている.

MatGroupZClass(n,i,j,k) は番号 (i,j,k,l) に対応する群を返す.
しかし GL(5, Z), GL(6, Z) についてはそういうものが見当たらなかった.
GAP の carat パッケージで一応 GL(6, Z) まで扱えるようにはなっているが,crystcat パッケージで GL(4, Z) の有限部分群を番号で指定するようなこと
は carat パッケージではできない. そこで私は GL(5, Z),GL(6, Z) について

crystcat パッケージでやっているように分類表を整備し, 計算機上で呼び出せるようにした. 私は,carat パッケージ内の carat-2.1b1/tables/qcatalog.tar.gz
を解凍してできる GL(1, Q) から GL(6, Q) までの有限部分群の表を用いて各群の生成元の一覧表を作った. qcatalog.tar.gz 内の qcatalog/data1 から qcat-

alog/data6 までが有限部分群の一覧で, qcatalog/dim1/フォルダから qcatalog/dim6/フォルダの中に各群の生成元等のデータが入っている. 私は perl でスクリプトを書いてそれらの表を整理した. cryst1.gap から cryst6.gap という名前のファイルで, それぞれ GL(1, Q) から GL(6, Q) の有限部分群の一覧
が GAP で読めるリストの形になっている. このファイルは

http://www.math.h.kyoto-u.ac.jp/∼yamasaki/Algorithm/GLnQ.zip からダウンロードできる. これらのファイルを生成したときの perl スクリプトは

http://www.math.h.kyoto-u.ac.jp/∼yamasaki/Algorithm/crystlst.pl
からダウンロードできる. 私が最初にこの作業をしたのが 2007 年 11 月ごろ
で, その当時の carat パッケージ (バージョン 2.1) での GL(6, Q) の一覧表で,同じ群が重複して数えられていたのを見つけた. (現在では修正されている).
次に整数行列からなる有限群 G の GL(n, Q) 共役類から GL(n, Z) 共役類のリストを作る GAP パッケージ carat の関数 ZClassRepsQClass(G) を用
いて, GL(n, Z) の有限部分群の表を作った. cryst1.txt から cryst6.txt という名前のテキストファイルで,http://www.math.h.kyoto-u.ac.jp/∼yamasaki/Algorithm/crystdat.zip

6

からダウンロードできる.

GL(n, Z) の有限部分群が与えられたとき, その群の Q-共役類および Z共役類を [n,m], および [n,m,l] の形で表すことにする. n は行列の次数,m はqcatalog/datan および crystn.gap の m 番目の Q-共役類, l は ZClassRepsQClass(G)の l 番目の Z-共役類を表すものとする. G からその群の Q-共役類および Z共役類を求めるプログラムを作った. gap 版は caratnumber.gap, magma 版
は caratnumber.magma で, どちらもhttp://www.math.h.kyoto-u.ac.jp/∼yamasaki/Algorithm/ からダウンロードできる. GAP 版は ubuntu linux 12.04LTS 上で GAP4.4.12 でプログラムした. (少し修正を加えることで最新の ubuntu linux 16.04LTS 上のGAP4.8 でも動くようである). 生成元の表以外に, 行列の特性多項式の表および −1, 0, 1 次の Tate コホモロジーの表も用いている. そのため,crystdat.zip
も解凍しておく必要がある.
例えば,G が各行各列に 0 でない成分が一つずつあって ±1 であるようなもの全体からなる 6 次の群 (位数 6! × 26 ) の例を示す. gap の場合,

gap> Read("caratnumber.gap");
gap> CaratQClassNumber(G);[ 6, 2773 ]gap> CaratZClassNumber(G);[ 6, 2773, 1 ]magma の場合,
> load"caratnumber.magma";
Loading "caratnumber.magma"
Loading "cryst1.txt"
Loading "cryst2.txt"
Loading "cryst3.txt"
Loading "cryst4.txt"
Loading "cryst5.txt"
Loading "cryst6.txt"
Loading "caratchpol.txt"
Loading "H1cryst.txt"
Loading "carat2crystcat.txt"> CaratQClassNumber(G);[ 6, 2773 ]> CaratZClassNumber(G);[ 6, 2773, 1 ]逆に, 指定された群番号を持つ群を構成するには, caratnumber.gap 又はcaratnumber.magma を読み込んだ状態で, gap ならば
7gap> G:=CaratMatGroupZClass(6,2773,1);
magma ならば
> G:=CaratMatGroupZClass(6,2773,1);とすればよい. どちらも実際に入力するのは

CaratMatGroupZClass(6,2773,1);の部分だけである.

2.2

直既約分解の一意性の成否

定義 11. G を GL(n, Z) の有限部分群とする. 対応する rank n の G-格子 MGを次のように定義する. {u1 , . . . , un } を Z-基底とし, σ = [ai,j ] ∈ G に対して
∑nσ(ui ) = j=1 ai,j uj で σ の作用を定める.
定義 12. M を G-格子とする. M = M1 ⊗ M2 の形に二つの G-格子の直和に書けるとき直可約, そうでないとき直既約であるという. M が Z-加群として M = M1 ⊗ M2 の形に書けて M1 , M2 のうち少なくとも一方が M の部分

G-格子になっているとき可約, そうでないとき既約であるという.
M が既約ならば直既約であるが, 逆は必ずしも成り立たない.
⟨(
)⟩
⟨(
)⟩
1 0
0 1
例 1. GL(2, Z) の位数 2 の二つの部分群 G1 =, G2 =0 −1
1 0を考える. それぞれ群番号 (GAP ID) は (2,2,1,1), (2,2,1,2) である. 二つの群は Q 共役 (すなわち GL(2, Q) の中で共役) だが, Z 共役でない (すなわちGL(2, Z) の中で共役でない). 対応する G1 -格子 MG1 については可約かつ直可約である. しかし G2 -格子 MG2 については, 可約だが直可約ではない.

n ≤ 6 について, MG の直既約分解がどうなっているかを計算機を用いて調べた. G を GL(n, Z) の有限部分群, MG を対応する G-格子とする. n ≤ 4 のときは MG は一意的に直既約分解できる. 一方 n ≥ 5 では MG が二通りに直既約分解できる場合がある.
例 2. GL(5, Z) の有限部分群 G で MG が二通りに直既約分解できるものは全部で 11 個ある. いずれも MG ≃ M1 ⊕M2 ≃ N1 ⊕N2 , rank M1 = 4, rank M2 =1, rank N1 = 3, rank N2 = 2 の形に二通りに直既約分解できる.




0

 1
X= 0
0
0

1
0
0
0
0

0
0
0
−1
0

1
1
1
−1
0

0
0
0
0
1

1

 0

, Y =  0
0
0

0
1
0
0
0

0
0
0
−1
0

0
0
−1
0
0

0
0
0
0
1


.

とおく. 5 次の単位行列を I と書く. このとき 11 個の群は下表の通りである.

8

G

CARAT ID

生成元

S3 × C2 ≃ D6

(5, 188, 4)⟨X 2 , XY, −I⟩

C2 × C6(5, 189, 4)⟨X, −I⟩D6(5, 190, 6)⟨−X, Y ⟩D6(5, 191, 6)⟨−X, XY ⟩D6(5, 192, 6)⟨X, Y ⟩

D6

(5, 193, 4)⟨X, −Y ⟩D6 × C2(5, 205, 6)⟨X, Y, −I⟩

S3(5, 218, 8)⟨X 2 , XY ⟩S3

(5, 219, 8)⟨X 2 , −XY ⟩C6(5, 220, 4)

⟨X⟩

C6

(5, 221, 4)⟨−X⟩

このとき,X, Y の行列の形から MGは rank 4 と rank 
1 の G-格子の直和に分
0

0
0
−1
0
1

0
かれることがわかる. 一方で P = 011P −1 XP = 

0
0
1
0
0

1
0
0
0
0

0
1
0
0
0

0
0
0
0
1

0
0
0
1
0

1
1
1
−1
1

0
1
0
0
1

1
0
0 とおくと,
0
1







−1
, P Y P = 

0
1
0
0
0

1
0
0
0
0

0
0
1
0
0

0
0
0
1
0

0
0
0
0
1





となり,MG は rank 3 と rank 2 の G-格子の直和にも分かれることがわかる.

3

rank 5 以下の代数的トーラスの有理性問題

3.1

rank 2, 3 のとき (Voskresenskii, Kunyavskii)

rank 2 の代数的トーラスは Voskresenskii によってすべて rational である
ことが示された [Vos67].

rank 3 の代数的トーラスの有理性は Kunyavskii によって解かれた [Kun90].
G が下表の 15 個の群のどれかであれば retract rational でないが, それ以外
であれば rational である.

[Kun90] と [HY] では行列の作用を縦に見るか横に見るかが逆になっている
ため G の転置をとる必要がある.

9

t G in [Kun90]

U1
U2
U3
U4
U5
U6
U7
U8
U9
U10
U11
U12
W1
W2
W3

3.2

GAP ID(3, 3, 1, 3)(3, 3, 3, 3)(3, 4, 4, 2)(3, 4, 6, 3)(3, 7, 1, 2)(3, 4, 7, 2)(3, 7, 2, 2)(3, 7, 3, 3)(3, 7, 3, 2)(3, 7, 4, 2)(3, 7, 5, 3)(3, 7, 5, 2)(3, 4, 3, 2)(3, 3, 3, 4)(3, 7, 2, 3)

G
C22
C23
D4
D4
A4
D 4 × C2
A4 × C2S4S4S4S4 × C2
S4 × C2
C4 × C2
C23
A4 × C2

rank 4, 5 のときの計算プログラム

そこで rank 4, 5 の代数的トーラスすべてについて stably rational になるか, retract rational になるかを [M ]f l を調べることにより決定した. そのための GAP のプログラムは gap 版は FlabbyResolution.gap で,http://www.math.h.kyoto-u.ac.jp/∼yamasaki/Algorithm/ からダウンロードできる.

3.3

flabby resolution の構成

G を GL(n, Z) の有限部分群, M = MG を対応する G-格子とする. M のflabby resolution 0 → M → P → F → 0 で rank F がなるべく小さいものを求めたい. 0 → Q → R → M ◦ → 0 を M ◦ = HomZ (M, Z) の coflabby

resolution とする. すなわち R は置換格子で Q は coflabby とする. この完全系列の双対写像 0 → M → HomZ (R, Z) → HomZ (Q, Z) → 0 を取ることにより M の flabby resolution を得る.
そこで M ◦ の coflabby resolution を構成することを考える. P ◦ を置換 Gf

格子, P ◦ −→ M ◦ を G-準同形とする. G の部分群 H に対し,
f |(P ◦ )H(P ◦ )H −−−−−→ (M ◦ )H → 0 は完全系列(1)b 0 (H, P ◦ ) → H
b 0 (H, M ◦ ) は全射になる. Q =が成り立つとする. このとき H
b 1 (H, Q) = 0 が成り立つ. M ◦ の coflabby resolution を得
Ker f とおくと,Hるためには置換 G-格子 P ◦ と G 準同形 f で (1) が G のすべての部分群 H に対して成り立つようなものを構成できれば十分である.

Q = Ker f の rank をなるべく小さくしたいのであるが, そのためにはなるべく小さな rank の置換 G-格子 P ◦ を構成できればよい. いろいろ工夫してP ◦ が小さくなるように GAP 上でプログラムを組んで, flabby resolution が10

計算機上で計算できるようにした.

FlabbyResolution(G) は MG の flabby resolution を返す:
FlabbyResolution(G).actionP は P への G の作用の行列表現を返す;
FlabbyResolution(G).actionF は F への G の作用の行列表現を返す;
FlabbyResolution(G).injection は単射 ι : MG → P の行列表現を返す;
FlabbyResolution(G).surjection は全射 ϕ : P → F の行列表現を返す
returns the matrix which corresponds to the surjection ϕ : P → F .
⟨( 0 1 )⟩例 3. G = −1
≃ C3 のとき, [MG ]f l = 0 であることが以下の計算によ−1
り示される.

Read("FlabbyResolution.gap");
gap> G:=Group([[[0,1],[-1,-1]]]);
Group([ [ [ 0, 1 ], [ -1, -1 ] ] ])gap> FlabbyResolution(G);rec( injection := [ [ 1, 0, -1 ], [ 0, -1, 1 ] ],surjection := [ [ 1 ], [ 1 ], [ 1 ] ],actionP := Group([ [ [ 0, 0, 1 ], [ 1, 0, 0 ], [ 0, 1, 0 ] ] ]),actionF := Group([ [ [ 1 ] ] ]) )gap> FlabbyResolution(G).actionF; # F is trivial of rank 1
Group([ [ [ 1 ] ] ]) )3.4

[MG ]f l の可逆性

[MG ]f l が可逆かどうか決定するのは比較的簡単である.
IsInvertibleF(G) は [MG ]f l が可逆かどうかを返す.
[MG ]f l が可逆でなければ, 対応する代数的トーラスは retract rational ではない.

[MG ]f l が可逆ならば, 対応する代数的トーラスは retract rational である.
このとき [MG ]f l = 0 かどうかによって対応する代数的トーラスが stably

rational かどうかが決まる.

3.5[MG ]f l = 0 の可能性

[MG ]f l が可逆とする. 直既約置換 G-格子の各同型類は G の部分群 H の共
役類と一対一に次のように対応する. H ↔ Z[G/H]. H1 , . . . , Hr を,G の部分群の共役類を, GAP の関数 ConjugacyClassesSubgroups2(G) が返す順番と同じ順番に並べたものとする. (ConjugacyClassesSubgroups2(G) は GAPのバージョンが同じであれば特定の G に対していつも同じ値を返すが, GAP

11

のバージョンが異なれば返す値も異なってくる. [HY] では GAP 4.4.12 で計⊕r算している.). [F ] = 0 とする. xr+1 = ±1 に対して, ( i=1 Z[G/Hi ]⊕xi ) ⊕⊕r⊕yi
F ⊕xr+1 ≃. が成り立つ. ai = xi − yi ,b1 = xr+1 とおくと
i=1 Z[G/Hi ]b1 = ±1,r⊕

Z[G/Hi ]⊕ai ≃ F ⊕(−b1 ) .

(2)

i=1

が成り立つ.
いくつかの不変量を計算することにより, a1 , . . . , ar , b1 の可能性を絞ることができる.

PossibilityOfStablyPermutationF(G) returns a basis は a1 , . . . , ar , b1の値の可能性を返す. L = {l1 , . . . , ls } が返ってきたとき, a1 , . . . , ar , b1 の値
は必ず l1 , . . . , ls の Z 係数一次結合でなければならない.
例 4. rank 4 の代数的トーラスで G の GAP ID が (4,31,1,3) と (4,31,1,4) の場合を計算する. どちらの場合も G の位数は 20 である.

Read("FlabbyResolution.gap");
gap> G:=MatGroupZClass(4,31,1,3);; # G=F20
gap> Rank(FlabbyResolution(G).actionF.1); # F is of rank 16
16gap> IsInvertibleF(G);true
gap> List(ConjugacyClassesSubgroups2(G),x->StructureDescription(Representative(x)));[ "1", "C2", "C4", "C5", "D10", "C5 : C4" ]gap> PossibilityOfStablyPermutationF(G); # checking [M]^{fl}: non-zero[ [ 1, 1, 0, 1, -1, 0, -2 ] ]gap> G:=MatGroupZClass(4,31,1,4);; # G=F20
gap> Rank(FlabbyResolution(G).actionF.1); # F is of rank 16
16gap> IsInvertibleF(G);true
gap> List(ConjugacyClassesSubgroups2(G),x->StructureDescription(Representative(x)));[ "1", "C2", "C4", "C5", "D10", "C5 : C4" ]gap> PossibilityOfStablyPermutationF(G); # checking [M]^{fl}: non-zero[ [ 1, 1, 0, 1, -1, 0, -2 ] ][MG ]f l は可逆だが 0 ではない. 従って代数的トーラスは retract rational だが stably reational ではない. これは rank 3 の Kunyavskii の結果には現れなかった現象である.

12

3.6

[MG ]f l = 0 の証明

具体的に (2) の同型写像を構成できれば [MG ]f l = 0 の証明ができる. しかし G によっては (2) の両辺の rank がかなり大きくなってしまうので, 工夫して計算量を減らす必要がある. rank 5 までの代数的トーラスの中で一番大変だったのは G の CARAT ID が (5,946,4) の場合で, (2) の両辺の rank が 88にもなる.
この場合は GAP での計算だけでは同型写像を構成することはまず不可能
で, C 言語による並列計算 (OpenMP) で計算機を何日間も動かした結果やっと同型写像が得られた. [HY] にはこの同型写像を構成するためのデータが具体的に書いてあるので, それを使えば [MG ]f l = 0 が成り立つことの検算ができる. ただし, そのときの GAP のバージョンは 4.4.12 でなければならない.

(GAP のバージョンが異なれば ConjugacyClassesSubgroups2(G) の値が変わり, 構成すべき同型写像の表現行列の具体的な形も変わってしまうからで
ある).

3.7

rank = 4, 5 のときの結果

T を rank 4 または 5 の代数的トーラスとする. 対応する G-格子 M が直可⊕
約なとき M = M1
M2 と書いたとき, 少なくとも一方は rank が 2 以下である. rank M2 = 2 とすると, [M ]f l = [M1 ]f l が成り立つ. 従って M が直可
約なときはより rank が小さい場合に帰着される. M が直既約の場合が本質的である.

rank 4 の直既約な GL(4, Z) の有限部分群は全部で定理 2. rank 4 の直既約代数的トーラスについて, L(M )G が stably rational
ではないが retract rational になるのは次の 7 つの場合だけである.
GAP ID(4, 31, 1, 3)(4, 31, 1, 4)(4, 31, 2, 2)(4, 31, 4, 2)

GAP ID(4, 31, 5, 2)(4, 31, 7, 2)(4, 33, 2, 1)

G
F20
F20
C2 × F20
S5GS5C2 × S5C3 ⋊ C8

また,L(M )G が retract rational でないものは全部で 152 個ある.
定理 3. rank 5 の直既約代数的トーラスについて, L(M )G が stably rational
ではないが retract rational になるのは存在しない. L(M )G が retract rational
でないものは全部で 1141 個ある.

[HY] には L(M )G が retract rational でないときの G の群番号のリストが載っているが, 量が膨大になるのでここでは省略している.
また FlabbyResolution.gap にはここでは紹介していない関数がたくさんあり, それらも [HY] では解説している.

13

4

必要なソフトのインストール方法

4.1

linux への GAP 4.4.12 のインストール

筆者は ubuntu linux 12.04LTS 上で GAP 4.4.12 をインストールした. ほ
かのバージョンやディストリビューションの linux でも (あるいは Mac OSX
でも) 動く可能性があるが, 筆者は検証していない.

http://www.gap-system.org/Releases/4.4.12.html から必要なファイ
ル gap4r4p12.tar.gz, packages-2012 07 27-09 32 UTC.tar.gz, xtom1r1p4.tar.gz
をダウンロードする. たとえば/home/usr/Downloads のフォルダにダウンロードしたとする.
インストールするフォルダ (たとえば/usr/local/) に移動して gap4r4p12.tar.gz
を解凍する.

tar xvzf /home/usr/Downloads/gap4r4p12.tar.gz
gap4r4 のフォルダが作成され, その下にファイルが展開される. インストー
ルしようとしているフォルダに書き込み権限がなくて解凍が行われないときは最初に sudo をつけてsudo tar xvzf /home/usr/Downloads/gap4r4p12.tar.gzと入力すればよい. パスワードを尋ねられるので入力すれば, 解凍が行われる. 以下でも, 書き込み権限関係のエラーでうまくいかないときは同様に最初に sudo をつければよい.
パッケージを入れるフォルダ gap4r4/pkg に移動してcd gap4r4/pkg
tar xvzf /home/usr/Downloads/packages-2012\_07\_27-09\_32\_UTC.tar.gz
を実行する.

GAP のインストールするフォルダに戻って
tar xvzf /home/usr/Downloads/xtom1r1p4.tar.gz
を実行する.

gap4r4 のフォルダに移動して GAP をコンパイルする. すなわち
cd gap4r4./configure
makeを実行する.

GAP が正しくコンパイルされたならば
bin/gap.sh14

を実行する. で GAP が立ち上がるはずである. カレントフォルダがどこで
あっても

gap
と入力するだけで GAP が立ち上がるように設定する. そのためには bin/gap.shを path の通ったフォルダ (/usr/local/bin など) にコピーすればよい.

cp bin/gap.sh /usr/local/bin/gap

4.2

GAP のパッケージのインストール

GAP のパッケージによってはさらにインストールをしないと使えないものがる. 例えば nq はコンパイルが必要である. カレントフォルダが GAP をインストールしたフォルダにあるとして, nq をコンパイルするには次のようにすればよい.

cd /gap4r4/pkg/nq-2.3./configure
make
ほかのパッケージについても, まず該当するパッケージのフォルダに移動してから README ファイルを読んでそこに書いてある通りにインストール
作業をすればよい.

4.3

carat のインストール

carat のインストールはほかのパッケージと比べて少し複雑な上に, 場合によってはさらに設定を変更する必要があるので解説する.
まず carat のフォルダに移動する. 特に設定を変えていなければ GAP をインストールしたフォルダの中の gap4r4/pkg/carat が carat のフォルダになっているはずである. そして carat-2.1b1.tgz を解凍する.

(carat-2.1b1.tgz を解凍したディレクトリ)/carat-2.1b1 を$(TOPDIR) と表すことにします.
まず$(TOPDIR) に移動してから Makefile を編集する.

cd $(TOPDIR)
gedit Makefile
そして, TOPDIR=.. と書いてある行を TOPDIR=$(TOPDIR) に変更する.
ほかにも例えば CFLAGS を変更したければ該当部分を書き換える. そしてMakefile を保存してエディタを終了する.

15

整数行列からなる有限群 G の GL(n, Q) 共役類から GL(n, Z) 共役類のリストを作る GAP パッケージ carat の関数 ZClassRepsQClass(G) は, このままでは 1000 個以上の GL(n, Z) 共役類に分かれるときに一部分のリストしか返ってこないことになる. rank が 6 以下のときしか扱わないのであればこれで問題ないが, もし 1000 個以上の GL(n, Z) 共役類に分かれるときも扱いた
いのであれば, 1000 をもっと大きな値 (例えば 10000 など) に変更する必要がある.

$(TOPDIR)/funcitons/Graph/lattices.c$(TOPDIR)/functions/Graph/super-k-groups-fcts.c$(TOPDIR)/functions/ZZ/ZZ.cの三つのファイルの中から 1000 という数字を検索してもっと大きな数字に変更すればよい.

$(TOPDIR) に移動した後でmakeと入力すれば必要なファイルがコンパイルされて carat が使える状態になる.
インストールされている多倍長整数計算ライブラリ libgmp.so.3 のバージョンが carat で使用しているものと異なると, 誤動作することがある. そのときは次のようにして libgmp.so.3 を carat で使用しているもので上書きしてし
まえばうまく動くようになる. まず carat の実行ファイルがあるフォルダ (例
えば$(TOPDIR)/bin/x86 64-unknown-linux-gnu-gcc など) に移動する. ldd
コマンドを使って Z equiv がどの libgmp.so.3 を参照しているかを調べる.

ldd Z_equiv
cp コマンドを使って$(TOPDIR)/lib/libgmp.so.3 を, ldd コマンドを使って調べた libgmp.so.3 に上書きする/

cp $(TOPDIR)/lib/libgmp3.so.a ldd コマンドを使って調べた libgmp.so.3
システムアップデートなどで, 上書きしたはずの libgmp.so.3 がまた元に戻っていることがあるので, そのたびごとにこの作業を繰り返しする必要が
ある.

4.4

より新しい環境への carat のインストール

4.3 章では ubuntu linux 12.04LTS に GAP 4.4.12 という環境に carat をイ
ンストールする方法を解説した.
この章では ubuntu linux 16.04LTS や GAP 4.8 といったより新しい環境に

carat をインストールする際の変更点について述べる.
carat-2.1b1.tgz を解凍して Makefile を編集し, 必要に応じて
16

$(TOPDIR)/funcitons/Graph/lattices.c$(TOPDIR)/functions/Graph/super-k-groups-fcts.c$(TOPDIR)/functions/ZZ/ZZ.cの三つのファイルを書き換えるところまでは 4.3 章と同じ.
その次に$(TOPDIR)/functions/Datei/get_symbol.c$(TOPDIR)/functions/Datei/read_symbol.c$(TOPDIR)/functions/Getput/get_bravais.c$(TOPDIR)/functions/Idem/bravais_catalog.c$(TOPDIR)/functions/Tools/itoa.c$(TOPDIR)/include/tools.hの六つのファイルの itoa を itoa10 に置換する.

http://ftp.gnu.org/gnu/gmp/ から適切なバージョンの tar.bz2 ファイルを
ダウンロードして (T OP DIR)/f unctions にコピーする.ubuntu16.04LT S の場合は sudoaptinstalllibgmp − dev で gmp6.1.0 がインストールされるので, gmp − 6.1.0.tar.bz2 をダウンロードして(TOPDIR)/functions にコピーすることになる. 次に,(T OP DIR) の M akef ile で 4.2.1 をすべて(GMP VERSION)に置き換える. gmp-4.2.1.tar.gz を解凍している部分は, tar.bz2 ファイルを解凍するように書き換える. そして, GMP VERSION = 6.1.0 という行を付
け加える.

make
でコンパイルする. GAP 4.5 以降の場合は, 最後に$(TOPDIR)/bin/x86 64-

unknown-linux-gnu-gcc を$(TOPDIR)/bin/x86 64-unknown-linux-gnu-gccdefault64 に書き換える必要がある. GAP 4.4.12 の場合はこの操作は必要ない.
これで 4.3 章みたいにいちいちシステムファイルの libgmp.so.3 を置き換える必要がなくなった.

4.5

caratnumber のインストール

http://www.math.h.kyoto-u.ac.jp/∼yamasaki/Algorithm/ から caratnumber.gap と crystdat.zip をダウンロードする.
自分が GAP のプログラムをよく保存するフォルダ (例えば/home/usr/data/gap/など) に caratnumber.gap をコピーし, crystdat.zip を解凍する.
そのフォルダに移動して GAP を起動して,gap> Read("caratnumber.gap");とすれば caratnumber が使えるようになる.

17

参考文献
[BBNWZ78] H. Brown, R. Bülow, J. Neubüser, H. Wondratschek, H.
Zassenhaus. Crystallographic Groups of Four-Dimensional
Space, John Wiley, New York, 1978.
[Bro82]K. S. Brown, Cohomology of Groups, Grad. Texts in Math.,
vol. 87, Springer-Verlag, 1972.

[Carat]J.

Opgenorth,GAP

4package,W.

Plesken,versionT.

2.1b1,

Schulz,2008,

CARAT,

availableat

http://wwwb.math.rwth-aachen.de/carat/.
[EM73]

S. Endo, T. Miyata, Invariants of finite abelian groups, J.
Math. Soc. Japan 25 (1973) 7–26.

[GAP]

The GAP Group, GAP – Groups, Algorithms, and Programming, Version 4.4.12; 2008. (http://www.gap-system.org).

[HY]

A. Hoshi and A. Yamasaki, Rationality problem for algebraic
tori, to appear in Mem. Amer. Math. Soc., arXiv: 1210.4525.

[Kun90]B. E. Kunyavskii, Three-dimensional algebraic tori, Selecta
Math. Soviet. 9 (1990) 1–21.

[Lo05]

M. Lorenz, Multiplicative invariant theory, Encyclo. Math.
Sci. vol. 135, Springer-Verlag (2005) Berlin.

[PS00]

W. Plesken, T. Schulz, Counting crystallographic groups in low
dimensions, Exp. Math. 9 (2000) 407–411.

[Sal84]

D. J. Saltman, Retract rational fields and cyclic Galois extensions, Israel J. Math. 47 (1984) 165–215.

[Vos67]V. E. Voskresenskii, On two-dimensional algebraic tori II,(Russian) Izv. Akad. Nauk SSSR Ser. Mat. 31 (1967) 711–
716; translation in Math. USSR-Izv. 1 (1967) 691–696.

[Vos74]V. E. Voskresenskii, Stable equivalence of algebraic tori, (Russian) Izv. Akad. Nauk SSSR Ser. Mat. 38 (1974) 3–10; translation in Math. USSR-Izv. 8 (1974) 1–7.

[Vos98]V. E. Voskresenskii, Algebraic groups and their birational invariants, Translated from the Russian manuscript by Boris
Kunyavskii, Translations of Mathematical Monographs, 179.
American Mathematical Society, Providence, RI, 1998.

18