素数導手をもつ実 3 次巡回体の岩澤 λ_{3}-不変量

小松啓一 AND 福田隆

2000 年 1 月 1 日

1. Introduction

1999 年 3 月に早稲田大学で開催された整数論研究集会で、尾崎学氏と山本現氏は素数導手 p をもち 3 が分解する実 3 次巡回体 k の円分岩澤不変量 μ_{3}(k) と λ_{3}(k) が 0 になるための十分条件を p の原始根に関する性質で記述し、 μ_{3}(k) = λ_{3}(k) = 0 となるいくつかの新しい例を示した (cf. [12])。 k の円分 ℤ_{3}-拡大 k_{∞} の n-th layer k_{n} のイデアル類群の 3-part を A_{n} 、 3 の上の素イデアルの積を含む類からなる A_{n} の部分群を D_{n} とする時、 A_{1} = D_{1} となる十分条件を彼らは与えたのだった。十分大きな n に対して D_{1} は k_{n} の中で自明になることが判っているので、このような k に対しては尾崎の定理 (cf. [11]) より μ_{3}(k) = λ_{3}(k) = 0 が導かれる。

さて実 3 次巡回体の ℤ_{3}-拡大に限れば数値計算により A_{1} = D_{1} が成立しているか調べることは易しく、我々は λ_{3}(k) = 0 が判定できていない 10000 以下の p に対し A_{1} ≠ D_{1} となるものを決定した。すなわち p =2269, 3907, 4933, 5527, 6247, 6481, 7219, 7687, 8011, 8677, 9001, 9901 の 12 個である。 2269 と 6481 を除く 10 個の p に対しては p ≡ 0 (mod 9) ≢ 0 (mod 27) であり、我々はこの 10 個に対してアタックを試みた。その結果 p =3907, 4933, 6247, 7687, 8011, 9001, 9901 に対しては Greenberg 予想が成立していることを確かめることができた。我々が用いた方法を解説することが講演者に課された義務なのであるが、詳しい論文 ([2]) を Math. Comp. に投稿中なので数学的な内容はそちらを見て頂くことにして、ここでは普段論文では触れない計算上の工夫を中心に解説しようと思う。

2. Greenberg 予想の判定法

この節では我々が利用した Greenberg 予想の判定法を述べる。 k を総実代数体、 k_{∞} を k の円分 Z_{ℓ}-拡大とし、 k_{∞}/k の n-th layer k_{n} のイデアル類群の ℓ-part を A_{n} 、 G(k_{∞}/k) の作用で不変な A_{n} の部分群を B_{n} 、 ℓ 上の素イデアルの積を含む類からなる A_{n} の部分群を D_{n} で表す。一般には B_{n} と D_{n} の包含関係は判らないが、多くの場合は (それ程強くない条件の下で) D_{n} ⊂ B_{n} が成り立ち、位数は共に単調非減少である。 Greenberg による次の補題は ℓ が k で完全分解する場合の基本的な結果であり、理論的に重要であるばかりでなく λ = 0 の判定法としても有効である。

補題 2.1 (cf. [5]). ℓ が完全分解する実アーベル体 k に対し、次は同値である。 (1) λ_{ℓ}(k) = μ_{ℓ}(k) = 0.

(2) 十分大きな全ての n に対し B_{n} = D_{n} である。

1991 Mathematics Subject Classification. Primary 11R23, 11R27, 11Y40.

Key words and phrases. Iwasawa invariant, cyclotomic unit, cubic field.

k がアーベル体であれば B_{n} の位数は有界であり、その上限は次のようにして決定できる。 k の単数 ε に対し m(ε) を

ℓ^{m(ε)} | ε^{ℓ−1} − 1 in k

が成り立つ最大の整数とし、 k の基本単数系 Ω = {ε_{1}, ε_{2}, …, ε_{r−1} } に対し

m(Ω) = ∑_{i} m(ε_{i})

で m(Ω) を定める。但し r = [k : ℚ] である。すると Ω が k の基本単数系全体を動く時 m(Ω) は最大値を持つことがわかる。それを m(k) と書くと、 n が十分大きい時の B_{n} の位数は m(k) を用いて表すことができる。

補題 2.2 (cf. [7] and [8]). ℓ が完全分解する r 次実アーベル体 k に対し、

|B_{n}| = |A_{0}| ℓ^{m−(r−1)} for n ≥ m − (r − 1) (m = m(k))

が成り立つ。

基本単数系全体を動かすことはできないので、数値計算を行う時は次の補題を使う。

補題 2.3. {v_{1}, v_{2}, ⋯, v_{r}} を k の整数基とし、 Ω = {ε_{1}, ε_{2}, …, ε_{r−1} } を k の独立な単数で全単数群の中で指数が ℓ と素な部分群を生成するものとする。この時、

ε_{i}^{ℓ−1} − 1 = ℓ^{m(ε_{i})} ∑_{j} a_{ij}v_{j}

をみたす有理整数 a_{ij} が存在する。もし行列 (a_{ij}) の modulo ℓ でのランクが r − 1 であれば m(k) = m(Ω) である。

実際に計算してみると、指数が ℓ と素な部分群が構成できれば補題の条件は極く普通にみたされ、簡単に m(k) を決定できることがわかる。

また k が ℚ 上 ℓ 次の巡回拡大の場合には次の補題がある。これは ℓ の k での分解を仮定しなくてもよい。 CM 体のλ_{ℓ}^{−}-不変量に関する有名な木田の公式 (cf. [9]) の実ヴァージョンである。

補題 2.4 (cf. [3]). ℚ の ℓ 次巡回拡大 k に対し次は同値である。

