体   ― 塩田研一覚書帳 ―

代数構造のひとつ、体(たい)、についてのお話です。 体はどうやって作るのか、ということを中心に述べていきます。

 加減乗除の四則演算ができる数の集合のことを体(たい)と呼びます。 初学者の皆さんはまずそのことだけ覚えてください。

 子供の頃から、有理数や実数、もう少し勉強が進むと複素数というものを習ってきました。 全て加減乗除の四則演算ができます。 これらの数を用いると、代数方程式とか、連立方程式とか、図形の方程式とかの計算ができましたよね。 それと同じように四則演算ができる集合がもっと沢山あったら嬉しいな。 その数を使った代数方程式とか、連立方程式とか、図形の方程式とかが考えられて、研究対象が沢山増えて嬉しいな。 という発想です。

 細かいことを言うと「体の公理」というのがありまして、 加法と乗法は結合律を満たさないといけないとか、 分配律が成り立たないといけないだとか、 いろいろ約束ごとがありますが、それは皆、実数と同じような計算がしたいということです。 過敏になる必要はありません。

大事な性質

 体 F の要素 x, y について
定理A  x y = 0 ⇒ 「 x = 0 または y = 0 」
が成り立つというのが体の一番大事な性質かもしれません。 この性質は「体は零因子を持たない」という言い方で呼びます。 (もし x ≠ 0 ならば x で割ることができるので y = (( x y ) / x)= (0 / x) = 0 になる、というのが証明です。) 対偶を取れば
定理B 「 x ≠ 0 かつ y ≠ 0 」 ⇒ x y ≠ 0
となります。
 n 次多項式は高々 n 個しか根を持たない、というのもこの定理の帰結です。
xn - an = ( x-a ) ( xn - 1 + xn - 2a + ... + an - 1 )
という因数分解は(可換環なら)いつでも成り立ちますので、これから
剰余の定理 f (x) を ( x-a ) で割った余りは f (a) である
因数定理 「 a が f ( x) の根であること」 ⇔ 「 f (x) が ( x-a ) で割り切れること」
が導けます。 もし n 次多項式
f (x) = xn + c 1 xn - 1 + ... + c n
が n + 1 個以上の根 a 1 , a 2 , ..., a n + 1 , ... を持つとすると、n 個目までの根で
f (x) = ( x - a 1 ) ( x - a 2 ) ... ( x - a n )
と書ける筈ですが、定理Bからここに x = a n + 1 を代入しても 0 にならないので矛盾が生じる、という理屈です。

mod p の体

 素数 p を法とする剰余環 Z/pZ は、0 以外の剰余類で必ず割ることができますので体になります。 有限個の要素をもつ体ということで有限体と呼びます。 体ということを強調するために Fp とも書きますし、 ガロワ先生の名前を付けてガロワフィールド GF(p) と書くこともありますが、同じものです。
 なぜ 0 以外の剰余類で必ず割ることができるかと言うと、 0 以外の剰余 a は p と互いに素ですから, 拡張ユークリッドアルゴリズムを用いると a x + p y = 1 を満たす整数 x, y が求まり、 この x が a の逆数(= 乗法逆元)になる訳です。

素体と標数

 体 F には必ず 0 と 1 というふたつの要素を持たせます。0 と 1 は異なる要素です。 この 1 から四則演算を使って作り出せる要素を全て集めると、それだけで体ができます。 これを「 F の素体」と呼びます。では素体とはどんなものでしょうか。

 1 を2個, 3個, ... と足してゆくことを考えましょう。 もしこれらに全く重複が無ければ、自然数の 1, 2, 3, ... と同じ要素が作られることになります。 すると減法を使うことにより負の整数も作り出せ、 さらに除法を使えば任意の有理数も作り出すことができます。 有理数は四則演算で閉じていますのでこの場合の素体は有理数体 Q になります。

 では 1 の幾つかの和として作られた要素に重複があるときはどうでしょう。 1 の n 個の和 n 1 と、1 の m 個の和 m 1 が等しくなる番号 n, m ( n > m ) がどこかにあります。 すると ( n - m ) 1 = n 1 - m 1 = 0 となりますから、先ず、
ある自然数 k があって k 1 = 0 となる
ことが分かります。もし k が合成数で k = a b と書ければ
( a 1 ) ( b 1 ) = ( a b ) 1 = k 1 = 0
ですから、定理Aにより ( a 1 ) または ( b 1 ) が 0 であることになります。 k を素因数分解してこのことを考えれば、結局
ある素数 p があって p 1 = 0 となる
ことになります。
 さて、このような素数はひとつしかありません。もしふたつの素数 p と q で p 1 = q 1 = 0 となったとすると、 拡張ユークリッドアルゴリズムから p x + q y = 1 を満たす整数 x, y が求まりますので
