素イデアル分解の計算機
タイトルの通り、素イデアル分解(代数体の整数環での)を計算機に解いてもらう方法を見つけた。
筆者は計算機やパソコンのことはド素人なのでいろいろ注意。
Magmaというソフトウェアを用いる。これは本来は有料なのだが、以下のリンクの「calculator」をクリックした先で簡単にお試し利用できる↓↓
http://magma.maths.usyd.edu.au/calc/
1度の計算時間120秒、入力5000バイトまでの制限があるが、基本的な計算は余裕でできるので問題ない。
肝心のコードに入る。
PQ<x>:=PolynomialAlgebra(Rationals());
f:=添加する代数的数の最小多項式;
k<a>:=NumberField(f);
Ok:=RingOfIntegers(k);
Decomposition(Ok,素数);
これを入力してsubmitを押すとℤの素数(有理素数)が素イデアル分解される。例を見よう。以下を入力してsubmitを押すと、
PQ<x>:=PolynomialAlgebra(Rationals());
f:=x^2 + 5;
k<a>:=NumberField(f);
Ok:=RingOfIntegers(k);
Decomposition(Ok,3);
以下のようになる。
[
<Prime Ideal of Ok
Two element generators:
[3, 0]
[1, 1], 1>,
<Prime Ideal of Ok
Two element generators:
[3, 0]
[5, 1], 1>
]
と出てきた。見ずらいが、これは
(3) = {(3+0・√-5) と (1+1・√-5) を生成元とするイデアルの1乗}・{(3+0・√-5) と (5+1・√-5) を生成元とするイデアルの1乗}
と分解したことを表している。
もう一つ見ておこう。
PQ<x>:=PolynomialAlgebra(Rationals());
f:=x^2 + 2*x + 2;
k<a>:=NumberField(f);
Ok:=RingOfIntegers(k);
Decomposition(Ok,2);
と入力すると
[
<Prime Ideal of Ok
Two element generators:
[2, 0]
[-1, 1], 2>
]
とかえってくる。の解をaとしてと素イデアル分解された。ちなみに、生成元二つで書かれているが過剰で、右辺の素イデアルは単項イデアルだ。その証拠に
IsPrincipal(ideal<Ok|2,1+a>)
と書き足してsubmitを押すと「true」と出る。
単拡大でない場合にどうするかはまだわからない・・・
magma,超多機能超高性能みたいなのでいろいろ他にもあそびたい。