(1) λ_{ℓ}(k) = μ_{ℓ}(k) = 0.

(2) k_{∞}/ℚ_{∞} で分岐し ℓ と素な k_{∞} の任意の素イデアル 𝔭 に対し、 𝔭 を含む類

の位数は ℓ と素である。ここで ℚ_{∞} は ℚ の円分 ℤ_{ℓ}-拡大である。

3. k_{1} における計算

以後 k は素数導手 p をもち 3 が k で完全分解する実 3 次巡回体とする。 p ≡ 1 (mod 3) であり、 k は p から一意的に定まる。 1節で述べた 10 個の p に対しては p ≡ 1 (mod 9), p ≢ 1 (mod 27) であるから p 上の k の素イデアル 𝔭 は k_{1} で 𝔭 = 𝔭_{1}𝔭_{2}𝔭_{3} と分解し 𝔭_{i} は k_{∞} で惰性する。 D′_{1} =< cl(𝔭_{1}), cl(𝔭_{2}), cl(𝔭_{3}) > とおくと、 D_{1} は十分上の k_{n} で消えるから、 D′_{1} ⊂ D_{1} が成立していれば補題2.4よりλ_{3}(k) = 0 がわかる。

さて genus formula より

|D′_{1}| = \frac{9}{(E_{ℚ_{1}} : N_{k_{1}/ℚ_{1}}(E_{k_{1}}))} , |D_{1}| = \frac{9}{(E_{k} : N_{k_{1}/k}(E_{k_{1}}))} (1)

であるから、 k_{1} の単数群 E_{k_{1}} が計算できれば |D′_{1}|, |D_{1}| は判る。実際は指数が 3 と素な E_{k_{1}} の部分群が判れば十分であり、 k_{1} は実 9 次アーベル体だから Hasse の円単数を使えばこれは簡単にできる。上の 10 個の k に対しては |D′_{1}| = |D_{1}| = 3 となっている。従って D′_{1} = D_{1} であることを期待するのは不自然でなく、実際次の補題を用いれば p =3907, 6247, 7687, 8011 に対して D′_{1} = D_{1} であることがわかる。この 4 個の k に対しては λ_{3}(k) = 0 である。

補題 3.1. |D′_{1}| = |D_{1}| = 3 であると仮定し、 𝔩 を 3 の上にある k の素イデアル、 h を k の類数とする。 α を p 上の ℚ_{1} の素イデアルの生成元、 β を 𝔩^{h} の生成元、 E′ を指数が 3 と素な E_{k_{1}} の部分群とすると、 D′_{1} = D_{1} であるための必要十分条件は、 E′/E^{′3} の適当な代表元 ε に対して (αβε)^{1/3} または (αβ^{2}ε)^{1/3} が k_{1} に含まれることである。

E′ を求めるのに最近著しく進歩している数論用のフリーソフトを利用しようと考えるのは自然なことであるが、残念ながら現在の数論パッケージにインプリメントされているアルゴリズムでは太刀打ちできない。これは次の理由による。 k_{1} は判別式 3^{4} の 3 次体 ℚ_{1} と判別式 p^{2} の 3 次体 k の合併であるから、 k_{1} の判別式は 3^{12}p^{6} となる。これは現在知られている汎用アルゴリズムと現在の計算機の能力にとって大きすぎる値なのである。一方円単数を用いれば k_{1} の導手 9p に比例する時間で計算することができる。この方法は 5.8 で解説する。

4. k_{2} における計算

残った 6 個の k に対し、我々は補題2.1を適用しようと試みた。計算結果を次の表に示す。

Table 1. \begin{matrix}p & 4933 & 5527 & 7219 & 8677 & 9001 & 9901 \\ |A_{1}| & 27 & 27 & 27 & 27 & 27 & 27 \\ |D_{1}| & 3 & 3 & 3 & 3 & 3 & 3 \\ |D_{2}| & 9 & ≥ 9 & ≥ 9 & ? & 9 & 9 \\ |B_{n}| & 9 & 81 & 81 & 81 & 9 & 9 \end{matrix}

十分大きな n に対する |B_{n}| は補題2.2 と 2.3 による。 |A_{1}| の計算は円単数群の全単数群における指数が類数の奇数部分を与えるという Sinnott の定理 (cf. Theorem 4.1 in [13]) と、 Gold-Kim による円単数基底の具体的構成 (cf. [4]) に基づく。更に我々は p =4933, 9001, 9901 に対して |D_{2}| を決定することができた。以下にそのアイディアを述べる。

ここでも円単数が重要な役割を果たす。 ζ_{n} で 1 の原始 n 乗根を表す。 K = ℚ(ζ_{p}, ζ_{27}) とし、

ε = N_{ℚ(ζ_{p})/k}(\frac{1 − ζ_{p}^{g}}{1 − ζ_{p}} ) , ω_{ij} = N_{K/k_{2}}(1 − ζ_{p}^{g^{i}}ζ_{27}^{2^{j}}) , ξ_{j} = \frac{1 − ζ_{27}^{2^{j}}}{1 − ζ_{27}} ζ_{27}^{− \frac{1}{2} (2^{j}−1)}

とおく。 ε, ω_{ij}, ξ_{j} は各々 k, k_{2}, ℚ_{1} の円単数である。 σ を G(k/ℚ) の生成元、 C_{k_{2}} を k_{2} の円単数群とすると、 3^{2} || p − 1 なら

C_{k_{2}} =< −1, ε, ε^{σ}, ω_{06}, ω_{16}, ω_{07}, ω_{17}, ξ_{1}, ξ_{2}, ω_{ij} | 0 ≤ i ≤ 2, 0 ≤ j ≤ 5 >