1 = ( 1 倍の 1 ) = ( p x + q y ) 1 = x ( p 1 ) + y ( q 1 ) = x 0 + y 0 = 0
となってしまい、1 ≠ 0 であることに矛盾してしまうからです。
 p 1 = 0 が成り立つと、1 から加法を用いて作り出した 1, 2, ..., p - 1 と 0 を合わせて Fp と同じ集合ができます。 そしてこれらの四則演算は mod p の計算と同じものですからこの場合の素体は Fp である、ということになります。

 1 を幾つ足しても 0 にならないとき、体 F の標数は 0 である、と言い、 p 1 = 0 となる素数 p が存在するとき、体 F の標数は p である、と言います ( p を特定せずに正標数と言うこともあります )。 以上まとめておきましょう:
「 標数 = 0 」 ⇔ 「 素体 = 有理数体 Q 」 ⇔ 「 1 を幾つ足しても 0 にならない 」
「 標数 = p 」 ⇔ 「 素体 = Fp 」 ⇔ 「 1 を p 個足すと 0 」

体の拡大

 ふたつの体 L と F の間に包含関係 L ⊇ F があるとき、L を F の拡大体、F を L の部分体と言い、L / F を体の拡大と言います。 もちろん、F の四則演算は L における四則演算と同じ演算を用いることが前提です。
 このとき、L には
  • 加法
  • F の元によるスカラー倍
がありますので、L は F 上のベクトル空間になります。 するとベクトル空間としての次元 dim F L が定まりますが、この次元を体の場合には「拡大次数」と呼びます。 例えば複素数体 C は実数体 R 上の2次拡大で、 { 1, √-1 } が R 上のベクトル空間としての基底になります。

体を拡大する方法

 さて、基本的な体から大きな体を作る(体を拡大する、と言います)ことを考えましょう。

代数拡大
 体 F の元を係数に持つ一変数多項式の根 α を F に付加した体を F(α) と表します。 F の元と α から四則演算を使って作り出せる数を全て集めた集合が F(α) です。
 例えば x2 - 2 の根 √2 を有理数体 Q に付加した体 Q(√2) の要素は a + b √2 ( a, b ∈ Q ) と表され、
( a + b √2 ) ( c + d √2 ) = ( a c + 2 b d ) + ( a d + b c ) √2
( a + b √2 ) / ( c + d √2 ) = { ( a c - 2 b d ) + ( - a d + b c ) √2 } / ( c2 + 2 d2 )
などの演算規則に従います。 Q(√2) / Q の拡大次数は 2 になります。
 F(α) の元を係数に持つ一変数多項式の根 β を更に F(α) に付加して体 F(α, β) を作る、 というように代数拡大を繰り返す事ができますが、 標数 0 の体や有限体の代数拡大はひとつの根で拡大できる単純拡大になることが知られています。 例えば F(√2, √3) は γ = √2 + √3 による単純拡大 F(γ) に一致します。 なぜなら
3 = (√3)2 = (γ - √2)2 = γ2 - 2γ√2 + 2    ⇒   √2 = (γ2 - 1) / (2γ)
2 = (√2)2 = (γ - √3)2 = γ2 - 2γ√3 + 3    ⇒   √3 = (γ2 + 1) / (2γ)
となり、F(√2, √3) ⊆ F(γ) ⊆ F(√2, √3) が成り立つからです。
 一般に F 上既約な F 係数 n 次多項式 f (x) の根 α を F に付加した体 F(α) では
  • F(α) の要素は a 0 + a 1 α + ... + a n - 1 αn - 1 ( a i ∈ F ) と一意的に表される
  • F(α) / F の拡大次数は n である
ということがわかります。

有理関数体
 文字 x, y, ... を F に付加した体 F(x, y, ...) を F 上の有理関数体と呼びます。 その元は F 係数の x, y, ... の有理式全てです。 このとき F(x, y, ...) / F は無限次拡大となります。 付加した文字の個数を超越次数と呼びます。拡大次数は無限大です、お間違えなく。

関数体
 有理関数体の、さらに代数拡大を考えると、代数多様体の関数体というものができます。
 例えば F 上の楕円曲線
y2 = x3 + a x + b
の関数体 K = F(x, y) は、 F(x) 係数の y の多項式 y2 = x3 + a x + b の根 y を F(x) に付加したものです。 F(x) は F 上の一変数有理関数体、K は F(x) 上の2次の代数拡大です。
 「図形は、その上にどういう関数があるかで決まる」という発想がありまして、 この K を関数体にもつ図形とは、
  • x と y という座標関数を持っていて、
  • それらが y2 = x3 + a x + b という関係式を持っている
と考えるのです。それがすなわち、 xy 平面上の y2 = x3 + a x + b という式で表される図形、ということになるのです。

