楕円曲線と群:有限体上の解とガロア表現
このワークシートはMath by Codeの一部です。
前回は、n等分点のガロア群をガロア表現にすることで、しくみがクリアにわかりました。
x^3-2=0の解は1の3乗根の1つω=-1/2+1/√3 i と2の3乗根s=cbrt(2)をとして、
E:y^2=x^3-2の2等分点はO∞、A=(s,0), B=(sω,0), C=(sω^2,0)の4点で、
ガロア群S3={e, r:(1 2 3), w:(1 3 2), u:(1 2) , v:(1 3) ,t :(2 3)}の6つの置換に対応する
A,Bを基底として格子点の動きを行列にしてみると、
ガロア表現はe;{{1,0},{0,1}} ,r:{{0,1},{1,1}} ,w:{{1,1},{1,0}},{u:{0,1},{1,0}}, v:{{1,1},{0,1}},t:{{1,0},{1,1}}
と1対1に決まってしまうことを学びました。
今回は有限体上の点の個数をガロア表現を使って、その秘密をさぐっていきましょう。
1.F5とF7で調べてみる
今まで、5以上の素数pを法として合同な整数が作る体Fp上の楕円曲線Eの解の個数をNpと名付けるとき、
ap=(p+1)-Npという、Npがp+1より下回るズレを表した。
ガウスの定理があったね。
pがガウス整数Z[i]の素数(4で割って3余る数)ap=0ピッタで、
pがガウス整数Z[i]での合成数(5=(1+2i)(1-2i)のようにpが4で割って1余る)ならap=2q
(p=q^2+r^2と平方数の和に分解したときに、q+r-1が4の倍数になる)
前回と同じ楕円曲線Eを使って探ってみます。
<F5で調べる>
p=5の有限体F5でさぐっていきましょう。
N5 = 8だったので、ap=(5+1)-8=-1です。
これをガロア表現とつなげられたらいいですね。
類体論のキーワードで「フロベニウス変換」を以前学びましたね。くわしくはこちら、https://www.geogebra.org/m/twxxx3yq#material/cr8tqsmq
1の原始n乗根をζnとするとき、有理数体Qのアーベル拡大Q(ζn)/Qのフロベニウス変換φpは
nを割り切らない素数pで、ζn→(ζn)^pのp乗変換でした。
「クロネッカー・ウェーバーの定理」から、アーベル拡大K/Qは必ずQ[ζn]に含まれるのでした。
Gal(K/Q)でのφpはGal(Q(ζn)/Q)でのφpの制限になるという結論がでてました。
つまり、フロベニウス変換はアーベル的なガロア拡大Gal(K/Q)の親玉なのですね。
さっそく、このフロベニウスφ5で、有限体F5の点をかきまぜましょう。
有限体の要素をxとすると、φ5(x)=x^5ですね。
F5はZ5を体にしたものでした。だから、mod5です。そうなんです。
フェルマーの小定理からx^5≡5(mod 5)ですから。
F5の点にφ5をしても何も変化がないのです。
その代わり、F5にE[2]の4点を追加して拡大してみよう。
拡大体F5(E[2])でフロベニウスφ5でかき混ぜるとどうなるでしょうか?
F5の中でのx^3ー2の根としての拡大でしたから、「複素数の中での2の3乗根」ではありません。
F5の中での2の3乗根です。{1^3,2^3,3^3,4^3(mod5)}≡{1,8,27,64}(mod 5)≡{1,3,2,4}です。
だから、x^3≡2(mod5)の解はx=3です。
ということは、A,B,Cはみな(3,0)の1点になり、x^5=3^5=3^3*3^2=2*9=18≡3(mod 5)です。
つまり、E[2]も動かなりです。なにも新しい情報が生まれません。
<F7で調べる>
p=7の有限体F7でさぐっていきましょう。
N7 = 9だったので、ap=(7+1) - 9=-1です。
あとで種明かししますが、ap=-1≡1(mod 2), p=7≡1(mod2)なので、
ガロア表現から1と1を出したいのです。
このフロベニウスφ7で、有限体F7の点をかきまぜましょう。
F7の点にφ7をしても何も変化がないので、ここは調べません。
F7にE[2]の4点を追加して拡大してみよう。
拡大体F7(E[2])でフロベニウスφ7でかき混ぜるとどうなるでしょうか?
F7の中でのx^3ー2の根としての拡大でしたから、
F7の中での2の3乗根です。{1^3,2^3,3^3,4^3,5^3,6^3(mod7)}
≡{1,8,27,64,125, (-1)^3}(mod 7)≡{1,1,6,1,6}です。
sは2の3乗根でしたから、s^3=2
2^3≡1, 4=2^2(mod 7)なので、ω=2、ω^2=4 としましょう。
だから、A(s,0),B(2s,0),C(4s,0)とおけますね。
A(s,0)のφ7(s)=s^7=s^3*s^3*s=2*2*s=4sです。A(s,0)→(4s,0)=Cです。
B(2s,0)のφ7(2s)=2^7*s^7=(2^3)^2*2*4s=8s=s (mod 7)です。B(2s,0)→A(s,0)
C(4s,0)のφ7(4s)=4^7*s^7=2^14*4s=(2^3)^4*2^2*4s=16s=2s(mod 7)です。C(4s.0)→B(2s,0)
A+B=Cとして、A、Bを基本として行列を作りましょう。
φ7はS3のw:(1 3 2)と同じですから。ガロア表現は{{1,1},{1,0}}です。
この行列式ad-bc=1*0-1*1=-1≡1≡7=p(mod2)
トレース(主対角成分の和)=1+0=1≡-1=ap(mod2)
2等分点E[2]で調べた都合上mod2でしかないので、まだかすかな感じですが、
法pを変えたりと2等分点をl等分にとすると、
フロベニウス変換φpのガロア表現ρtについて
det(ρt)=p (mod l),
Tr(ρt)=ap (mod l )
という法則に合っていることがわかりますね。
この法則はどこからやってきたのでしょう?
2.象を見る
さっきまではmod5でF5、mod 7でF7と網を細かく刻んできました。
法lを上げて網目を細かくすると解像度が上がり、無限にlを大きくしたら?
きれいな画像が見えるでしょう。
画像には「大きな象」が映るでしょう。
だったら、最初から、lを具体的な数値にすることは忘れて象を見たいですよね。
それができるのです。
一寸、Fpのことは忘れて、φpを複素数C全体で考えて、行列 Mの固有値を求めるための式
det(T・IーM)=0をφpのフロベニウス行列 ρlで作ってみましょう。
det(T・IーM)=T^2-Tr(ρl) T+det(ρl)
ここで、Tr(ρl)=ap, det(ρl)=pとおきましょう。
複素数T上の固有2次方程式T^2-apT+p=0ができます。
固有方程式なので、代数方程式のように因数分解します。
2つの解をα,β(共役複素数)とすると、解と係数の関係から、
ap=α+β,
p=α*β
となりますね。
つまり、行列ρtで
Tr(ρl)=ap=α+β
det(ρl)=p=α*β
解の和がズレapで、行列のトレースになり、解の積がFpのpで行列式になるのです。
<ガウス定理とつながる>
固有値の和と積につながることがで、ガウスの定理とのつながりもわかります。
α,βは共役複素数なので、
α=q+ri, β=q-riとおきましょう。
ap=α+β=(q+ri)+(q-ri)=2q
p=α*β=(q+ri)*(q-ri)=q^2+r^2
これって、ガウスの定理そのまんまつながります。
mod lのlを3,5,7、......と増やして調べる必要もありません。
T^2-apT+pのTを1/Tにした式
1-apT+pT^2は「局所ゼータ関数」という
どこかで見たことのあるゼータ関数という名前がついてます。
<振り返り>
ゼータ関数というと切れ味がいいけど、人類に問を投げかけてきた張本人です。
その親戚だと思ってください。
バーゼル問題、オイラー定数、リーマン予想、。。。。
そうです。この局所ゼータ関数も「謎の象」だったのです。
そのため、地道にlを増やしていくという方法よりましで、
局所ゼータ関数よりは「根拠の明確な方法」が探られました。
それが「p進テイト加群」です。
舌を噛みそうですね。これは次回、ドローンでさくっと見物してみよう。
課題:4で割って1余る素数pの平方数和分解と
T^2-apT+p=0の2解をgeogebraでつなごう。
タイトルは「有限体Fp上の楕円曲線の解の個数のズレとガウスの定理と固有方程式」
#ap=2qになる素数pをガウス整数環の素数α、βの積で表すとき
#p=αβ=(q+r i)(q-r i)で、qが奇数とする。
#解と係数の関係から固有2次方程式がかける。
#固有2次方程式の2解を解いて表示することもできる。
array= Sequence(1+4k, k,1,20)
ps=KeepIf(IsPrime(k),k,array)
n=slider(1,Length(ps))
p=Element(ps,n) #p
qs=Sequence(k,k,1,sqrt(p),2) #qの候補
rs=Zip(sqrt(p-k^2),k,qs) # sqrt(p- q^2)のリスト
rsN=Zip(ceil(k),k,rs) #rsを切り捨てた整数のリスト
res=Zip(k-s,k,rs,s,rsN) #差が0なら合格
idx=IndexOf(0,res)
q=Element(qs,idx)
r=Element(rs,idx)
ap=2 q
α=q+ri
β=q-ri
f(x)=x^2- ap x + p
ftxt=Formulatext(f)
text1="素数"+p+"のap="+ap+"固有方程式は"+ftxt+""
#これで、有限体Fp上の楕円曲線の解の個数Npとp+1のズレapと
#ガウスの定理、ガウス整数環、行列の固有値としての2つの複素数がつながったね。
スライダーを動かして、次々に姿を変える固有方程式の美しさを、ぜひ手元で実感してみてください!
<お得な情報>
geogebraアプレット作成に興味のある人は、中ほどの数行のqsのあとのZip3連発とIndexOfコマンドに
注目してください。
これはふつうの言語の「for文をまわして、見つけたらそこでq,rとして取り出す」
という定型パターンのgeogebra版で、筆者Zenが独自に見つけたロジックですが、
ぜひ流用してみてください。