であることが次の定理の有効性の根拠になっている。

定理 4.1. |D_{1}| = 3 であると仮定する。この時、

η^{3} = ε( ∏_{{0≤i≤2 \atop 0≤j≤5}} ω_{ij}^{x_{ij}})ω_{06}^{x_{06}}ω_{16}^{x_{16}}ω_{07}^{x_{07}}ω_{17}^{x_{17}}ξ_{1}^{x_{1}}ξ_{2}^{x_{2}}

をみたす k_{2} の単数 η と有理整数 x_{ij}, x_{j} が存在すれば |D_{2}| > 3 であり、 x_{ij} は

x_{00} + x_{10} + x_{20} − x_{06} − x_{16} ≡ 0 (mod 3)
x_{01} + x_{11} + x_{21} − x_{07} − x_{17} ≡ 0 (mod 3)
x_{02} + x_{12} + x_{22}  ≡ 0 (mod 3)
x_{03} + x_{13} + x_{23} − x_{06} − x_{16} ≡ 0 (mod 3)
x_{04} + x_{14} + x_{24} − x_{07} − x_{17} ≡ 0 (mod 3)
x_{05} + x_{15} + x_{25}  ≡ 0 (mod 3)

(2)

をみたす。

|D_{2}| = \frac{81}{(E_{k} : N_{k_{2}/k}(E_{k_{2}}))}

であるから、 E_{k_{2}} がわかれば |D_{2}| は直ちにわかるのだが E_{k_{2}} を決定するのは難しい。円単数を使えば独立な 26 個の単数は容易に求まるが、これを指数が 3 と素な部分群に膨らませるのが困難である。素朴なやり方では 1 回膨らませるのに約 2 · 3^{25} 回の試行が必要であり、試算すると我々のメインマシンである DEC Alpha 500/333 では 100 日程かかると思われる。今の場合 |A_{2}| ≥ 81 であると想像されるので最低 400 日が必要となる。このような計算を断行すれば資源のむだ遣いの謗りを免れないであろう。

一方定理4.1を使えば 3^{18} 回の試行で十分である。この程度であれば現在の計算機にとって程好い仕事である。定理4.1は |D_{2}| > 3 であるための十分条件だが、 E_{k_{2}}/C_{k_{2}} の 3-部分の指数が 3 であり |D_{2}| > 3 であるならば、このような η はこのやり方で必ず見つかる。すなわち E_{k_{2}}/C_{k_{2}} の 3-部分が基本アーベル群の場合には、定理4.1は |D_{2}| > 3 であるための必要十分条件を与えているのである。いくつかの p に対して E_{k_{2}}/C_{k_{2}} の 3-部分が基本アーベル群であることを期待するのはそれ程乱暴ではないだろう。事実 p = 4933 の時は

εω_{00}^{−1}ω_{03}ω_{04}^{−2}ω_{10}ω_{12}^{−1}ω_{13}^{−1}ω_{15}ω_{21}^{−1}ω_{22}ω_{24}ω_{25}^{−1}ω_{07}^{−1} ∈ k_{2}^{3}

であることを 5 分で見つけることができた。従って p = 4933 に対しては |D_{2}| > 3 であり、 |B_{n}| = 9 (n ≥ 2) であるから B_{n} = D_{n} (n ≥ 2) となる。従って補題2.1 よりλ_{3}(k) = 0 となる。同様に p = 9001 の時は

ε^{3}ω_{00}^{4}ω_{01}^{−10}ω_{02}^{3}ω_{03}ω_{04}^{−1}ω_{05}^{−3}ω_{10}^{−4}ω_{11}^{4}ω_{13}^{−1}ω_{14}ω_{21}^{3}ω_{22}^{−3}ω_{24}^{−3}ω_{25}^{3}ω_{06}^{−2}ω_{16}^{2}ω_{07}^{−1}ω_{17}^{−2} ∈ k_{2}^{9}

p = 9901 の時は

ε^{3}ω_{00}^{8}ω_{01}^{4}ω_{03}^{5}ω_{04}^{−2}ω_{10}^{−2}ω_{11}^{−1}ω_{12}^{−3}ω_{13}ω_{14}^{−1}ω_{15}^{3}ω_{21}^{−3}ω_{22}^{3}ω_{24}^{3}ω_{25}^{−3}ω_{06}^{2}ω_{16}^{4}ω_{07}ω_{17}^{−1} ∈ k_{2}^{9}

であることがわかり、定理4.1を少し修正するとやはり |D_{2}| > 3 であることがわかる。よって p =9001, 9901 に対しても λ_{3}(k) = 0 となる。

p =5527, 7219 に対しても同様の関係式を見つけることができたが、この場合は |B_{n}| = 81 (n ≥ 4) だから |D_{2}| ≥ 9 であることしかわからない。

実際の計算では N_{k_{2}/k_{1}}(η^{3}) が k_{1} の中の 3 乗数であることを利用して k_{1} で予備実験を行い、 x_{1} ≡ x_{2} ≡ 0 (mod 3) であることを確かめた。従って 3^{18} 回を 3^{16} 回に減らせるのである。 50 分も 5 分も大差ないではないかという声も聞こえてくるが、実際にプログラムを書いた経験があればこの違いの意味を理解できると思う。プログラムが完成してしまえば、確かに 50 分も 5 分も大差ないのだが、問題はバグとりの段階にある。職業プログラマーでない我々数学者がプログラムを書く場合ミスを避けることはできない。筆者 (の内の一人) などは 10 行程度のコードがミスなしに動くと不安になる程である。従って最初から期待通りの結果が得られるはずはなく、数学上の論理ミスを疑う前に丹念にプログラムのバグを捜さなければならない。いくら調べてもバグが見つからない時は数学の論理に穴があることもある。このように修正を繰り返しながらプログラムを書いていくので、 50 分経たなければミスがありそうかどうか判らない、という状況は非常に困難な状態を作り出すのである。今回の計算では k_{1} での予備実験が本質的に有効だった。

