■フェルマーの最終定理と有限体

 『x^n+y^n=z^nはn≧3のとき正の整数解をもたない.』というのが有名なフェルマー・ワイルズの定理(1994年)です.ワイルズはちょうど40才のときにフェルマーの最終定理を証明し,世界一有名な数学の未解決問題を解決しました.

 ワイルズはフェルマーの定理の証明が一筋縄ではいかないことを実感して一時棚上げにしていたのですが,フライとリベットの結果にフェルマー攻略への道を確信し,研究室に7年間もこもって,彼独自のアイデアをもってとうとう証明に成功しました.この間の苦節7年には大いなる勇気,確固たる意志,強靭な忍耐力,広範な知識,ずば抜けた戦略,そして幸運を必要としたことは間違いありません.

 しかし,これが解をもつといったら驚かれるかもしれませんね.もちろんこれは架空の話ではありますが,modpの世界,すなわち,

  Fp={0,1,,・・・,p−2,p−1}

なる有限体上で考えてみると実際に解をもちますし,そこでは解の存在より解の個数の方が問題になるのです.

 今回のコラムでは

  [参]中島匠一「数を数えてみよう」日本評論社

から題材をとって,有限体上のフェルマー曲線について調べてみることにしました.とはいってもすべてのnについて計算することはできませんから,

  x^3+y^3=z^3

に限定することになるのですが・・・.

===================================

【1】有限射影平面

 フェルマーの問題:x^n+y^n=z^nを有限体Fp上で考えてみましょう.ただし,(x,y,z)=(0,0,0)は除外することにします.

 また,(x,y,z)が解ならば(tx,ty,tz)も解なので,

  (x,y,z)=(2x,2y,2z)=・・・=((p-1)x,(p-1)y,(p-1)z)

よりp−1個の点は同じ点とみなすことができます.

 すなわち,有限射影平面P^2(Fp)で考えることになるのですが,有限射影平面についてはコラム「群と魔方陣」「球の充填と格子」でも説明したとおりですので省略します.また,解の個数イコール

  {(x,y,z)|x^n+y^n=z^n,x,y,zはFpに属する}

をみたすP^2(Fp)の点の個数をNpと書くことにします.

[1]フェルマーの問題はn=1のときにはx+y=zという単なる足し算ですから,xとyにどんな自然数を入れても自然数zは必ず存在します.この問題を有限体Fp上で考えるとxはp通り,yもp通りでzは必ず存在しますから,全部でp^2通り,それから(0,0,0)を除いてp^2−1通り.同じものがp−1組ありますから,

  Np=(p^2−1)/(p−1)=p+1

が答えになります.

[2]n=2の場合はピタゴラス方程式x^2+y^2=z^2と呼ばれ,無数の解をもち,しかもすべての解をもれなく求めることのできる公式も知られています.

 有限体上で考えると,p=5では

  x |0,1,2,3,4

  x^2|0,1,4,4,1

ですから

x\y 0 1 2 3 4

0 (0,0,0) (0,1,1) (0,2,2) (0,3,2) (0,4,1)

(0,1,4) (0,2,3) (0,3,3) (0,4,4)

1 (1,0,1) (1,2,0) (1,3,0)

(1,0,4)

2 (2,0,2) (2,1,0) (2,4,0)

(2,0,3)

3 (3,0,2) (3,1,0) (3,4,0)

(3,0,3)

4 (4,0,1) (4,2,0) (4,3,0)

(4,0,4)

 (0,0,0)を除いた24個の解で,たとえば,

  (1,2,4)=(2,4,3)=(3,1,2)=(4,3,1)

は同じ点とみなすことができるわけですから,4個ずつ組になり

  N5=24/4=6=5+1

 p=7では

  x |0,1,2,3,4,5,6

  x^2|0,1,4,2,2,4,1

より

x\y 0 1 2 3 4 5 6

0 (0,0,0) (0,1,1) (0,2,2) (0,3,3) (0,4,3) (0,5,2) (0,6,1)

(0,1,6) (0,2,5) (0,3,4) (0,4,4) (0,5,5) (0,6,6)

1 (1,0,1) (1,1,3) (6,1,3)

(1,0,6) (1,1,4) (6,1,4)

