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