5. 計算上の工夫

計算機関係の研究集会でありますから、この節では常識とされ普段論文に書かれないような計算の上での工夫を説明しようと思います。多くの方にとっては釈迦に説法かもしれませんが、これからプログラムの勉強を始めようとしている方の参考になれば幸いです。

5.1. 整数基. k_{1} の単数 ε 或は一般に整数 α が k_{1} の中で 3 乗数かどうか調べるには α を k_{1} の整数基で表しておくのがよい。 k_{1} は ℚ_{1} と k の合併であり、 ℚ_{1} と k の判別式は互いに素だから ℚ_{1} と k の整数基の積が k_{1} の整数基となる。一般の実 3 次巡回体 k に対しては必ずしも ℚ_{1} と k の判別式は互いに素にはならないが、 ℚ_{1}k は判別式が 3 と素である部分体 K を含み、 k ⊂ ℚ_{1}K となる。 λ_{3}(K) = 0 ⟹ λ_{3}(ℚ_{1}K) = 0 ⟹ λ_{3}(k) = 0 であるから Greenberg 予想の観点からは k の判別式は 3 と素であるとして差し支えない。 ℚ_{1} = ℚ(θ_{1}) (θ_{1} = 2 cos(2π/9)) の整数基は { 1, θ_{1}, θ_{1}^{2} } であり、一般に導手が e (≢ 0 (mod 3)) である k の整数基は[1] にあるように、 k を

f(X) = X^{3} − X^{2} + \frac{1 − e}{3}X − \frac{1 − 3e + eu}{27}

の分解体として与えた時、 f(X) の 1 根を θ とすれば { 1, θ, θ^{σ} } である。但し σ は G(k/ℚ) の生成元であり u, v は

e = (u^{2} + 27v^{2})/4, u ≡ 2 (mod 3), u ≡ v (mod 2), v > 0

をみたす整数である。 (u, v) の組と k が 1 対 1 に対応し、 e の素因子が t 個の時、このような k は 2^{t−1} 個存在する。 e = p であれば唯一つである。

k_{2} の場合は ℚ_{2} = ℚ(θ_{2}) (θ_{2} = 2 cos(2π/27)) の整数基 { 1, θ_{2}, θ_{2}^{2}, ⋯, θ_{2}^{8} } を用いればよい。

5.2. 円単数. 例えば円単数

ω_{ij} = N_{K/k_{2}}(1 − ζ_{p}^{g^{i}}ζ_{27}^{2^{j}})

を k_{2} の整数基で表すにはどうすればよいだろうか。最も能率的なのは次の方法だと思われる。

k_{2} の整数基を { v_{0}, v_{1}, ⋯, v_{26} } とすれば ω = ω_{ij} は v_{i} の ℤ-係数の一次結合で

a_{0}v_{0} + a_{1}v_{1} + ⋯ + a_{26}v_{26} = ω

と表せる。これに G(k_{2}/ℚ) の元 σ を作用させると a_{0}, a_{1}, ⋯, a_{26} に関する 27 個の関係式ができる。これを連立方程式とみて v_{i}^{σ}, ω^{σ} の近似値を用いて a_{0}, a_{1}, ⋯, a_{26} の近似値を求める。高精度計算を行えば a_{i} は十分整数に近くなり、これを整数に丸めて ω の係数が決定できる。 a_{i} は整数になることが理論的に保証されているから、近似計算であっても精度を十分上げれば正しい数値が得られる。どの位の精度が必要かは p の大きさによるから、まず初めに double (64 bit) の精度で計算して必要な精度の見当をつけ、それから多倍長計算を行う。我々は a_{i} が 10^{−100} 以下の誤差で整数に近いことを確かめてから整数に丸めている。最後にこうして得られた k_{2} の整数の ℚ へのノルムを求め、それが ± 1 になることを確認している。

今から 10 数年前、実 6 次巡回体の単数群を計算していた我々(偶然にも同じ我々である) が、 Mäki ([10]) の方法に従い円単数の整数基に関する係数を漸化式に基づく厳密な整数計算で求めようとして加速度的に増大する計算時間に悩まされていた時、上智大学の和田秀男先生が教えて下さったのがこの方法である。整数論の計算は厳密な整数計算で行わなければならないと思い込んでいた筆者には浮かばない発想だった。これがきっかけとなり、プログラミングにも柔軟な考えが必要であると思うようになった。この場をおかりして和田先生に感謝致します。

5.3. Hasse の円単数. 上の円単数は Sinnott の意味の円単数であるが、もう一つ Hasse の円単数というものがある。あまり知られていないように思うので、ここで解説しよう。導手が f である実アーベル体 K の Hasse 円単数は次のようにして定義される (cf. [6])。

K に対応する (ℤ/fℤ)^{×} の部分群を H とする。 K は実だから−1 + fℤ ∈ H である。 h, −h ∈ H の一方から奇数の代表を選んで X を作る。すなわち、