2 (2,0,2) (2,2,1) (2,5,1)

(2,0,5) (2,2,6) (2,5,6)

3 (3,0,3) (3,3,2) (3,4,2)

(3,0,4) (3,3,5) (3,4,5)

4 (4,0,3) (4,3,2) (4,4,2)

(4,0,4) (4,3,5) (4,4,5)

5 (5,0,2) (5,2,1) (5,5,1)

(5,0,5) (5,2,6) (5,5,6)

6 (6,0,1) (6,1,3) (6,6,3)

(6,0,6) (6,1,4) (6,6,4)

 (0,0,0)を除いた48個の解で6個ずつ組になりますから

  N7=48/6=8=7+1

 どちらも

  Np=p+1

となりましたが,任意のpにおいてこれが成り立つことは

  x^2=a  (modp)

においては

  (p−x)^2=x^2  (modp)

より,{1,2,・・・,(p−1)/2}の各平方と{p−1,p−2,・・・,(p+1)/2}の各平方が合同となり,したがって半数が平方剰余,残りの半数が平方非剰余になることから理解されます.

 また,

  x^2|0,1,4,4,1

  x^2|0,1,4,2,2,4,1

のように最初の0を除いた部分は回文(前から読んでも後から読んでも同じ)になっているという事実もこのことから理解されるでしょう.

===================================

【2】x^3+y^3=z^3 on Fp

 n=3の場合はオイラー(1770年)によって自然数解をもたないという証明が与えられましたが,今度は同じことを有限体について考えてみます.

 p=5では

  x |0,1,2,3,4

  x^3|0,1,3,2,4

となり,任意のaに対してx^3=aを満たすxが存在することがわかります.

 n=3では

  (p−x)^3=x^3  (modp)

が成り立たないので,半数が3乗剰余ということは保証されておらず,このように全数が3乗剰余ということもあり得るのです.

 この場合,

x\y 0 1 2 3 4

0 (0,0,0) (0,1,1) (0,2,2) (0,3,3) (0,4,4)

1 (1,0,1) (1,1,3) (1,2,4) (1,3,2) (1,4,1)

2 (2,0,2) (2,1,4) (2,2,1) (2,3,0) (2,4,3)

3 (3,0,3) (3,1,2) (3,2,0) (3,3,4) (3,4,1)

4 (4,0,4) (4,1,0) (4,2,3) (4,3,1) (4,4,2)

となって,(0,0,0)を除いた24個の解で4個ずつ組になりますから

  N5=24/4=6=5+1

 p=7では

  x |0,1,2,3,4,5,6

  x^3|0,1,1,6,1,6,6

となって,x^3=aを満たすF5の元xの個数を求めると,a=0なら1個,a=1,6なら3個,a=2,3,4,5なら0個となります.

x\y 0 1 2 3 4 5 6

0 (0,0,0) (0,1,1) (0,2,1) (0,3,3) (0,4,1) (0,5,3) (0,6,3)

(0,1,2) (0,2,2) (0,3,5) (0,4,2) (0,5,5) (0,6,5)

(0,1,4) (0,2,4) (0,3,6) (0,4,4) (0,5,6) (0,6,6)

1 (1,0,1) (1,3,0) (1,5,0) (1,6,0)

(1,0,2)

(1,0,4)

2 (2,0,1) (2,3,0) (2,5,0) (2,6,0)

(2,0,2)

(2,0,4)

3 (3,0,3) (3,1,0) (3,4,0)

(3,0,5)

(3,0,6)

4 (4,0,1) (4,3,0) (4,5,0) (4,6,0)

(4,0,2)

(4,0,4)

5 (5,0,3) (5,1,0) (5,2,0) (5,4,0)

(5,0,5)

   (5,0,6)

  6  (6,0,1) (6,1,0) (6,2,0) (6,4,0)

     (6,0,5)

(6,0,6)

 (0,0,0)を除いた54個の解で6個ずつ組になりますから

  N7=54/6=9≠7+1

となって,Np=p+1が成り立ちません.

===================================

 p=5とp=7で答えのパターンが違っていましたが,一般の素数pに対しては解の数はどのようになるのでしょうか? 他の場合も調べてみると 

  p  Np   p+1

  2  3    ○

  3  4    ○

  5  6    ○

  7  9    ×

  11  12    ○

  13  9    ×

  17  18    ○

  19  27    ×

 この表より,pを3で割った余りが注目されます.

