楕円曲線と群は仲がいい: 有理点はアーベル加群
このワークシートはMath by Codeの一部です。
楕円曲線と群はとっても仲がよいのです。
今回はその第1弾
楕円曲線の有理点はアーベル加群
1。前提となるコトバの確認をしよう
<アーベル加群>
さて、超基本から確認しましょう。
群は数とか何かのあつまり、集合、グループで有限の個数でもいいです。
加群はたし算の群のことですね。
つまり、加群というのは、そのグループにたし算というものが定義されていて、
そこには、ゼロ元、逆元もグループに入っていなければなりません。
また、結合法則(A+B)+C=A+(B+C)というやつですね。
アーベル加群は加群の仲でも格上で、交換法則も成り立つグループなんですね。
たとえば、
整数を3で割った余りで分類してみましょう。
0は余りゼロになる数、
1は余り1になる数、
2は余り2になる数
とします。
mod 3のとき、以下の等式が成り立ちます。
0+0=0、0+1=1、0+2=2
1+0=1、1+1=2、1+2=0
2+0=2、2+1=0、2+2=1
だから、{0,1,2}のグループの中の加法はグループからはみ出しません。
また、0をたしたとき、0にたしたときは相手がなんでも相手をそんまま返すので0がゼロ元です。
さらに、1+2=0,2+1=0、0+0=0から、1と2は逆元の関係で、0は0の逆元です。
さっきの9本の式を表のようにみると、右下がりの対角線で線対称なので、交換法則が成り立ちます。
難しいですが、A mod 3の関数をfとすると、f(a)+f(b)=f(a+b)のように+演算の後でも先でも同じになる、つまりfが線形に働くことは明らかです。
つまり、f(A+B)+f(C)=f(A)+f(B+C)=f(A+B+C)から証明できそうですね。
数学では整数の集合をZと書き、nの倍数の集合のことをnZとかきます。
だから、整数を3で割った余りで分類したものをZ/3Zとかき、
割り算の結果できた群なので商群といいます。
このグループの要素数は3だから、次数が3だという言い方もしますね。
<楕円関数の有理点を使ったたし算>
まず楕円関数というの、前にhttps://www.geogebra.org/m/twxxx3yq#material/c3sdzsrgでやったように
y^2=(xの3次式)
の形の方程式で、右辺の(xの3次式)=0が3つの解が異なるものとします。
そうすることで、楕円関数の曲線に多重点(自分と交わる点)や尖点(とんがる点)ができないことがわかっています。
3次方程式のグラフはご存知のようにx軸と1個か3個交わりました。
楕円関数のグラフもx軸と1個か3個交わります。
楕円関数の解というのは点(x、y)が曲線にぴったり乗っかっているもののことです。
だから、楕円関数の有理点というのは曲線上の点で座標が有理数(分数)のものですね。
さて、いよいよ、この点たちのたし算を定義することで、
点たちのグループがたし算でアーベル群になるというお話しが始まります。
パチパチパチ
2.楕円曲線の有理点のたし算がアーベル群になること
たし算の舞台は楕円関数です。
たし算のステージに登場する選手は点です。
点と点があつまって、さて、どんなグループができるのでしょう。
<2点の和>
まず、舞台1の3次式は
(x+1)(x^2-x+1)=x^3+1です。
E: y^2=x^3 +1
texでかくと、
geogebraで確認しましょう。
E: y^2=x^3 +1
P=(-1,0)
Q=(0,1)
R=(2,3)
S=(2,-3)
Line(P,Q) #青い直線PQに
Vector(R,S) #赤い矢線RSにする。
x軸と1点だけできれいに交差し、x軸対称の美しい式です。
y軸とは2点で交差します。
さて、ここで、4点P,Q,R,Sは曲線E上にあり、座標が有理数ですから有理点ですね。
ここで、直線PQ(青線)に着目すると、RはPQがEと交わった点ですね。
そこで、Rの設定>ラベルを「PQ」として、PQの交わりという意味がわかるようにしましょう。
次に、Sはx軸についてのRと線対称の点ですね。(赤いベクトルの動きに着目)
このSの設定>ラベルを「P+Q」にしましょう。
つまり、2点を「つないで伸ばしてぶつかった点を上下ひっくりかえした点」が「2点の和」です。
最初から、Rが有理点だとわかってました。有理点を2点の和にしたわけです。
有理点と分かってなくて、この方法で決めた2点P,Qとその和の点をRとしたとき、Rも有理点になるのは
なぜでしょうか。
P,Q,Rのx座標をp,q,rとしましょう。
PQを通る直線の方程式は有理係数の1次式になるので、Rの座標は(x、ax+b)のようにかけます。
このをEの方程式に代入して整理すると、xの3次方程式ができますね。解と係数の関係から、
p+q+r=係数の式=有理数です。p+qが有理数ですから、rも有理数になりますね。
また、rは直線PQ上の点でもあるので、y座標はar+bで有理数になります。だから、Rも有理点になるのですね。
楕円曲線:y^2=x^3+1で2点の和P+Q
<点Oは無限遠点>
曲線C : f(x,y)=0にx=X/Z, y=Y/Zを代入して、Z^deg(f)を両辺にかけた曲線D: F(X,Y,Z)=0を
Eの射影モデルといいます。
この変換でF(X,Y,Z)=0の式は同次式(変数の次数が等しい式)になるのです。
すると、
曲線Cの点(a,b)は曲線の点(a,b,1)に対応します。
曲線Cの無限遠点は曲線Dの点(0,1,0)に対応します。
なぜ唐突に射影変換の話をしたかというと、
1平面の原点から無限に遠くでは、1つの点のように扱えるというイメージを持ってほしいからです。
まだ、ピンとこなければリーマン球を思い出してください。
1つの複素平面が1つの球に写像されて、
無限に遠くの部分がリーマン球では北極の1点になっているイメージです。
つまり、文字だけみるとOは原点Oとごっちゃに見えますが、
むしろ、点Oは無限遠点∞
というイメージを持ってほしいのです。
前置きはこのくらいにしましょう。
この∞イメージの点Oがゼロ元です。
だから、
さっきの舞台に1点Oを追加しましょう。
E: y^2=x^3 +1
P=(-1,0)
Q=(0,1)
R=(2,3)
S=(2,-3)
Line(P,Q) ♯グレーで薄くする
無限大は無理ですね。
Oq=(0,1000000)
これがQからみた∞の点Oの代用です。
T=(0,-1)
Line(O_q,Q) #青い直線OQ
Vector(T,Q) #赤い矢印
2点O,Qの和が交わる点はTになりますね。
Tの設定>ラベルはOQです。
さて、OQのx軸で線対称な点O+QはQです。
もとに戻ってしまいました。
つまり、O+Q=Q
Qの設定>ラベルをQ=O+Qにする。
Oがゼロ元になってますね。
ここで、疑問がわきますね。
あれっ?
楕円関数の曲線上にある有理点の話をしてたはずなのに、曲線からはずれてるじゃないか?
という声が聞こえそうです。
点Oは点でもありながら、無限に遠くにある点のあつまりというイメージも必要です。
そう、楕円関数を上下に伸ばしていくと、無限に伸びます。
つまり、
点Oは必ず楕円関数の有理点
なのです。
無限大の数が有理数かどうかわからないじゃないか!
そんな声も聞こえてきそうですが、
Oは大きさもゼロという意味を込めて使いますから、∞なのに大きさ0つまり、有理数として
鷹揚に扱いましょう。
楕円曲線でO+Q=Q
次は逆元ですね。
<Qの逆元はTだった?>
さいしょの2点P,Qの和の図を少しアレンジすることで、
P+Qではなく、T+Qを考えましょう。
Q=(0,1)でT=(0,-1)
そのために、PをTまで動かすのです。
設定はこうです。
E: y^2=x^3+1
n=slider(0,100,1) #100にして保存します。
O2=(n,100)
h: Line(O2,Q) #青い直線
Intersect(E,h) =A # PQが交わる点だから設定>ラベルをPQにする。
A’=Reflect(A,x軸) ♯設定>ラベルはP+Q
Vector(A,A') #赤い矢印で和を指す。
さて、ここからがドラマです。
nを減少させると、点Pが点Tに近づきますね。
点PQは曲線Eを上昇し、和である対称点P+Qは下降します。
この極限を想像してみてください。
点Pが点Tに一致します。
点PQはTQの意味となり、∞つまり点Oとなりますね。
そしていよいよ、和である対称点はP+QはT+Qの意味となり、-∞つまり点Oとなります。
平面では∞はプラスもマイナスもなく同じ点ですね。
これを式でかきましょう。
T+Q=Oです。
つまり、
対称点は逆元だったのですね。
T=-Q。
だから、Tのラベルも変えましょう。
楕円曲線でT+Q=O
次は結合法則
図がややこしいですが、
楕円関数のx軸対称性と和の手順をていねいに追っていこう。
<結合法則>
説明のしやすさから
舞台は
E:y^2=x3-x=(x-1)x(x+1)にします。
なぜかというと、x軸と3点で交わっているので、交点を作りやすいからです。
有理点かどうかは不問にして、点の位置関係だけを見てください。
A=(-0.9,0.41) # 設定>ラベルをQにします。
B=(-0.2,0.44) # 設定>ラベルをRにします。
A'=Reflect(A,x軸)#設定>ラベルをPにします。
B'=Reflect(B,x軸)
ここで、
青線PRとEの交点ラベルをPRとして、赤いベクトルの先の対称点のラベルをP+Rと書きます。
青線QRとEの交点ラベルをQRとして、赤いベクトルの先の対称点のラベルをQ+Rと書きます。
これら2点をB’を通る緑の線で結びましょう。
Eの対称性から、
点B’をかなめとして、
点Pと点Q+Rを結ぶ緑線と
点Qと点P+Rを結ぶ緑線が通ります。
だから、点B’のラベルはP(Q+R)=(P+R)Q
点B’から赤いベクトルを伸ばした先は対称性から点Rです。
点Rのラベルをはるとしたらどうなるでしょうか。
名前づけのルールからすると和です。
つまり、P+(Q+R)=(P+Q)+R
とうことは、R=P+Q+R
です。
代数的には
PとQは逆元ですから、P+Q=Oです。
だから、R=R
というトートロジーに帰着するので、正しいことがわかりますね。
geogebraで、A,Bのちょうどよい座標をさがすのは大変なので、
具体的には次のようにしましょう。
a=slider(-1,-0.7,0.1)
A=(a, sqrt(a^3-a))
b=a+0.7
B=(b, sqrt(b^3-b))
こうしてスライダーaを調整したり、
b=a+0.7の0.7の部分を少し変えることで、イメージに近い画面を作ろう。
これで、
交換できるたし算の定義で閉じている、
ゼロ元がある、
逆元がある、
結合法則が成り立つ。
楕円関数という舞台で、あちこちにいる選手たち、
有理点たちがたし算をしてできるグループはアーベル加群だ
と言い切れますね。
楕円曲線と群はとっても仲が良い。
第一弾終了。