Google ClassroomGoogle Classroom
GeoGebraGeoGebra Classroom

楕円曲線と群は仲がいい: 有理点はアーベル加群

このワークシートは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の部分を少し変えることで、イメージに近い画面を作ろう。 これで、 交換できるたし算の定義で閉じている、 ゼロ元がある、 逆元がある、 結合法則が成り立つ。 楕円関数という舞台で、あちこちにいる選手たち、 有理点たちがたし算をしてできるグループはアーベル加群だ と言い切れますね。 楕円曲線と群はとっても仲が良い。 第一弾終了。

楕円曲線でたし算の結合法則