非専門的シンギュラリティー研究所

無限に動き続けるシステムを表す方法を AI なども使って考えていきます。

証明路開発支援システム(14)

平方剰余の相互法則についても、

  • 証明路
  • プログラム形式の証明
  • 証明を生成するプログラム

のどれかに対応できるようにツリー形式に書き直すことにします。まず「平方剰余の相互法則(2) - 非専門的シンギュラリティー研究所」を見ていきます。『平方剰余の相互法則: ガウスの全証明』、『数論への出発 増補版』を参考にしています。

(1)  p が素数のときに  \mathbb{Z}/p\mathbb{Z} は体になります。

[証明]

  •  p は素数なので、整数  x に対して、 mx + np = 1 を満たす整数  m,  n が存在します。
  •  mx≡1 \ (\mathrm{mod} \ p) となるので  m + \mathbb{Z} x + \mathbb{Z} の乗法の逆元となります。
[証明終わり]

 \mathbb{Z}/p\mathbb{Z} F_p と書きます。

(2)  x,  y を可換群  G の元とします。 x の位数が  m y の位数が  n m n が互いに素であるとき、 xy の位数は  mn となります。

[証明]

  1.  (xy)^{mn} = 1 となることを証明します。
    •  (xy)^{mn} = (x^{mn})(y^{mn}) = (x^{m})^n(y^{n})^m = 1 となります。
  2.  (xy)^k = 1 ならば  k mn の倍数となることを証明します。
    •  (xy)^k = 1 とします。
    •  1 = (xy)^{km} = (x^{km})(y^{km}) = y^{km} より  km n の倍数となります。
    •  m n が互いに素なので  k n の倍数となります。
    •  1 = (xy)^{kn} = (x^{kn})(y^{kn}) = x^{kn} より  kn m の倍数となります。
    •  m n が互いに素なので  k m の倍数となります。
    • よって  k mn の倍数となります。
[証明終わり]

(3)  F を体、 f(X) F の元を係数とする  n 次( n \ge 0)の多項式( f(X) \ne 0)とすると、 f(a) = 0 を満たす  F の元  a の個数は  n 以下となります。

[証明]

  •  n に関する帰納法によって証明します。
    1.  n = 0 の場合を証明します。
      •  f(a) = 0 を満たす  F の元は  0 個なので成り立ちます。
    2.  n > 0 n より小さい場合は成り立っているとして、 n の場合を証明します。
      •  f(a) = 0 とすると、 f(X) (X - a) で割ると余りは  0 となります。
      • よって  f(X) = (X - a)g(X) を満たす  n-1 次以下の多項式  g(X) が存在します。
      • 帰納法の仮定により  g(b) = 0 を満たす  b n-1 個以下なので  f(a) = 0 を満たす  a n 個以下となります。
[証明終わり]

(4)  F が有限体のとき  F^* = F - \{0\} は乗法に関して巡回群になります。

[証明]

  •  x F^* の位数が最大の元とします。
  •  \langle x \rangle = G であることを証明します。
    •  x の位数を  m とします。
    •  y G の元とします。
    •  y ∈ \langle x \rangle であることを証明します。
      •  y の位数を  n とし、 k m n の最大公約数とします。
      •  z = y^{(n/k)} とおくと  z^m = y^{(mn/k)} = (y^n)^{(m/k)} = 1 となります。
      •  \langle x \rangle = \{x^e | e = 0, 1, 2, … , m-1\} の元  x^e (x^e)^m = (x^m)^e = 1 を満たします。
      • (3)から  a^m = 1 を満たす  F^* の元は最大  m 個なので、 a^m = 1 を満たす  a はすべて  \langle x \rangle の元となります。
      • よって  z \langle x \rangle の元となります。
        1.  n/k = 1 ならば  y = z ∈ \langle x \rangle となります。
        2.  n/k > 1 のとき
          •  w = x^k・y とおくと、(2)から  w の位数 = x^k の位数 × y の位数 = (m/k)・n = mn/k > m となります。
          • これは  x の位数が最大であることに反します。
[証明終わり]

(5)  F_p^* は巡回群になります。(原始根定理)

[証明]

  • (1)と(4)から成り立ちます。
[証明終わり]

「原始根定理」についても後で見ていきます。

を参照します。

(6) (フェルマーの小定理)  p 2ではない素数、 a p と素な整数のとき、 a p-1 乗は  p を法として  1 と合同になります。

[証明]

  • (5)から  F_p^* の生成元が存在します。
  •  x F_p^* の生成元とすると、 x^{p-1} = 1 となります。
  •  a を含む剰余類はある  x^e に等しいので  a^{p-1} + p\mathbb{Z} = (x^e)^{p-1} = (x^{p-1})^e = 1 となります。
[証明終わり]

(7) (オイラーの規準)  p 2ではない素数、 a p と素な整数のとき

  •  a が法  p に関する平方剰余のとき、 a (p-1)/2 乗を  p で割ったときの余りは  1
  •  a が法  p に関する平方剰余ではないとき、 a (p-1)/2 乗を  p で割ったときの余りは  p-1 になります。


[証明]

  • (6)から  a^{p-1}≡1 \ (\mathrm{mod} \ p) となるので  a^{ (p-1)/2}≡±1 \ (\mathrm{mod} \ p) となります。
  • 平方剰余の定義より「 a が法  p に関する平方剰余 ⇔  x が存在して  a≡x^2 \ (\mathrm{mod} \ p)」です。
  •  x が存在して  a≡x^2 \ (\mathrm{mod} \ p) a^{ (p-1)/2}≡1 \ (\mathrm{mod} \ p)」を証明します。
    1.  a≡x^2 \ (\mathrm{mod} \ p) とすると  a^{ (p-1)/2}≡x^{p-1}≡1 \ (\mathrm{mod} \ p) となります。
    2. 逆に  a^{ (p-1)/2}≡1 \ (\mathrm{mod} \ p) とします。
      • (5)から  F_p^* の生成元が存在します。
      •  r F_p^* の生成元として、 a + p\mathbb{Z} = r^e とします。
      •  (r^e)^{ (p-1)/2} = 1 より  e(p-1)/2 p-1 の倍数となります。
      •  e(p-1)/2 = c(p-1) とおくと  e = 2c となります。
      •  a + p\mathbb{Z} = r^e = (r^c)^2 となり、 r^c の代表元を  x とおくと  a≡x^2 \ (\mathrm{mod} \ p) となります。
[証明終わり]