tsujimotterのノートブック

日曜数学者 tsujimotter の「趣味で数学」実践ノート

曲線と関数体 (1):楕円曲線はなぜ3次曲線で表せるのか?

楕円曲線とは(細かいことを抜きにして言えば *1

 Y^2 = X^3 + aX + b

という式で表される曲線のことです。上の方程式のことを、楕円曲線の定義方程式といいます。


時と場合によって微妙に定義式の書き方が異なったりますが、左辺の  y の指数はいつも 2乗 になっていて、右辺の式はいつも決まって 3乗 になっています。

なぜこんな形の式を考えるのでしょう。

楕円曲線について勉強した人は、一度くらい、このような疑問を持つのではないでしょうか。


ところで、楕円曲線の定義として、以下のものを思い浮かべた方もいるかもしれません。

種数1の非特異射影代数曲線を楕円曲線という

上記の定義には、定義方程式の形が一切出てきませんが、冒頭の定義と一致するのでしょうか。


ここでは、種数1 という情報がポイントです。ほぼこの情報だけから、楕円曲線の定義方程式の形状が決定されるのです。

代数曲線の理論には、リーマン・ロッホの定理 という重要な定理があって、楕円曲線の上で定義される関数の空間の次元を、種数を用いて特定することができます。特定した関数の空間における関係式を用いて、定義方程式を決定することができるのです。

ざっくりと流れを説明しましたが、以降で詳しく解説します。


関数体とは

まずは 関数体 という概念を導入したいと思います。


代数幾何学という分野では、曲線とその上の関数という概念がセットで重要です。今回の記事の話が理解できると「曲線のことを知りたかったら、その上の関数を考えよう」というアプローチが自然であることが実感できるでしょう。


勿体振りましたが、関数体の説明をします。関数体とは、要するに「曲線の点に対して何か値を定める関数全体」のなす体のことです。

イメージしやすいように具体的な曲線を設定して説明することにしましょう。楕円曲線  E

 E\colon y^2 = x^3 - x

とします。このとき、座標  x, y としては複素数  \mathbb{C} の値をとるか、無限遠点をとるか、のいずれかとします。

(複素数を表すのは困難なので)実数の点に限った図を表すと、こんな感じになりますね。

f:id:tsujimotter:20190629231532p:plain:w320


さて、この楕円曲線は、右辺が3次式になっています。因数分解すると

 E\colon y^2 = (x + 1)x(x - 1)

となります。したがって、 y = 0 のとき、 x = -1, 0, 1 となります。

ここで、 E の点に名前をつけることにします。 x 座標の値が  x であるような点を  P_x とします。といっても、一般には2通りありますから、 y 座標が正の点を  P_x として、 y 座標が負の点を  P_x' とします。つまり、こういうことです。

f:id:tsujimotter:20190629232623p:plain:w320

ここで、 x = -1, 0, 1 のときは  P_x = P_x' となります。 P_x = P_x' となるような点のことを分岐点といいます。

なお、楕円曲線には無限遠点がありますが、これを  P_\infty と表記すると、 P_\infty も分岐点となります。


次に、楕円曲線  E の任意の点  P \in E に対して、その  x 座標を取り出す関数  X を考えましょう。関数  X は、 E の点  P = (x, y) に対して、複素数  x \in \mathbb{C} を割り当てる関数だと思えます。

 \begin{matrix}X\colon &E &\to &\mathbb{C}, \\
& P & \mapsto & x \end{matrix}

同様に、楕円曲線  E の任意の点  P = (x, y) \in E に対して、その  y 座標を取り出す関数  Y を考えます。

 \begin{matrix}Y\colon &E &\to &\mathbb{C}, \\
& P & \mapsto & y \end{matrix}


この  X Y というのは、 E の関数の一例です。「座標を取り出すという操作は  E の関数である」という見方が重要です。


関数  X, Y を手に入れたら、これを組み合わせてさまざまな関数を作ることができます。 X, Y を変数とする  \mathbb{C} 上の多項式

 f(X, Y) \in \mathbb{C}[ X, Y ]

 E の関数です。つまり、 E 上の任意の点  P に対して、 f(X(P), Y(P) ) として関数の値を定めることができます。


一方で、 X, Y は独立ではないことに注意します。 X, Y には

 Y^2 = X^3 - X

なる関係があるので、多項式関数に対してこれらを同一視するような関係を入れて、多項式環  \mathbb{C}[X, Y] を割ってあげる必要があります。

そこで、 E座標環

 \mathbb{C}[E] := \mathbb{C}[X, Y]/(Y^2 - X^3 + X)

と定義することにしましょう。これは、 X, Y の関係式を踏まえた、 E の多項式関数全体を表す環だと思うことができます。

これはつまり、 \mathbb{C}[E] という集合の中では、 Y^2 - X^3 + X 0 だと思えるということです。

たとえば、 Y^2 という関数は  X^3 - X と合同になります。

ということは、 Y の 2 次以上の項はすべて  X の多項式で表せることになります。

つまり

 \mathbb{C}[E] \simeq \{ f(X) + g(X)Y \mid f(X), \; g(X) \in \mathbb{C}[ X ] \}

と表せるということですね。


座標環の任意の元に対する(分母が0にならない)有理式、すなわち有理関数全体

 \displaystyle \mathbb{C}(E) := \left\{ \frac{f(X, Y)}{g(X, Y)} \; \middle| \; f(X, Y), \; g(X, Y) \in \mathbb{C}[ E ], \;\; g \neq 0  \right\}

 E の関数だと思うことができます。この、 \mathbb{C}( X, Y ) のことを  E関数体 といいます。今回は、この関数体が主役になります。
一般に、係数を代数閉体  K とした場合、 E の座標環を  K[E] 、関数体を  K(E) で表記します。以降の議論は、基本的には  K = \mathbb{C} とした特殊な場合を考えていますが、一般の代数閉体  K としても同様な議論は成り立つと思っていただいて大丈夫です。

 E の関数体   \mathbb{C}(E) について、これから調べていくことにしましょう。


零点・極の位数

先ほど定義した  E の関数に、零点と極という概念を導入します。

関数  h \in  \mathbb{C}(E)零点 とは、 h(P) = 0 となる点  P \in E のことです。また、 1/h(P) = 0 となる点  P \in E h と言います。


たとえば、 Y という関数の零点を求めましょう。すなわち、 Y(P) = 0 となる点を探します。先ほどの楕円曲線の図で  y = 0 との交点を考えると、 x = -1, 0, 1 でした。すなわち

 Y(P_{-1}) = 0
 Y(P_{0}) = 0
 Y(P_{1}) = 0

です。このとき、関数  Y P_{-1}, P_{0}, P_{1}1位の零点 を持つといいます。


同様に、関数  X の零点を求めましょう。すなわち、 X(P) = 0 となる点を探します。これは明らかに  P_0 ですね。すなわち

 X(P_0) = 0

です。このとき、関数  X P_02位の零点 を持つといいます。これは、 P_0 = P_0' であり、重なった2つの点で零点を持つと言うことで、合わせて 2 位というような計算です。
(こんな感じで、関数が分岐点に零点を持つ場合は、位数は2以上となります。)


また、 Y の極を求めたいのですが、関数  Y P_{\infty} で極を持ちます。これはつまり、無限遠点では  1/Y(P_{\infty}) は 0 になるということですね。そのときの位数は(天下り的ですが) 3 となります。

 X の極も同様に  P_{\infty} に極を持ち、(結論だけを言うと)その位数は  2 となります。*2


重要な結論なので、以上をまとめておきましょう。

  • 関数  X P_0 2 位の零点を持ち、 P_\infty 2 位の極を持つ。
  • 関数  Y P_{-1}, P_0, P_1 1 位の零点を持ち、 P_\infty 3 位の極を持つ。

ここで重要な観察事実として、どちらの関数でも

(零点の位数の合計)=(極の位数の合計)

となっていることに注意します。これは今回の記事で直接関係しませんが、続編の記事ではこのことを使う予定です。


また、関数  X, Y を考えましたが、 X Y を組み合わせた多項式や有理関数も同様に位数を計算できます。

たとえば、 X, Y P_\infty にそれぞれ位数  2, 3 の極を持ちます。このとき

 XY

という関数は、 P_\infty に位数  2+3 = 5 の極を持ちます。

商を考えると

 \displaystyle \frac{Y}{X}

位数  3 - 2 = 1 の極を持つ関数ができます。

また、和や差をとると、位数が大きい方になります。

 \displaystyle X + Y

この場合、極の位数は  \max(2, 3) = 3 となります。


こんな要領で、 X, Y の有理関数、すなわち関数体の任意の元の位数を決定することができます。

ベクトル空間  L(mP_{\infty})

位数の説明ができたので、 P_\infty に特定の位数の極を持つような関数全体の空間を考えたいと思います。

自然数  m に対して  L(mP_{\infty})

 P_\infty において高々  m 位の極を持つ  \mathbb{C}(E) の元全体の集合」

とします。たとえば、 L(3P_{\infty}) には、 P_\infty において位数 0 か 1 か 2 か 3 を持つ関数が入るというわけです。


ここで  L(mP_{\infty}) という空間は、単なる関数の集合なだけでなく、 \mathbb{C} ベクトル空間 でもあります。これが極めて重要です。ベクトル空間なので次元という量が定義できます。次元が定義できると、ベクトル空間についてのかなりの情報がわかるのです。


ベクトル空間  L(mP_{\infty}) の次元  \operatorname{dim} L(mP_{\infty}) を計算できるのが、リーマン・ロッホの定理 です。

リーマン・ロッホの定理は、曲線の 種数 と、標準因子という概念を使って、上記のベクトル空間の次元を決定する公式を与えます。なお種数は、今回は楕円曲線を考えているので、 1 であると考えてください。


残念ながら、今回の記事では「因子」という概念を定義できないので、リーマン・ロッホの定理のフルステートメントを書くことができません。

以下では、今回のケースに特化した限定的なリーマン・ロッホの定理の系を紹介したいと思います。今回の目的では、限定的な主張でも十分だからです。

系(限定的なリーマン・ロッホの定理)
 g を曲線の種数とし, m > 2g - 2 のとき次が成り立つ:
 \operatorname{dim} L(mP_{\infty}) = m - g + 1


それでは、リーマン・ロッホの定理の威力をお見せしましょう。まず、今回のケースでは  g = 1 なので

 \operatorname{dim} L(mP_{\infty}) = m

とかけることに注意します。


 m = 1 のときはリーマン・ロッホより  \operatorname{dim} L(P_{\infty}) = 1 です。したがって、基底は1つです。 また、明らかに定数関数は極を持たないので、 L(P_{\infty}) の元になります。したがって

 L(P_{\infty}) = \mathbb{C}

であることがわかります。

たったこれだけで決定できてしまうのです!


次に  m = 2 のときはリーマン・ロッホより  \operatorname{dim} L(2P_{\infty}) = 2 です。したがって、基底は2つです。ここで、明らかに定数関数は  \operatorname{dim} L(2P_{\infty}) の元です。よって、基底の一つは  1 です。もう一つの基底ですが、我々は「 P_\infty で位数2の極を持つ関数」を一つ知っています。関数  X ですね!よってこれがもう一つの基底となって

 L(2P_{\infty}) = \mathbb{C} + \mathbb{C}X

が言えます。


同様に  m = 3 のときを考えましょう。リーマン・ロッホより  \operatorname{dim} L(3P_{\infty}) = 3 であり、3つのうち2つの基底は  1, X です。もう一つの基底ですが、これは「 P_\infty で位数3の極を持つ関数」ですから、すなわち関数  Y です!よって

 L(3P_{\infty}) = \mathbb{C} + \mathbb{C}X + \mathbb{C}Y

が言えます。


いやーすごいですね!

ベクトル空間の性質により、次元が決定できれば空間の構造が決定できてしまいます。その次元を決定できるのがリーマン・ロッホなわけですから「リーマン・ロッホすごい!」というわけですね。


さらに続きます。

 m = 4 のとき、リーマン・ロッホより  \operatorname{dim} L(4P_{\infty}) = 4 です。ここで新しい基底ですが、 X^2 を考えましょう。 X は、極の位数が 2 ですが、かけ合わせると位数が

 2 + 2 = 4

となります。よって

 L(4P_{\infty}) = \mathbb{C} + \mathbb{C}X + \mathbb{C}Y + \mathbb{C}X^2

が言えます。


同様に  m = 5 のとき、リーマン・ロッホより  \operatorname{dim} L(5P_{\infty}) = 5 です。 XY を考えると、これは

 2 + 3 = 5

が位数となります。よって

 L(5P_{\infty}) = \mathbb{C} + \mathbb{C}X + \mathbb{C}Y + \mathbb{C}X^2 + \mathbb{C}XY

が言えます。


最後に  m = 6 で終わりにしましょう。リーマン・ロッホより  \operatorname{dim} L(6P_{\infty}) = 6 です。 X^3 を考えると、これは

 2 + 2 + 2 = 6

が位数となります。よって

 L(6P_{\infty}) = \mathbb{C} + \mathbb{C}X + \mathbb{C}Y + \mathbb{C}X^2 + \mathbb{C}XY + \mathbb{C}X^3

が言えます。

楕円曲線はなぜ3次曲線で表せるのか?

さてここで、この記事でもっとも重要な帰結が得られました。

 L(6P_{\infty}) = \mathbb{C} + \mathbb{C}X + \mathbb{C}Y + \mathbb{C}X^2 + \mathbb{C}XY + \mathbb{C}X^3

定義を思い出すと、 L(6P_{\infty}) の定義は

 P_\infty で高々位数  6 の極を持つ関数全体のなすベクトル空間」

でした。


ところで、 Y^2 という関数を考えると

 3 + 3 = 6

より、位数  6 の極を持ちます。つまり

 Y^2 \in L(6P_{\infty}) = \mathbb{C} + \mathbb{C}X + \mathbb{C}Y + \mathbb{C}X^2 + \mathbb{C}XY + \mathbb{C}X^3

というわけです。


ということは、 Y^2 という関数は、右辺の6つの基底を使って

 Y^2 = a_0 + a_1 X + a_2 Y + a_3 X^2 + a_4 XY + a_5 X^3
(ここで、 a_0, a_1, a_2, a_3, a_4, a_5 \in \mathbb{C} とする)

と表せるはずです!おおっ、これは右辺が  X の3次式になって、左辺が  Y の2次式になっていますから、定義方程式の形にかなり近いですね!


 X^3 の係数  a_5 1 でないことが気になるかもしれませんが、その場合は

 X \mapsto X/a_5
 Y \mapsto Y/a_5

と変換することで、 a_5 = 1 とできます。他の係数も適当な変数変換で消すことができるので、冒頭の楕円曲線の定義方程式が得られます!すごい!!

係数の消し方の方法はこちらに乗っていました。
http://wasmath.la.coocan.jp/weierstrass_form.pdf


楕円曲線が、 Y が 2 次で、 X が 3 次だったわけは

 2 + 2 + 2 = 3 + 3 = 6

という式にあったというわけです!

面白いですね!

なんだ、まるで「萩の月問題」じゃないか!
www.nicovideo.jp


見方を変える

この辺で話を終わりにしたいところですが、一つ気になる点があります。

今回の話は、種数1である曲線からスタートして、リーマン・ロッホの定理を使って  L(mP_\infty) の各次元を決定しました。そこから  L(6P_\infty) の基底を具体的に決定することで、元々の曲線の定義方程式を得ることができました。

以上によって

種数1の曲線が楕円曲線の定義方程式を満たすことが示せた
・・・ように見えます。


ところがです。ここでよーく手順を思い出していただきたいのですが、 L(2P_\infty), L(3P_\infty) を決定する手順で、少しまずい点があるのです。

関数  X, Y の位数の情報を使ってしまっている点です。あらかじめ計算した  X, Y の位数は、あらかじめ定義方程式を与えた上で計算した結果でした。

つまりこういうことです。

定義方程式  \longrightarrow X, Yの位数  \longrightarrow  L(mP_\infty)  \longrightarrow 定義方程式

という流れになってしまって、今回の「定義方程式を与える」という目的からすると、循環論法になっています。


循環論法になってしまいました。これじゃあダメだ、と諦めてしまいそうですが、回避する方法があります。それは、 X, Y という関数を一切使わない という方法です。


議論の流れを思い出します。リーマン・ロッホを使って、 L(P_\infty) = \mathbb{C} が計算できるところまではオーケーです。

 m = 2 ですが、リーマン・ロッホより  \operatorname{dim} L(2P_\infty) = 2 が得られるまではいいでしょう。ここで、定数関数  1 L(2P_\infty) に属するのもオーケーです。

問題はこの次です。関数  X を使ったのがまずかった点です。次のように考えましょう。

 L(2P_\infty) は次元の比較により  L(P_\infty) より真に大きいので、 L(2P_\infty) \setminus L(P_\infty) の元  f をとることができます。この元は、(  L(P_\infty) に入ってないので)極の位数が 2 でなければなりません。よって

 L(2P_{\infty}) = \mathbb{C} + \mathbb{C}f

が成り立ちます。

同様に、 m = 3 を考えます。この場合も、 L(3P_\infty) は次元の比較により  L(2P_\infty) より真に大きいので、 L(3P_\infty) \setminus L(2P_\infty) の元  g をとれます。この元は、極の位数が 3 でなければなりません。よって

 L(3P_{\infty}) = \mathbb{C} + \mathbb{C}f + \mathbb{C}g

が成り立ちます。

次以降の議論は、先ほどのものと同様で、以下のように計算できます。

 L(4P_{\infty}) = \mathbb{C} + \mathbb{C}f + \mathbb{C}g + \mathbb{C}f^2
 L(5P_{\infty}) = \mathbb{C} + \mathbb{C}f + \mathbb{C}g + \mathbb{C}f^2 + \mathbb{C}fg
 L(6P_{\infty}) = \mathbb{C} + \mathbb{C}f + \mathbb{C}g + \mathbb{C}f^2 + \mathbb{C}fg + \mathbb{C}f^3

これによって

 g^2 \in L(6P_{\infty}) = \mathbb{C} + \mathbb{C}f + \mathbb{C}g + \mathbb{C}f^2 + \mathbb{C}fg + \mathbb{C}f^3

から

 g^2 = a_0 + a_1 f + a_2 g + a_3 f^2 + a_4 fg + a_5 f^3
(ここで、 a_0, a_1, a_2, a_3, a_4, a_5 \in \mathbb{C} とする)

という式を立てることができます。

ここで、関数  f, g をそれぞれ座標とみなせば、上の式は楕円曲線の定義方程式を与えていると思うことができるでしょう。


以上の流れで、先ほどの循環論法の問題を回避することができました。

今回の記事を書くにあたって、循環論法についてずいぶん悩みました。曲線の座標は「曲線上の点に対して値を返す関数である」という理解ができたことが大きくて、個人的なブレイクスルーでした。


まとめと次回予告

今回は楕円曲線の定義方程式を求める問題を扱いました。これまでの議論によって、楕円曲線の定義方程式における次数の謎が理解できました。今回の例を通して、「関数の性質から代数曲線の性質がわかる」という感覚も伝えられたんじゃないかなと思います。

具体的な流れとしては、まず関数体の部分ベクトル空間  L(6P_\infty) を計算して、 L(6P_\infty) における代数的な関係式を得ることができました。これによって定義方程式が得られるという話でした。次元の計算には、リーマン・ロッホの定理がその威力を発揮しましたね。

基底を計算する際には

 2 + 2 + 2 = 3 + 3 = 6

というような素朴な式が現れた、というのも面白かったですね。


楕円曲線についての謎が一つ解けたわけですが、まだ謎が残っています。

たとえば、「加法」についてです。楕円曲線には、加法、つまり足し算が定義できることはよく知られています。一方で、あの加法の意味ってわかりますか?かなり不思議な定義をしていますよね。

次回は、楕円曲線の加法が「なぜあのような形で定義されるのか」について話したいと思います。そこでは、「因子」という概念が導入されますが、これは今回の関数体の議論の延長線上にあるものです。お楽しみに。


それでは今日はこの辺で。

参考文献

今回の記事は、以下の本の「超楕円曲線とヤコビ多様体」という章を参考にしました。

数論入門【現代数学への入門8】 (岩波オンデマンドブックス)

数論入門【現代数学への入門8】 (岩波オンデマンドブックス)


以下のPDFも勉強したいと思っていて、ブログのいくつかの記述はこちらを参考にしています。

小川裕之 : 代数曲線の Riemann-Roch の定理 - 第 15 回 整数論サマースクール 《種数の高い代数曲線と Abel 多様体》報告書
http://www2.meijo-u.ac.jp/~yonishi/research/pub/ss2007/02ogawa.pdf

謝辞

この話に興味を持った最初のきっかけはmattyuuさんのこの発表です。素敵な発表をありがとうございます。
www.nicovideo.jp

続きを公開しました(2019/07/04追記)

tsujimotter.hatenablog.com

*1:楕円曲線の定義としては、正確に言えば以下のものです。 楕円曲線とは、 ①非特異な射影曲線であって ②上の式に双有理同値な曲線のこと です。 さらに言えば、係数体の標数が2でも3でもない場合はこれでよいのですが、標数が2や3の場合には  Y^2 = X^3 + aX + b ではなく  Y^2 + aXY + bY  = X^3 + cX^2 + dX + e という式に双有理同値な曲線を楕円曲線といいます。 が、今回は細かいところを抜きにして、標数 0 のものだけを考えます。その上で、 Y^2 = X^3 + aX + b で表された曲線のことを楕円曲線ということにしましょう。

*2:関数体の零点や極の位数について、少し歯切れの悪い説明になっているのは、私が定義を理解できていないためです。 実際、位数は次のように定義されるそうです。座標環  \mathbb{C}[E] の「点  P における局所環  A[E]_P 」を考えると、これが離散付値環になります。  A[E]_P の付値から誘導される関数体  \mathbb{C}(E) の付値を  \operatorname{ord}_P とします。 h\in \mathbb{C}(E) に対して、 \operatorname{ord}_P(h) \geq 0 のとき  h P で位数  \operatorname{ord}_P(h) の零点を持つといい、 \operatorname{ord}_P(h) < 0 のとき  h P で位数  -\operatorname{ord}_P(h) の極を持つと定義されるようです。 この辺の意味するところを、私自身が解説できるほど理解していないため、今回はこの部分の解説を避けることにします。 X, Y の位数については、結果的には、本文の通り計算できることを認めた上で進めたいと思います。