1)3で割り切れる素数は3しかなく,N3=4である.

2)p=2(mod3)の場合,Np=p+1が成り立つ.

 →じつはp=3(mod2)の場合,3乗で表される数x^3=aはただひとつの解をもち,このことからすんなりNp=p+1が証明される.

3)p=1(mod3)の場合,Npは複雑である.

4)すべての素数についてNp≧3である.

 →3個の解は(0,1,1),(1,0,1),(1,p−1,0)で,等号はp=2の場合に限る.

===================================

【3】ここで復習を!

 p=7のとき,x^3=aを満たすF7の元xの個数を求めると,a=0なら1個,a=1,6なら3個,a=2,3,4,5なら0個となりますが,その違いがどこからくるのか知るために,ここで有限体の復習をしておきましょう.

 有限体Fpの0以外の元をaとします.このとき,aをp回足すとはじめて0になります.素数7を例にとって,F7でa=3を何回もたしてみると

  3+3=6

  3+3+3=6+3=2

  3+3+3+3=2+3=5

  3+3+3+3+3=5+3=1

  3+3+3+3+3+3=1+3=4

  3+3+3+3+3+3+3=4+3=0

このpを有限体Fpの「標数」といいます.

 また,aをp−1回掛けると1になります.F7において

  a\^n  1  2  3  4  5  6

   1   1  1  1  1  1  1

   2   2  4  1  2  4  1

   3   3  2  6  4  5  1

   4   4  2  1  4  2  1

   5   5  4  6  2  3  1

   6   6  1  6  1  6  1

最後の列はすべて1です.

 このように,pで割り切れない整数aに対して,フェルマーの(小)定理

  a^(p-1)=1  (mod p)

が成り立つというわけです.また,このことからa^(p-2)がaの逆元となることも理解されます.

  1/a=a^(p-2)

F7では,

  1/3=3^5=5,1/6=6^5=6

 この表において,1は1乗してはじめて1になりますが,2は3乗して,3は6乗して,4は3乗して,5は6乗して,6は2乗してはじめて1になります.何乗かして1になるとき,その最小のものを「位数」と呼びます.p=7のとき,a=1,2,3,4,5,6の位数はそれぞれ1,3,6,3,6,2ですが,ここで位数として現れる数はすべて6=7−1の約数です.一般にFpの位数はp−1の約数となります.

 また,pと互いに素な整数aがp−1乗してはじめて1になるとき,aを「原始根」といいます.F7においては3,5が原始根です.

 F5においては

  a\^n  1  2  3  4

   1   1  1  1  1

   2   2  4  3  1

   3   3  4  2  1

   4   4  1  4  1

より2,3が原始根となります.

 任意の素数について原始根rは少なくとも1つ存在します.1つとは限らないため,原始根rの選び方は1通りではありませんが,1つ選んで固定します.そしてFpにおける原始根rが与えられたとき,0以外のすべての元は,

  a=r^i   (i=0〜p-2)

の形に表すことができます.iを(rに関する)「指数」と呼びます.Fpの0以外のすべての元はrを生成元とする位数p−1の巡回群というわけです.

 F7において,原始根r=3とすると

   i  : 0,1,2,3,4,5

  a=r^i: 1,3,2,6,4,5

ですから,6の指数は3,1の指数は0ということになります.また,原始根としてr=5を選ぶと

   i  : 0,1,2,3,4,5

  a=r^i: 1,5,4,6,2,3

で,同様に6の指数は3,1の指数は0となります.

===================================

【4】x^3+y^3=z^3 on Fp=1(mod3)

 前節より,3乗で表される数x^3=aの解の個数が

  指数が3の倍数のとき・・・・・3個

  指数が3の倍数でないとき・・・0個

で与えられることが理解されます.

 p=1(mod3)の場合,Npは複雑となるのですが,実は

  x^3+y^3=1   (x≠0,y≠0)

の解の個数をMpとおけば,

  Np=9+Mp

となることがわかっています.

 そこで,

  S(u)=(u=x^3を満たす解の個数)

  S(v)=(v=y^3を満たす解の個数)