X = \{ \begin{matrix}\{ 1 ≤ x ≤ f | x : odd , x + fℤ ∈ H \} & if f is odd, \\ \{ 1 ≤ x ≤ f/2 | x : odd , x + fℤ ∈ H \} & if f is even. \end{matrix}

この時、

ξ = ∏_{x∈X}(ζ_{2f}^{x} − ζ_{2f}^{−x}) = \sqrt{−1}^{|X|} ∏_{x∈X} 2 sin(\frac{xπ}{f} ) (3)

を Hasse 円単数と呼ぶ。一般には ξ の共役商が K の単数になるのであるが、我々のケースでは ξ も K の単数になる。そして Sinnott の意味の円単数は ξ の平方になる。実際、 f が奇数であることに注意して

X′ = { 1 ≤ x ≤ f | x : even , x + fℤ ∈ H }

とおくと X ∪ X′ は H の代表系であり、任意の x ∈ X に対し ζ_{f}^{x} = ζ_{f}^{−x′} となる x′ ∈ X が唯一つ定まるから

ξ^{2} = ∏_{x∈X∪X′}(ζ_{2f}^{x} − ζ_{2f}^{−x}) = ∏_{σ∈X∪X′} −ζ_{2f}^{−x}(1 − ζ_{f}^{x})
= ∏_{σ∈G(ℚ(ζ_{f})/K)} ζ_{f}^{−σ} ∏_{σ∈G(ℚ(ζ_{f})/K)}(1 − ζ_{f}^{σ})
= ± N_{ℚ(ζ_{f})/K} (1 − ζ_{f})

となる。 Hasse の円単数はノルムに比べると積の回数が半分で済むので計算時間も半分で済むし、係数の大きさも抑えられる。我々は指数が 3 と素な部分群を問題にしているのでノルムによる円単数の代わりに Hasse 円単数を用いるのがよい。

ξ の近似値を(3) の右辺で計算する時は途中で underflow が起こらないよう積の順序に注意する必要がある。 X を適当に shuffle すればよい。

5.4. 積と共役. ℚ_{2} の整数基 { 1, θ_{2}, θ_{2}^{2}, ⋯, θ_{2}^{8} } と k の整数基 { 1, θ, θ^{σ} } との積 { θ_{2}^{i}, θθ_{2}^{i}, θ^{σ}θ_{2}^{i} | 0 ≤ i ≤ 8 } が k_{2} の整数基となるから k_{2} の整数 α は α = a_{0} + a_{1}θ + a_{2}θ^{σ} (a_{i} は ℚ_{2} の整数) の形に表せる。従って k_{2} の整数の積は ℚ_{2} における整数の積と k における整数の積がわかれば求まる。 ℚ_{2} については θ_{2}^{i} (9 ≤ i ≤ 16) を ℚ_{2} の整数基で表しておけばよい。 5.2 で説明した方法が使える。 k については [1] の P.337 にある

(4)  σ^{± 1}(θ) = \frac{9v ± (u + 2 − 4e)}{18v} + \frac{−3v ∓ (u + 4)}{6v}θ ± \frac{1}{v} θ^{2}

を使えばよい。ついでであるが 3 が k で分岐する時の式には印刷ミスがある。正しくは

σ^{± 1}(θ) = ∓ \frac{2e}{9v} + \frac{−3v ∓ u}{6v}θ ± \frac{1}{v} θ^{2}

となる。これは第 3 版でも直っていない。

共役についても ℚ_{2} での共役と k での共役がわかればよい。 ℚ_{2} については θ_{2} = 2 cos(2π/27) の共役は 2 cos(2^{i}π/27) であることに注意して 2 cos(2^{i}π/27) を ℚ_{2} の整数基で表しておけばよい。 k については θ + θ^{σ} + θ^{σ^{2}} = 1 だから簡単である。

単数 ε の逆数が必要になることがある。今回の計算では逆数にはそれ程の速度は要求されないので、 N_{k_{2}/ℚ}(ε) = ± 1 に注意して

ε^{−1} = ± ∏_{σ∈G(k_{2}/ℚ), σ≠1} ε^{σ}

としている。速度が必要とされる時には連立方程式を解く方がよいかもしれない。

5.5. 3 乗根. k_{2} の整数 α が k_{2} の中で 3 乗数かどうか調べるのは易しい。 α は k_{2} の整数基 { v_{i} } を用いて α = ∑_{i} a_{i}v_{i} (a_{i} ∈ ℤ) と表されている。もし β = α^{1/3} ∈ k_{2} であれば β = ∑_{i} b_{i}v_{i} (b_{i} ∈ ℤ) と書ける。 k_{2} は実だから、 σ ∈ G(k_{2}/ℚ) に対し β^{σ} = (α^{σ})^{1/3} となる。よって ∑_{i} b_{i}v_{i} = β に σ を作用させてできる連立方程式を解いて b_{i} が整数にならなければ (整数でないことは近似計算であっても厳密な意味で証明できる) α^{1/3} ∉ k_{2} である。殆どの場合は連立方程式を解く前に ∑_{σ}(α^{σ})^{1/3} が整数にならないことを見て α^{1/3} ∉ k_{2} であることを確かめられる。 ∑_{σ}(α^{σ})^{1/3} が整数に近くなった時は方程式を解き係数 b_{i} を求める。 b_{i} が整数でなければ α^{1/3} ∉ k_{2} である。 b_{i} が整数に近くなった時はそれを丸めて整数係数の β = ∑_{i} b_{i}v_{i} を作り α と β^{3} を比較する。 α = β^{3} なら α^{1/3} ∈ k_{2}、 α ≠ β^{3} なら α^{1/3} ∉ k_{2} である。

α が変わっても係数行列は変わらないから、方程式は消去方で解くのではなく逆行列を求めておいてベクトルとの積をとるようにする。 α によって必要とされる精度が異なるから初めに十分な精度で求めておいて、それを適当に切り詰めるようにすれば無駄がない。

同じようにして奇数 n に対し α^{1/n} ∈ k_{2} かどうか調べるのも易しい。 α^{1/n} ∈ k_{2} なら (α^{1/n})^{σ} = (α^{σ})^{1/n} だからである。単数の存在に日頃悩まされている総実代数体であるが、この時ばかりは計算機に優しい対象に早変わりする。一方 a^{1/2} ∈ k_{2} かどうか調べるのはそれ程易しくない。一つでも α^{σ} < 0 となる共役があれば直ちに α^{1/2} ∉ k_{2} と判るが、全ての共役が α^{σ} ≥ 0 となっていれば連立方程式を解いて a^{1/2} ∈ k_{2} かどうか調べることになる。しかし (a^{1/2})^{σ} = ± (a^{σ})^{1/2} だから 2^{27} 回解かなければならない。おそらく数十分程度の時間がかかるものと思われる。

このようにして k_{2} の整数が 3 乗数かどうかは容易に判定できる。と言っても我々が扱っているケースでは係数がかなりの大きさになり 1 回の判定に 0.1 秒程度の時間がかかる。これが仮りに 1 ミリ秒でできるとしても定理4.1における 3^{16} 回の試行には 1000 年以上が必要となる。そこで次のように考えた。 ℓ を k_{2} で完全分解する有理素数とし、 𝔩 を ℓ 上の k_{2} の素イデアルとすれば α ≡ a (mod 𝔩) となる有理整数 a が存在する。 (ℤ/ℓℤ)^{×} の中で a + ℓℤ が 3 乗数かどうかは高速に判定できる。 a + ℓℤ が 3 乗数でなければ α ∉ k_{2} である。 3^{16} 回の試行において殆どは 3 乗数でないのだから、 3 乗数でないものを高速にふるい落とすことができればよい。そのためには次の補題が有効だった。

補題 5.1. {ℓ_{1}, ℓ_{2}, …, ℓ_{r}} を k_{2} で完全分解する素数の集合、 𝔩_{j} を ℓ_{j} 上の k_{2} の素イデアルとし、 k_{2} の整数 α に対し α ≡ a_{j} (mod 𝔩_{j}) となる有理整数 a_{j} をとる。もし a_{j} + ℓ_{j}ℤ のいずれかが (ℤ/ℓ_{j}ℤ)^{×} の中で 3 乗数でなければ α ∉ k_{2} である。

最後の工夫は

( ∏_{{0≤i≤2 \atop 0≤j≤5}} ω_{ij}^{x_{ij}})ω_{06}^{x_{06}}ω_{16}^{x_{16}}ω_{07}^{x_{07}}ω_{17}^{x_{17}} (5)

の作り方である。 x_{ij} を 0 ≤ x_{ij} ≤ 2 の範囲で独立に動かして (2) をみたさないものをスキップするようにしたのでは実質的には 3^{22} 回の試行であり高速化は望めない。 (2) をみたす x_{ij} に対する (5) の全体は 𝔽_{3} 上の 16 次元ベクトル空間をなすから、その基底 { Ω_{0}, Ω_{1}, ⋯, Ω_{15} } を求めておいて ∏_{i} Ω_{i}^{x_{i}} (0 ≤ x_{i} ≤ 2) の形を動かすのである。もちろん補題5.1における Ω_{i} ≡ a_{ij} (mod 𝔩_{j}) となる a_{ij} はあらかじめ求めておく。 (∏_{i} a_{ij}^{x_{i}})^{1/3} ∉ (ℤ/ℓ_{j}ℤ)^{×} となる j が一つでもあれば (∏_{i} Ω_{i}^{x_{i}})^{1/3} ∉ k_{2} である。 ℓ_{j} はそれ程大きくない素数にとれるので (ℤ/ℓ_{j}ℤ)^{×} の 3 乗数かどうかは表引きで調べる。 r = 20 とすると殆どのものは補題5.1でふるい落とすことができた。

このように様々な工夫をすることにより 5 分程度の時間で |D_{2}| を決定することができた。

5.6. k_{2} で分解する素数の見つけ方. k_{2} の導手が素数 p の時は簡単で

素数 ℓ が k_{2} で完全分解 ⟺ ℓ は ℚ_{2} と k で完全分解
⟺ ℓ ≡ 1 (mod 27) and ℓ^{(p−1)/3} ≡ 1 (mod p)

である。ここでは k の導手 e が素数でない時に k で分解する素数の見つけ方を説明する。それには k の指標を用いるのが簡単である。 e は

e = \{ \begin{matrix}9p_{1}p_{2} ⋯ p_{t−1} & 3 が k で分岐 \\ p_{1}p_{2} ⋯ p_{t} & 3 が k で不分岐 \end{matrix}

と分解される。 p_{i} は p_{i} ≡ 1 (mod 3) なる素数である。更に

e = \begin{cases}(u^{2} + 27v^{2})/4, u ≡ 6(mod 9), 3 |̸ v, u ≡ v (mod 2), v > 0 & if 3 | e \\ (u^{2} + 27v^{2})/4, u ≡ 2(mod 3), u ≡ v (mod 2), v > 0 & if 3 |̸ e \end{cases}

と一意的に表せる。 p_{i} も p_{i} = (u_{i}^{2} + 27v_{i}^{2})/4 と (一意的に) 表しておく。この時、

\frac{u + 3\sqrt{−3}v}{2} = \begin{cases}3ζ_{3}^{a} ∏_{i} π_{i} & if 3 | e \\ ∏_{i} π_{i} & if 3 |̸ e \end{cases}

と分解される。ここで ζ_{3} = (−1 + \sqrt{−3})/2, a = ± 1, π_{i} = (u_{i} ± 3\sqrt{−3}v_{i})/2 であり、 a と π_{i} は等号が成立するように符合を定める。この時、 k の Dirichlet 指標 χ は

χ = \begin{cases}χ_{0}^{a}χ_{1}χ_{2} ⋯ χ_{t−1} & if 3 | e \\ χ_{1}χ_{2} ⋯ χ_{t} & if 3 |̸ e \end{cases}

と分解される。 gcd(x, e) = 1 なる整数 x に対し、 χ_{i}(x) = ζ_{3}^{n} (n = 0, 1, 2) は

χ_{0}(x) = ζ_{3}^{(x^{2}−1)/3} , χ_{i}(x) ≡ x^{(p_{i}−1)/3} (mod π_{i}) (i ≠ 0)

より定まる。 ℓ の k における分解は χ を用いると

ℓ が k で分解⟺ χ(ℓ) = 1

でわかる。 Hasse の円単数の計算で k_{2} に対応する (ℤ/27eℤ)^{×} の部分群を求める時にも χ を利用する。

5.7. Ω_{i} ≡ a_{ij} (mod 𝔩_{j}) となる a_{ij} の求め方. こんな細かいことまで書く予定ではなかったが、この報告を書くためにプログラムを見直していると、この部分のアルゴリズムが間違っているような気がし、蒼くなって調べ直すと正しいことが判りほっとしたので、今後の精神衛生のために書かせて頂くことにする。 k_{2} で完全分解する素数 ℓ の上の k_{2} の素イデアルの一つを 𝔩 とする。 𝔩 はどれでもよいから Ω_{i} ≡ a_{i} (mod 𝔩) となる a_{i} を各々の Ω_{i} に対して見つけることは易しいが、 i が動く時 𝔩 を共通にとらなければならない。 𝔩 を特定することは少々面倒なので、次のようにする。

N_{ℚ_{2}/ℚ}(a − θ_{2}) ≡ 0 (mod ℓ), N_{k/ℚ}(b − θ) ≡ 0 (mod ℓ) となる a, b ∈ ℤ を捜す。この時、

a ≡ θ_{2} (mod 𝔓) , b ≡ θ (mod 𝔭)

である。 𝔓, 𝔭 は各々 ℓ 上の ℚ_{2}, k のある素イデアルである。 𝔩 = 𝔓 ∩ 𝔭 とすれば、

a ≡ θ_{2} (mod 𝔩) , b ≡ θ (mod 𝔩)

だから、 k_{2} の整数基 { θ_{2}^{i}, θθ_{2}^{i}, θ^{σ}θ_{2}^{i} | 0 ≤ i ≤ 8 } = {v_{j}} に対し v_{j} ≡ x_{j} (mod 𝔩) となる x_{j} ∈ ℤ が求まる。ここで (4) を使う。そうすれば Ω_{i} = ∑_{j} y_{ij}v_{j} に対し、

Ω_{i} ≡ ∑_{j} y_{ij}x_{j} (mod 𝔩)

である。

5.8. |A_{1}| と |D_{1}|. Sinnott の定理より k_{1} の類数の奇数部分は (E_{k_{1}} : C_{k_{1}}) の奇数部分に等しい。 C_{k_{1}} が判れば E_{k_{1}} が判らなくても (E_{k_{1}} : C_{k_{1}}) の 3-部分は判る。従って C_{k_{1}} が判れば |A_{1}| が判る。

ε = N_{ℚ(ζ_{p})/k}(\frac{1 − ζ_{p}^{g}}{1 − ζ_{p}} ) , ω_{ij} = N_{K/k_{1}}(1 − ζ_{p}^{g^{i}}ζ_{9}^{2^{j}}) , ξ_{j} = \frac{1 − ζ_{9}^{2^{j}}}{1 − ζ_{9}} ζ_{9}^{− \frac{1}{2} (2^{j}−1)}

とおき G(k/ℚ) =< σ > とすれば 3^{2} || p − 1 の時は

C_{k_{1}} =< −1, ε, ε^{σ}, ω_{00}, ω_{10}, ω_{01}, ω_{11}, ξ_{1}, ξ_{2} >

である。 C_{k_{1}} の全単数群における指数の 3-部分は次の手順で求められる。実はもっと強く E_{k_{1}}/C_{k_{1}} の 3-部分の群構造が判る。

\begin{matrix}0. & C_{k_{1}} =< −1, ε_{0}, ε_{1}, ⋯, ε_{7} > の時 (E_{k_{1}} : C_{k_{1}}) の 3-部分を求める。 \\ 1. & m ← 1, n ← 0 とし 2 へ。 \\ 2. & n > 7 なら終了、 |A_{1}| = m である。 n ≤ 7 なら 3 へ。 \\ 3. & x_{i} を mod 3 で動かして α = ε_{0}^{x_{0}} ⋯ ε_{n−1}^{x_{n−1}}ε_{n} が k_{1} で 3 乗数かどう ; か調べる。 3 乗数が見つかったら ε_{n} を α^{1/3} で置き換えて m ← 3m ; とし 3 へ。 3 乗数が現れなければ n ← n + 1 とし 2 へ。 \end{matrix}

同様にして奇素数 ℓ に対し ℓ-部分を求めることもできる。 (E_{k_{1}} : C_{k_{1}}) に現れる素数の上限が評価できれば k_{1} の類数の奇数部分を求めることもできる。

|A_{1}| が求まれば、同時に指数が 3 と素な E_{k_{1}} の部分群 E′ が求まったことになる。よって (1) より |D′_{1}|, |D_{1}| が判るし、補題3.1に基づいて D′_{1} = D_{1} かどうか調べることもできる。 E_{k_{1}} のランクは 8 だから、この計算は無造作にプログラムを書いても十分速い。我々のプログラムでは 10000 程度の p であれば数秒で |A_{1}| を計算できる。

5.9. プログラム. プログラムの大部分は C であるが、多倍長演算の基本ルーチンはアセンブラで書かれている。円単数を求める部分、単数の四則演算、多倍長演算の 3 つに大きく分かれていて、各々のサイズは

C  アセンブラ
円単数 1000 行
四則演算 4000 行
多倍長演算 5000 行 11000 行

となっている。アセンブラのサイズが極端に大きいのは DEC Alpha のハードの特徴による。 CPU の 21164 は 64 bit 同士から 128 bit の積を作れるが、 128 bit を 64 bit で割るハードウェア命令を持たない。そのため多倍長数同士の除算は 64 bit マシンであるにも拘らずそれ程高速には実行できないのだが、小さい数による除算に限れば除算を乗算で置き換えることにより高速に実行できる。 11000 行の約 9 割を小さな定数による除算ルーチンが占めているのである。

この多倍長演算ルーチンは筆者の一人が開発した多倍長 C 言語インタープリタ TC の関数を利用している。全てが TC でまかなえれば楽なのだが、今回のようにハードの性能を限界まで引き出す必要のある計算には TC は適していない。

6. 展望

まだプレプリントの形にはまとめられていないが、我々のこの計算の後、尾崎氏と山本氏は k に付随する 3-進 L 関数の岩澤多項式の既約性と D_{1} の非自明性に基づき p =3907, 4933, 5527, 6247, 7687, 8011, 9001, 9901 に対して λ_{3}(k) = 0 を示した。これは我々の結果に 5527 を追加した形になっている。これで素数導手 p をもつ実 3 次巡回体 k に対し、 λ_{3}(k) = 0 かどうか不明な 10000 以下の p は 2269, 6481, 7219, 8677 の 4 個となった。

更に、最近、栗原将人氏の結果を利用することにより尾崎氏が p = 2269, 6481 に対し λ_{3}(k) = 0 を示したらしい。また我々は、 3-進 L 関数の岩澤多項式の既約因子から構成されるある多項式を円単数に作用させることで p = 7219, 8677 に対し λ_{3}(k) = 0 を示すことができた。これで 10000 以下の素数導手をもつ実 3 次巡回体に対しては λ_{3}(k) = 0 であることが示された。

岩澤多項式を用いる方法は導手が素数でなくても適用できる。実際我々は導手が 3 個以下の素数の積であり、これまで不明だったかなり多くの k に対して λ_{3}(k) = 0 を示すことができた。導手の素因子が 3 の高い巾で 1 と合同でなければ岩澤多項式の次数はそれ程大きくならず、なんとか既約分解が可能である。この方法は実例計算の面からだけでなく理論的にも興味深く、この方向でどこまで進むことができるのか考えてみるのは意味のあることだと思われる。

一方導手の素因子が 3 の高い巾で 1 と合同になる時は、木田の公式 ([9]) からもわかるように岩澤多項式の次数は高くなる。 26 次程度の多項式はごく普通に現れる。このような多項式をどうやって既約分解するのか、或は既約分解に依らない方法を考えるべきなのかは今後の課題である。

References

1. H. Cohen, A course in computational algebraic number theory, Graduate Texts in Math., 138, Springer-Verlag, New York, Heidelberg, Berlin, 1993.

2. T. Fukuda and K. Komatsu, On Iwasawa λ_{3}-invariants of cyclic cubic fields of prime conductor, submitted to Math. Comp.

3. T. Fukuda, K. Komatsu, M. Ozaki and H. Taya, On Iwasawa λ_{p}-invariants of relative real cyclic extensions of degree p, Tokyo J. Math. 20-2 (1997) 475–480.

4. R. Gold and J. Kim, Bases for cyclotomic units, Compositio Math. 71 (1989), 12–27.

5. R. Greenberg, On the Iwasawa invariants of totally real number fields, Amer. J. Math. 98 (1976), 263–284.

6. H. Hasse, Über die Klassenzahl abelscher Zahlkörper, Akademie Verlag, Berlin, 1952.

7. A. Inatomi, On ℤ_{p}-extensions of real abelian fields, Kodai Math. J. 12 (1989), 420–422.

8. A. Inatomi, On the λ invariants of ℤ_{p}-extensions of real abelian fields, Mem. Inst. Sci. and Tech. Meiji Univ. 29-2 (1990), 11–14.

9. Y. Kida, ℓ-extensions of CM-fields and cyclotomic invariants, J. Number Theory, 12 (1980), 519–528.

10. S. Mäki, The determination of units in real cyclic sextic fields, in Lecture Notes in Math. 797. Springer–Verlag, Berlin, Heidelberg, New York 1980.

11. M. Ozaki, A note on the capitulation in ℤ_{p}-extensions, Proc. Japan Acad. Ser. A, 71-9 (1995), 218–219.

12. M. Ozaki and G. Yamamoto, Iwasawa λ_{3}-invariants of certain cubic fields, preprint

13. W. Sinnott, On the Stickelberger ideal and the circular units of an abelian field, Inv. Math. 62 (1980), 181–234.

早稲田大学理工学部

E-mail: kkomatsu@mse.waseda.ac.jp

日本大学生産工学部

E-mail: fukuda@math.cit.nihon-u.ac.jp