虚二次体の平方剰余の観察
観察のためのスクリプトを書きました。

d=, p=, q=, d=-2のisogeny

まとめて表にする
d= d=-2のisogeny
p:
q:
qが素元でないときはq/pのみ示します。

[説明] 2と互いに素な素元pに対して「標準形」{p}と「補正形」p* をうまく定めると、 素元p,qに対して 「{q}がmod pで平方剰余 ⇔ p* がmod qで平方剰余」・・・★ という相互法則を成り立たせることができる。 通常の整数環では、{p}は±pのうち正のほう、p*は±pのうち(p*)≡1 (mod 4)を満たすほうと定めると★の形となる。 虚二次体Q(√d), d=-1,-2,-3,-7 の場合について試行錯誤して、 次のように定義すれば、★が成り立つことを上記のスクリプトで観察した。(証明はしていない) [d=-1] [y^2=x^3+x] {q}は ±p,±ipのうち、{q}≡1 (mod 2+2i) となるもの。 p*は{p}と同じ [d=-2 isogeny aの場合] [y^2 = x^3+x^2-3x+1] {q}は±qのうち、{q}≡1,3, -1±√-2,-3±√-2,-1+2√-2,-3+2√-2 (mod 4√-2) となるほう p*は、±p,±p√-2 のうち、 p*≡1,-1+2√-2 (mod 4) または p*≡2±√-2,2±3√-2 (mod 4√-2) となるもの。 [d=-2 isogeny dの場合] [y^2 = x^3-x^2-3x-1] {q}は±qのうち、{q}≡1,3,1±√-2,3±√-2,-1+2√-2,-3+2√-2 (mod 4√-2) となるほう p*は、±p,±p√-2 のうち、 p*≡1,-1+2√-2 (mod 4) または p*≡-2±√-2,-2±3√-2 (mod 8) となるもの。 [d=-3] [y^2+y=x^3] {q}は±qのうち、{q}≡1 (mod √-3) となるほう p*は、±p,±p√-3 のうち、 p*≡1,-1+2√-3 (mod 4)となるもの。 [d=-7] [y^2+xy=x^3-x^2-2x-1] {q}は±qのうち、 {q}≡1,2,4 (mod √-7) となるほう。 p*は、±p,±p√-7 のうち、 p*≡1,-1+2√-7 (mod 4)となるもの。 [補足] ・d=-3,-7のときQ(√-d)の整数環は {a+b√d | a,bは整数} ではない。 a,bが共に半整数、という元もある。 d=-3 のときは (-1+√-3)/2 を1回か2回掛ければa,bを整数にできる。 d=-7 のときは a,bが共に半整数のとき、ノルムが偶数となる。 なので"奇素数"に関する相互法則を観察するにはa,bは整数で十分であった。 (半整数を実装するのが面倒だったのが本音。) ・p/qの計算は、qのノルムN(q)を計算して、p^[N(q)-1/2] mod q を計算している。 なのでqが素元でない場合には、この値は信用できない。[参考値]と表示した。 d=-1,-2,-3,-7以外の場合は素元判定を実装していないので常に[参考値]と表示した。
この非対称的な相互法則の形は、類体論的な視点による: Kの整数環Oのイデアルpに対して、 L/Kのガロア群が(O/p)*に一致し、「素イデアルqがL/Kで完全分解する ⇔ {q}≡1 (mod p)」 を満たすようなアーベル拡大L/Kが存在する(射影類体) pが素イデアルのとき、(O/p)*は巡回群であり、指数2の部分群が1つだけ存在する。それをHとする。 対応する中間体K⊂M⊂Lで、M/Kが2次拡大のものが存在し、それが M=K(√p*) という関係である。 そうして、「素イデアルqがM/Kで完全分解する ⇔ {q}∈H 」という状況となる。 qがM/Kで完全分解するとは、p*がmod qで平方剰余であるということであり、 {q}∈H とは、すなわち{q}がmod pで平方剰余であるということである。 K=Qのときは、L/Kは、1の原始p乗根を付け加えて得られた。 Kが類数1の虚二次体Q(√-d)のときは、大抵、L/Kは対応する虚数乗法を持つ楕円曲線のp等分点の座標を付け加えて得られる。 これは経験的にどうやらそうなるらしいという感触で、根拠が無いし、実際、例外を発見した。(それで「大抵」と書いた) K=Q(√-2)のとき楕円曲線の原始4√-2等分点は16個あるが、その16次式は2つの8次式に分解する。後で登場する。複雑。 次に、標準形{q}の定義を明らかにする必要がある。 「フロベニウスのトレース」が1つの説明となった。根拠は確かでないが、うまくいっている。 N(q)をqのノルムとする。 (x,y)のq倍点、-q倍点のうち、どちらかが、(x^N(q),y^N(q))に合同になる。 すなわち (x^N(q),y^N(q)) ≡ (x,y)の{q}倍点 (mod q) となるように{q}を定めることができる。 これを直接調べるのは手間がかかるが、Q(√d)/Qで分解する素元qについては、 対応する楕円曲線のモジュラー形式のq展開の係数が、{q}のトレースの符号に一致する方として、データベースを利用できる。 ところが「対応する虚数乗法を持つ楕円曲線」というところがまた一意的でない。 Q(√-2)に対応する楕円曲線を得るには、例えばj(√-2)=8000だから、 http://www.lmfdb.org/EllipticCurve/Q/ のj-invariantに8000を入れて検索すれば良い。 そうすると、conductorが最小のものがある意味で「標準的」だと思われるが、 それでもd=-2の場合は、conductorが最小なisogeny class が2つあった。(a,dと名付けられている) http://www.lmfdb.org/EllipticCurve/Q/256/a/ q-2q^3+q^9-6q^11-6q^17-2q^19-5q^25+4q^27+12q^33+6q^41+10q^43-... http://www.lmfdb.org/EllipticCurve/Q/256/d/ q+2q^3+q^9+6q^11-6q^17+2q^19-5q^25-4q^27+12q^33+6q^41-10q^43-...
やや唐突であるが、O/(4√-2) の既約剰余類は16個あり、乗法群はZ/4Z×Z/2Z×Z/2Zの構造をしていて 位数4,2,2の生成元として a=1+√-2, b=-1, c=5 をとることができる。 G = {e,a,aa,aaa, b,ab,aab,aaab, c,ac,aac,aaac, bc,abc,aabc,aaabc} 原始4√-2等分点の1つをPとおくと、16個の原始4√-2等分点は、そのg倍点(g∈G)である。 その16個のy座標が満たす方程式は、2つの8次式に分解する結果であった。 16個のうち、8個のy座標が、その8次式の解となる。 それを調べると、 isogeny a では {e,bc,ab,ac,aa,aabc,aaab,aaac} isogeny d では {e,bc,a,a,aa,aabc,aaa,aaa} であった。 a=1+√-2, b=-1, c=5 を使って既約剰余類の形で書くと isogeny a では {1,3,-1±√-2,-3±√-2,-1+2√-2,-3+2√-2} (mod 4√-2) isogeny d では {1,3,1±√-2,3±√-2,-1+2√-2,-3+2√-2} (mod 4√-2) 赤のkという数字はa^k*b、青のkという数字はa^k*c、緑のkという数字はa^k*bcを表す。 isogeny a の部分群は紫で囲った枠である。 これが、「フロベニウスのトレース」と結びつくことを観察した。 ノルムNの素元qに対して、{q}が上記部分群に属するように{q}=±qの符号を選ぶ。 ノルムが3,11,17,19,41,43の素元q=-1+w,3+w,3+2w,-1+3w,-3+4w,5+3wに対応する標準形{q}が、 isogeny a の場合 -1+w, -3-w, -3-2w, -1+3w, 3-4w, 5+3w isogeny d の場合 1-w, 3+w, -3-2w, 1-3w, 3-4w, -5-3w これらのトレースが実際先のページのModular formの係数に対応していることが観察できる。 isogeny a: q-2q^3+q^9-6q^11-6q^17-2q^19-5q^25+4q^27+12q^33+6q^41+10q^43-... isogeny d: q+2q^3+q^9+6q^11-6q^17+2q^19-5q^25-4q^27+12q^33+6q^41-10q^43-... (これの3,11,17,19,41,43次の係数の符号を、標準形の実部の符号と比較) これはこれで、これが射影類体である。 ここには指数2の部分群が3つあるから、平方剰余の法則が3つ導出できる。 部分群{e,ab,aa,aaab}={1,-1-w,-1+2w,-3-w}に対しては、 これらのy座標の和が生成する2次拡大を計算すると、 K(√-w) である(PARI/GP使用;末尾参照) 従って素イデアルの分解の法則から {q}≡1,-1-w,-1+2w,-3-w (mod 4w) ⇔ -wがmod qで平方剰余 {q}≡3,-1+w,-3+2w,-3+w (mod 4) ⇔ -wがmod qで平方非剰余 部分群{e,ac,aa,aaac}にはK(√w) 部分群{e,bc,aa,aabc}にはK(√-1)=K(√2) が対応する。 スクリプトの「{q}/p,p/qを表示」モードはこれの観察のための実装である。 ----------- isogeny class d を採用した場合、{q}∈となるように標準形を選ぶ。 ノルムが3,11,17,19,41,43の素元q=-1+w,3+w,3+2w,-1+3w,-3+4w,5+3wに対応する標準形{q}が、 isogeny a の場合 -1+w, -3-w, -3-2w, -1+3w, 3-4w, 5+3w isogeny b の場合 1-w, 3+w, -3-2w, 1-3w, 3-4w, -5-3w {q}のトレースが実際先のページのModular formの係数に対応していることが観察できる。 isogeny a: q-2q^3+q^9-6q^11-6q^17-2q^19-5q^25+4q^27+12q^33+6q^41+10q^43-... isogeny b: q+2q^3+q^9+6q^11-6q^17+2q^19-5q^25-4q^27+12q^33+6q^41-10q^43-... ------------- p* の選び方は、試行錯誤的に探した。 (部分群に対応する2次拡大を具体的に計算したり、あるいは辻褄が合うように調整をしてみたり) 表のマスが、"1,1"と"-1,-1"で埋め尽くされた時は、パズルを完成させたような喜びを感じた。 もっと理論的にできたら、より良かったんだけど・・ それから、2次体の平方剰余の相互法則をより一般的に、対称的な形で描写した資料に出会った。 私の結果を含むものと思われるが、内容は詳しくは追えていない。 http://www.fen.bilkent.edu.tr/~franz/rl2/rlb12.pdf
[付録] ・周辺 関連して、志村の相互法則というのがあるらしい。難しい。 初めて多項式の素因数集合の性質に出会った時のことと似ている・・ ・実は、最初の考察では、conductorが最小でないものを使っていた。 ワイエルシュトラスの標準形を使っていた。y^2=x^3-30*x-56 である。 conductorは3を素因子に持つものとなる。せっかくなのでその場合の結果も書いておく。 これを使った場合、標準形と補正は次のように定めると辻褄が合った: q≡±1 (mod 3) ならば {q}≡1,3, -1±w,-3+2w (mod 4w) q≡±w (mod 3) ならば {q}≡-1,-3, 1±w,3+2w (mod 4w) {p}≡±1+w (mod 4) ならば p* = 3w{p} {p}≡±1-w (mod 4) ならば p* = -3w{p} {p}≡1,-1+2w (mod 4) ならば p* = {p} {p}≡1+2w,3 (mod 4) ならば p* = -{p} 3で割った余りが登場するのはそういう事情だったのだと納得した。 「ツイスト」という言葉が合うかもしれないが分からない。 ・PARI/GPでによるisogeny aの場合のコマンド。 E = ellinit([0,1,0,-3,1]) F = x^3+E[2]*x^2+E[4]*x+E[5]-y^2-E[1]*x*y-E[3]*y z = [x,y] q = quadgen(-8) ellmul(E,z,4*q)[1] denominator(%) polresultant(%,F,x) factor(%) Fy = %[5,1] // Fy, 4w等分点のy座標のうち8個が満たす方程式 factornf(F,Fy) p = [ x-%[1,1], Mod(y,Fy) ] // a=1+q, b=-1, c=5 pa = ellmul(E,p,1+q) paa = ellmul(E,pa,1+q) paaa = ellmul(E,paa,1+q) pb = ellmul(E,p,-1) pc = ellmul(E,p,5) pbc = ellmul(E,p,3) pab = ellmul(E,pa,-1) pac = ellmul(E,pa,5) pabc = ellmul(E,pa,3) paab = ellmul(E,paa,-1) paac = ellmul(E,paa,5) paabc = ellmul(E,paa,3) paaab = ellmul(E,paaa,-1) paaac = ellmul(E,paaa,5) paaabc = ellmul(E,paaa,3) subst(Fy,y,pa[2]) subst(Fy,y,pac[2]) // a倍点やac倍点がFyの零点かどうか調べられる u1 = p[2]+pab[2]+paa[2]+paaab[2] u2 = pbc[2]+pac[2]+paabc[2]+paaac[2] lift ((u1+u2)^2/4 - u1*u2) // 256+64*wを出力。部分群{e,ab,aa,aaab}に対応する中間体がK(√256+64*w)だと分かる。 15:48 2019/01/06

ノート一覧
inserted by FC2 system