とおくと,F7では

  指数が3の倍数のとき・・・・・S(1)=S(6)=3

  指数が3の倍数でないとき・・・S(2)=S(3)=S(4)=S(5)=0

で,u+v=1を満たす(u,v)の組は

  (2,6),(3,5),(4,4),(5,3),(6,2)

ですから

  M7=S(2)S(6)+S(3)S(5)+S(4)S(4)+S(5)S(3)+S(6)S(2)=0

より,N7=9が得られるというわけです.

===================================

 次に,

  指数が3の倍数のとき・・・・・3個

  指数が3の倍数でないとき・・・0個

と結びつけるために,1の原始3乗根

  ω=(−1+√3)/2,ω~=(−1−√3)/2

  ω^2=ω~,1+ω+ω^2=0

を使うことにします.

  ω^k=0   (k=0  mod3)

    =ω   (k=1  mod3)

    =ω^2  (k=2  mod3)

ですから

  1+ω^k +ω^2k=3   (k=0  mod3)

          =0   (k≠0  mod3)

が成立します.1+ω^k +ω^2kという式は指数kが3で割り切れるかどうかの指標になっているというわけです.

 Fpにおける原始根rが与えられたとき,0以外のすべての元は,

  a=r^k   (k=0〜p-2)

で表されるのですが,このとき,

  χ(a)=ω^k,χ~(a)=ω~^k=ω^2k

と定めます.この指標は乗法的性質

  χ(m)χτ(n)=χτ(mn)

をもっています.

 するとF7(r=3)では

  a  :1 ,2 ,3 ,4 ,5 ,6

  k  :0 ,2 ,1 ,4 ,5 ,3

  χ(a) :1 ,ω^2,ω ,ω ,ω^2,1

  χ~(a):1 ,ω ,ω^2,ω^2,ω ,1

 これより

  x^3=aなるxが存在する←→χ(a)=1,χ~(a)=1

  Σχ(a)=Σχ(r^k)=Σω^k=0

  Σχ~(a)=Σχ(r^k)=Σω^2k=0

であり,

  S(u)=1+ω^k +ω^2k=1+χ(u)+χ~(u)

  S(v)=1+ω^2k +ω^k=1+χ(v)+χ~(v)

 ここで,

  J(χ)=Σχ(u)χ(v)

  J(χ~)=Σχ~(u)χ~(v)   (Σはu+v=1をわたる)

なる記号を使えば

  Mp=p−8+J(χ)+J(χ~)

より

  Np=p+1+J(χ)+J(χ~)

と表されます.

 J(χ)とJ(χ~)はヤコビ和と呼ばれる複素数ですが,F7(r=3)の場合は

  J(χ)=χ(2)χ(6)+χ(3)χ(5)+χ(4)χ(4)+χ(5)χ(3)+χ(6)χ(2)

     =2ω^3+3ω^2=−1−3ω

同様に

  J(χ~)=2+3ω,

  J(χ)+J(χ~)=1,J(χ)J(χ~)=7

となります.

 このように,J(χ)+J(χ~)は実数となり,また,

  |J(χ)|^2=J(χ)J(χ~)=p

  |J(χ)|=|J(χ~)|=√p

が成り立ちますから,p=1(mod3)のとき

  p+1−2√p<Np<p+1+2√p

となることがわかります.Npは各素数pごとにてんでんばらばらになっておらす,そこにはある秩序が存在しているというわけです.

 なお,

  p+1−2√p<Np<p+1+2√p

という式は楕円曲線と有限体の関係においても登場しますので,それについてはコラム「楕円曲線と有限体」,「谷山予想・佐藤予想・ラマヌジャン予想」をご参照下さい.ワイルズも20代になったばかりのデビューしたての頃,楕円曲線のゼータ関数についての仕事で数学界に衝撃を与えました.

===================================

【5】ヤコビ和とガウス和

 互いに素な整数a,bに対する平方の和a^2+b^2は3で割れません.

  a=3k   → a^2=9k^2

  a=3k+1 → a^2=9k^2+6k+1

  a=3k+2 → a^2=9k^2+12k+4

