数式処理のために Sage を使う。バージョンは 10.2 である。
sage: version()
'SageMath version 10.2, Release Date: 2023-12-03'
また流儀は以下の通り。
- 用語・記法:
-
$j$ : $j$-不変量を指す。
-
古典的モジュラー多項式 (classical modular polynomial) とは、
ここで、
sage: E = EllipticCurve_from_j(54000)
sage: E.j_invariant()
54000
sage: emb = QQ.embeddings(ComplexField())[0]
sage: L = E.period_lattice(emb)
sage: L.tau()
1.73205080756888*I
sage: L.tau()^2
-3.00000000000000
直接的には以下のように計算できる。(以下のようにしか計算できない。)
sage: def j(tau):
....: return j_invariant_qexp(prec=100).laurent_polynomial()(exp(2*pi*i * tau)).n(prec=100)
....:
sage: j(sqrt(3)*i)
54000.000000000000000019205480
sage: j((1+sqrt(3)*i)/2) # actual value = 0
-5.3221448610759974101135450830e261 - 9.0246840405273862296685225022e230*I
ともかく、
$j(\tau/2) = j((1+\sqrt{-3})/4) = j(-4/(1+\sqrt{-3})) = j(-1+\sqrt{-3}) = j(\sqrt{-3})$ $j((\tau+1)/2) = j((-1+\sqrt{-3})/4) = j(-4/(-1+\sqrt{-3})) = j(1+\sqrt{-3}) = j(\sqrt{-3})$
このことを利用し、
sage: j1 = j_invariant_qexp(prec = 10)
sage: j2 = j1.V(2)
sage: j1
q^-1 + 744 + 196884*q + 21493760*q^2 + 864299970*q^3 + 20245856256*q^4 + 333202640600*q^5 + 4252023300096*q^6 + 44656994071935*q^7 + 401490886656000*q^8 + 3176440229784420*q^9 + O(q^10)
sage: j2
q^-2 + 744 + 196884*q^2 + 21493760*q^4 + 864299970*q^6 + 20245856256*q^8 + 333202640600*q^10 + 4252023300096*q^12 + 44656994071935*q^14 + 401490886656000*q^16 + 3176440229784420*q^18 + O(q^20)
sage: (j1^3+j2^3) - 162000*(j1^2+j2^2) + 1488*j1*j2*(j1+j2) - j1^2*j2^2 + 8748000000*(j1+j2) + 40773375*j1*j2 - 157464000000000
O(q^5)
phi4.sage を実行した結果、
$ sage phi4.sage
Phi_4(j(q), j(-q)) = O(q^4)
誰でも思いつきそうな方法として、
よりよい手法は [BLS2012] などを参照されたい。
2: モジュラー性定理との関連は?
モジュラー性定理は、以下のような定理である。
有理数体
$\mathbb{Q}$ 上のすべての楕円曲線はモジュラーである。
楕円曲線がモジュラーであるという単語の定義には以下のような流儀がある。
- 古典的モジュラー曲線
$\Phi_N(x, y) = 0$ からの全射が存在する。(Wikipedia) - あるモジュラー形式
$f$ が存在し (付随するモジュラー形式とよばれる) q-展開の係数を$f = \sum a_n(f) q^n$ としたとき$a_p = p+1 - |E(\mathbb{F} _ p)|$ が成り立つ。[DdB2011] - L 関数を使ったもの TODO
TODO 全射の構成方法とか、具体例とかに触れたい tsujimotter 氏のブログ (モジュラー曲線(2):合同部分群とモジュラー方程式 - tsujimotterのノートブック) にない例を取り上げる。
- 略証:
$\sqrt{-D}\tau = a\tau+b, \sqrt{-D} = c\tau + d$ とする。行列$\alpha$ を$\alpha = (a,b;c,d)$ で定めると、$j(\alpha\tau) = j(\tau)$ であり$0 = \Phi_{D}(j(\alpha\tau), j(\tau)) = \Phi_{D}(j(\tau), j(\tau))$ である。$\Phi_{D}(x, x)$ はモニックで有理整数係数の多項式であるため、その根たる$j(\tau)$ は代数的整数である。- 詳しくは [Sil1994] の Cor. II.6.3.1 を参照されたい。
- 商空間
- コンパクトリーマン面
TODO: わかりやすい文献
念のため、関数の制約を https://en.wikipedia.org/wiki/Modular_form からまとめておく。
分類 | 英語名 | 制約 |
---|---|---|
モジュラー関数 | modular function | 上半平面上の解析的関数であって |
モジュラー形式 | modular form | 上に加え |
カスプ形式 | cusp form | 上に加え |
https://tsujimotter.hatenablog.com/entry/introduction-to-modular-forms-2 に記載されている。 https://math.stackexchange.com/questions/3951434/generators-of-level-2-modular-forms によると、重さ 2 で level = 2 のモジュラー形式は存在するが、カスプ形式は存在しない。
注意点: level = 2 というのは、群
[BCRS1999] Blake, Ian F., et al. "On the computation of modular polynomials for elliptic curves." HP Laboratories Technical Report, to appear (1999).
[BLS2012] Bröker, Reinier, Kristin Lauter, and Andrew Sutherland. "Modular polynomials via isogeny volcanoes." Mathematics of Computation 81.278 (2012): 1201-1231.
[CMP] https://math.mit.edu/~drew/ClassicalModPolys.html
[DdB2011] TODO
[KIY1998] 小暮淳, 伊豆哲也, and 横山和弘. "Atkin, Elkies らによる Schoof のアルゴリズム改良の実装について (数式処理における理論と応用の研究)." 数理解析研究所講究録 1038 (1998): 230-243.
[Sil1994] TODO