代数閉包
 体 F 上代数的な元を全て F に付加した体 F を F の代数閉包と呼びます。 F はもうそれ以上代数的に拡大できない体(代数閉体)です。 任意の体に対してその代数閉包が必ず存在します。
 例えば、実数体 R の代数閉包は複素数体 C です。 複素係数の一変数多項式は必ず複素数の範囲で一次因子に分解する、 という「代数学の基本定理」は、 C が代数閉体であるということを言っています。
 有理数体 Q にも代数閉包 Q がありますが、 Q は可算集合ですので、 非可算集合である複素数体 C とは違うものです。 Q の元を代数的数、 Q に属さない複素数を超越数と呼びます。

完備化
 体 F に距離関数が定義されているとき、その距離に関するコーシー列の極限をすべて F に付加した体を F の完備化と言います。 (正確に言うと、「コーシー列の同値類」を極限値と定める、という作業が必要です。)
 例えば円周率
3.1415926535 ...
3,    3.1,     3.14,     3.141,     3.1415,     ...
という有理数からなるコーシー列の極限です。 同じように、全ての実数は有理数のコーシー列の極限であると考えられ、 有理数体 Q の(通常の絶対値で定まる距離に関する)完備化は実数体 R になります。
 今さら、実数体ができました、と言われても嬉しくないように思うかもしれませんが、 実は有理数体 Q には素数 p ごとに「p進距離」と呼ばれる別の距離関数があって、 その全てについて別の完備化を持っています。 実数というのは無限個ある完備化のひとつに過ぎません。 そのお話は次で。

p 進体

 まず、有理数体 Q に p 進付値(ふち)を定義しましょう。
 素数 p を固定します。0 以外の有理数 x はただ一通りに
x = ± pn × ( a / b )    ( a, b は p と互いに素な自然数で、a / b は既約分数 )
と表されますが、このとき x の p 進付値 | x | p
| x | p = p-n
と定めます。たとえば p = 3 なら
12 = 3 1 × ( 4 / 1 )  ⇒  | 12 | 3 = 3-1
- 77 / 18 = - 3-2 × ( 77 / 2 )  ⇒  | - 77 / 18 | 3 = 32
のように計算します。

 p 進距離 d p (x, y) は、p 進付値 | x | p を用いて
d p (x, y) = | x - y | p
と定めます。通常、有理数 x, y 間の距離は絶対値 | x - y | で測りますが、その代わりに p 進距離を用いるのです。 p 進距離では p べきはべき指数が大きいほど小さい数だと考えますので、例えば
1,    1 + p,     1 + p + p2,     1 + p + p2 + p3,     ...
は p 進距離に関するコーシー列となります。 この p 進距離に関する、有理数体 Q の完備化を Qp と表し、p 進数体と呼びます。 Qp の中では「収束」という概念が使えますので解析学が成立します。 例えば上のコーシー列は収束して
1 + p + p2 + p3 + ... = 1 / (p - 1)
という等式が成り立ちます。

 有限次代数体の素イデアル p についても p 進距離を考えることができます。 また体 F 上の一変数関数体 F(x) においては、例えば x が素数の役割を果たして付値が定義でき、 その完備化は形式的べき級数体 F((x)) になります。
 Qp の中で | x | p ≦ 1 を満たす元 x を p 進整数と呼び、 p 進整数全ての集合を Zp と表します。 離散数学や暗号の書籍には法 p の剰余環 Z/pZZp と書いているものが多くありますが、 整数論にとっては嬉しくないことです。

有限次単純拡大の計算機上での表現

 例えば Q に x3 + x + 1 の根 α を付加した体 Q(α) の演算の計算方法を考えましょう。
  1. Q(α) の元は a + b α + c α2 ( a, b, c ∈ Q ) と表します。 ... (*)
  2. 加減法 は、この a, b, c の部分を±するだけです。
  3. 乗法 : (*) の形の元の積を計算すると α2 や α4 が出てきます。 手計算なら α3 = -α-1 を用いて α に関する次数を下げて (*) の形に直しますが、 計算機では次のように考えます。
    f (x) = x3 + x + 1 の根 α を付加する、ということは、 多項式環 Q[x] の f (x) による剰余環 ( すなわち mod f (x) ) を考える事になります。 mod f (x) とは f (x) = 0 と思って計算することですから x の属する剰余類が α ということになります。 (*) の形の元の積を計算するには、一旦多項式として積を計算して f (x) で割った余りに取り直す、という作業を行います。
  4. 除法 : 体上の一変数多項式環は(次数に関するユークリッド環であるので)Z と同様に拡張ユークリッドアルゴリズムが成立します。 Q(α) の 0 以外の元 β = a + b α + c α2 は f (x) と互いに素な多項式 a + b x + c x2 に対応しますので、
    ( a + b x + c x2 ) u (x) + f (x) v (x) = 1
    を満たす u (x), v (x) が求まります。 この式を mod f (x) で見ると β × u (α) = 1 となり u (α) が β の逆数になります。
以上の話は一般の体 F 上の既約多項式 f (x) でも同じです。

戻る