より,a^2を3で割ったときの余りは0か1になります.0になるのはaが3の倍数のときです.

 b^2に対しても同じことが成り立ちますから,a^2+b^2を3で割ると,余りは0+0,0+1,1+0,1+1にしかなりません.0+0はaもbも3の倍数であることに対応していて,仮定に反します.

 4n+3の数はa^2+b^2の形にならないことも簡単に示すことができます.

  a=4k   → a^2=0  (mod 4)

  a=4k+1 → a^2=1  (mod 4)

  a=4k+2 → a^2=0  (mod 4)

  a=4k+3 → a^2=1  (mod 4)

したがって,a^2+b^2を4で割ったときの余りは0+0,0+1,1+0,1+1にしかならないので,この主張が示されました.

 pを素数として,p=x^2+y^2を満たす整数x,yが存在するための必要十分条件は

  p=1(mod4)またはp=2

であることは有名です.

 それに較べてあまり知られていないのですが,p=x^2−xy+y^2を満たす整数x,yが存在するための必要十分条件は

  p=1(mod3)またはp=3

が成り立つことです.

 ヤコビ和を使うと(←)が簡単に証明できます.

(証明)p=2(mod3)であれば,x^2−xy+y^2を割った余りは2になり得ないので解なし.p=1(mod3)であれば,

  J(χ)=x+yω,J(χ~)=x+yω~

と表される.

  p=|J(χ)|^2=J(χ)J(χ~)

   =(x+yω)(x+yω~)=x^2−xy+y^2

===================================

 ここで,一般的に話を進めるためにガウス和とヤコビ和の本来の姿を導入しますが,位数p−1の巡回群の指標には1のp乗根が対応して,

  ζ=exp(2πi/p)

として

  τ(χ)=Σχ(x)ζ^x   (x=1~p-1)

を指標χ(x)に属するガウス和と呼びます.すなわち,ガウス和はFpに1のp乗根ζを添加した拡大体におけるχの1次結合です.

 また,指標χ(x),φ(x)に対して,ヤコビ和

  J(χ,φ)=Σχ(x)φ(1-x)=τ(χ)τ(φ)/τ(χφ)

が定義されます.前節の例ではφ=χとなっていたことがおわかり頂けたでしょうか.ヤコビ和は本来は2つの指標から定まるものであって,ここでは簡単に

  J(χ,χ)=J(χ)

  J(χ~,χ~)=J(χ~)

と書いているのです.また,これらの大きさは

  |τ(χ)|=√p

  |J(χ,φ)|=√p

で与えられます.

 なお,ガウス和の定義はガンマ関数

  Γ(s)=∫(0,∞)x^(s-1)exp(-x)dx

ヤコビ和はベータ関数

  B(p,q)=∫(0,1)x^(p-1)(1−x)^(q-1)dx=Γ(p)Γ(q)/Γ(p+q)

と非常によく似ていています.ガンマ関数とベータ関数が兄弟分にあたるように,ガウス和とヤコビ和も兄弟分というわけです.

===================================

【6】拡大体Fp^nにおける解の個数N(n)

 フェルマーの問題を拡張する方向としては,一つには指数を大きくすること,

  x^3+y^3=z^3 → x^m+y^m=z^m

もう一つには有限体の位数を増すこと,

  Fp → Fq=Fp^n (Fpのn次拡大体:q=p^n)

の2つの方向が考えられますが,ここでは後者について考えてみることにします.すなわち,この節で取り扱う範囲は

  m\n 1 2 3 4 5 ・・・

  1   ○ ○ ○ ○ ○

  2   ○ ○ ○ ○ ○

  3   ○ ○ ○ ○ ○

  5   × × × × ×

  7   × × × × ×

ということになります.

 Fp^nの0でない元の全体は,位数p^n−1の乗法群をなします.この群のすべての元は

  f(x)=x^(p^n-1)−1=0,すなわち,x^(p^n)=x

を満たします.また,

  (x+y)^p=x^p+y^p  (和のp乗はp乗の和)

  (xy)^p=x^py^p    (積のp乗はp乗の積)

ですから,p乗の算法は体をなしています.一般に,

  {f(x)}^p=f(x^p)

が成立します.

[注]誤解を避けるために申し添えておきますが,たとえば,

  Z/9Z={0,1,2,3,4,5,6,7,8}

(一般にZ/p^nZ)では,有限環とはなっても有限体にはなりません.n≧2ならば,Fp^nとZ/p^nZはまったく違うものなのです.

===================================

 一般に,有限体Fpのn次拡大体Fp^n上の方程式

  x+y=z   (x,y,zはFp^nの元)

の(x,y,z)=0を除いた解の個数はp^2n−1であり,これがp^n−1個ずつのグループに分かれているので

  N(n)=(p^2n−1)/(p^n−1)=p^n+1,N(1)=Np

x^2+y^2=z^2の場合も,同様に

  N(n)=p^n+1,N(1)=Np

となります.

 ところが,x^3+y^3=z^3 on Fp^nについての解の数N(n)を求めることは簡単ではありません.これを求めるためには

  c(p)=p+1−N(1)=p+1−Np

とおいて,次の関数

  Z(T)=(1-c(p)T+pT^2)/(1-T)(1-pT)

を用います.この関数を合同ゼータ関数といいます.

 合同ゼータ関数は数学的知識の積み重ねのうえで定義された関数なので,おいそれとは説明できませんが,N(n)の母関数であって,m=1,2のときの合同ゼータ関数は

  Z(T)=1/(1-T)(1-pT)

このとき

  -log(1-T)=T+1/2・T^2+1/3・T^3+・・・

ですから

  N(n)/n・T^n=log{1/(1-T)(1-pT)}

=(T+1/2・T^2+1/3・T^3+・・・)+(pT+1/2・p^2T^2+1/3・p^3T^3+・・・)

=Σ(p^n+1)/n・T^n

これより

  N(n)=p^n+1,N(1)=Np

となります.

  Z(T)=(1-c(p)T+pT^2)/(1-T)(1-pT)

の場合は

  N(n)/n・T^n=log{(1-c(p)T+pT^2)/(1-T)(1-pT)}

=Σ(p^n+1)/n・T^n-(c(p)T-pT^2)-1/2・(c(p)T-pT^2)^2-1/3・(c(p)T-pT^2)^3+・・・

より

N(1)=p+1-c(p)

N(2)=(p+1)^2-c(p)^2

N(3)=p^3+1+3pc(p)-c(p)^3

N(4)=(p^2-1)^2+4pc(p)^2-c(p)^4

N(5)=p^5+1-5p^2c(p)+5pc(p)^3-c(p)^5

N(6)=(p^3+1)^2-9p^2c(p)^2+6pc(p)^4-c(p)^6

N(7)=p^7+1+7p^3c(p)-14p^2c(p)^3+7pc(p)^5-c(p)^7

N(8)=(p^4-1)^2+16p^3c(p)^2-20p^2c(p)^4+8pc(p)^6-c(p)^8

N(9)=p^9+1-9p^4c(p)+30p^3c(p)^3-27p^2c(p)^5+9pc(p)^7-c(p)^9

N(10)=(p^5+1)^2-25p^4c(p)^2+50p^3c(p)^4-35p^2c(p)^6+10pc(p)^8-c(p)^10

 この数値は小生が数式処理ソフトを用いずに手計算で求めたものであり,信頼率は50%以下と思われました.そこで畏友・阪本ひろむ氏にお願いしてMathematicaで確認してあります.

 とくに,p=2(mod3)のときはc(p)=0ですから,

  Z(T)=(1+pT^2)/(1-T)(1-pT)

N(1)=p+1

N(2)=(p+1)^2

N(3)=p^3+1

N(4)=(p^2-1)^2

N(5)=p^5+1

N(6)=(p^3+1)^2

N(7)=p^7+1

N(8)=(p^4-1)^2

N(9)=p^9+1

N(10)=(p^5+1)^2

で与えられます.

 なお,m=1,2のときの合同ゼータ関数

  Z(T)=1/(1-T)(1-pT)

がオイラー積

  ζ(s)=Σn^(-s)=Π(1−p^(-s))^(-1)

に似ているのに対して,

  Z(T)=(1-c(p)T+pT^2)/(1-T)(1-pT)

は,楕円曲線の場合のL関数

  Np=p+1+(誤差項)=p+1+Mp

  c(p)=−Mp

  L(s)=Π(1-c(p)p^(-s)+p^(1-2s))^(-1)

によく似ていることがわかります.

===================================