メモ(数論17): 四平方の定理

チラ裏 > 数論 i > メモ17

「チラ裏」は、きちんとまとまった記事ではなく、断片的なメモです。誤字脱字・間違いがあるかもしれません。

***

 2023-08-15 四平方のごちゃごちゃを解きほぐす 分かりやすさ優先コース

#数論 #四平方 #平方和

「どんな自然数も、平方数4個の和で書ける」ってのは有名な性質で、証明の本体は易しい。でも、その前提の「四平方の等式」がくせもの:
  (A2 + B2 + C2 + D2)(a2 + b2 + c2 + d2)
  = (Aa + Bb + Cc + Dd)2  ←ここまでは、まぁいい
  + (Ab − Ba + Cd − Dc)2  ←ごちゃごちゃしてきた
  + (Ac − Ca + Db − Bd)2  ←何じゃこりゃぁ?
  + (Ad − Da + Bc − Cb)2

原理的には左辺と右辺を全部展開して比較すればいいだけだが、まともにやったら計算地獄になりそう…

さりとてエレガントにやろうとすると準備が大変で、むしろ険しい道に…。こうなったら、強行突破もやむなし!

「深さ」より「分かりやすさ」を優先し、愚直な方法でうまく証明できないか試してみたい。

*

簡単なことから。
  (P + Q)X = PX + QX
…という当たり前の式において X = p + q とすると:
  (P + Q)(p + q) = (P + Q)X = PX + QX
  = P(p + q) + Q(p + q) = Pp + Pq + Qp + Qq
つまり P に対して p, q をそれぞれ掛け、Q に対して p, q をそれぞれ掛けて、発生する4個の積を足し合わせればいい。特に p = P, q = Q の場合には:
  (P + Q)2 = (P + Q)(P + Q) = PP + PQ + QP + QQ = P2 + Q2 + 2(PQ)

同様に…
  (P + Q + R)(p + q + r)
…では P に対して p, q, r をそれぞれ掛け、次に Q に対して p, q, r をそれぞれ掛け、最後に R に対して p, q, r をそれぞれ掛けて、発生する9項を足し合わせればいい。特に:
  (P + Q + R)2 = PP + PQ + PR + QP + QQ + QR + RP + RQ + RR ☆
  = P2 + Q2 + R2 + 2(PQ + PR + QR)  ☆☆
右端の丸かっこ内が 2 倍されているのは、☆ において、異なる文字の積は2回ずつ発生するから:
  PQ(辞書順)と QP(逆順); PR(辞書順)と RP(逆順); QR(辞書順)と RQ(逆順)
  [辞書順とはアルファベット順のこと]
これら6項に加えて ☆ には同じ文字の積 PP, QQ, RR が1個ずつあるので(計9項)、☆☆ の結論になる。

問題の4項式も原理は同じ。
  (P + Q + R + S)(p + q + r + s)
…においては、P に対して p, q, r, s がそれぞれ掛け算され、Q に対して p, q, r, s がそれぞれ掛け算され、以下同様。要するに、大文字チームの4人 P, Q, R, S と、小文字チームの4人 p, q, r, s が、総当たりで16回、掛け算される。特に
  (P + Q + R + S)2 = P2 + Q2 + R2 + S2 + 2(PQ + PR + PS + QR + QS + RS) ★
の場合、発生する16項のうち、同じ文字の積は PP, QQ, RR, SS の4項。異なる文字の積は…
  辞書順で PQ, PR, PS; QR, QS; RS の 6項
  それぞれの逆順の 6項(小計12項、トータルで16項)
…なのだから ★ の結論になる。

★ の丸かっこ内の6項の形が、後で重要な鍵となる。P; Q; R が、それぞれ自分よりアルファベット順で後ろの相手とペアに。
  PQ, PR, PS;
  QR, QS;  [QP はアルファベット順になってないので駄目]
  RS;    [RP, RQ はアルファベット順になってないので駄目]
ちなみに4文字の中で S は、アルファベット順で一番後ろなので、S から始まる項は生じない!

*

そうすると…
  (A2 + B2 + C2 + D2)(a2 + b2 + c2 + d2)
  = (Aa + Bb + Cc + Dd)2 ♡
  + (Ab − Ba + Cd − Dc)2 
  + (Ac − Ca + Db − Bd)2 
  + (Ad − Da + Bc − Cb)2 
…の左辺では A2, B2, C2, D2 と a2, b2, c2, d2 が総当たりの16個の積になる。つまり、左辺は次の16項の和:
  A2a2 つまり (Aa)2
  A2b2 つまり (Ab)2
  A2c2 つまり (Ac)2
  A2d2 つまり (Ad)2
  B2a2 つまり (Ba)2
  B2b2 つまり (Bb)2
  以下略

これら16種類の平方の一つ一つと同じ項が、右辺の4種類の平方によっても発生する(右辺からはそれ以外の項も発生する)。♡ を ★ に当てはめると:
  (Aa + Bb + Cc + Dd)2 = (Aa)2 + (Bb)2 + (Cc)2 + (Dd)2 + 2(ごちゃごちゃ)
次にを ★ に当てはめると:
  (Ab − Ba + Cd − Dc)2 = (Ab)2 + (Ba)2 + (Cd)2 + (Dc)2 + 2(ごちゃごちゃ)
ここで (Ba)2 は厳密に言えば (−Ba)2 だし (Dc)2 も厳密に言えば (−Dc)2 だが、平方してしまうのだから、もともとの符号がプラスでもマイナスでも結果はプラスに。同様にも考えると、(Aa)2, (Ab)2 等の16種類の平方は、過不足なく右辺に1回ずつ出現する。

だから、問題の等式が成り立つことを示すには、右辺から生じる4種類の…
  2(ごちゃごちゃ)
  すなわち ★ の 2(PQ + PR + PS + QR + QS + RS) に当たる部分
…が、全体として打ち消し合って 0 になることを言えばいい。係数 2 を無視して「ごちゃごちゃ」本体が 0 になるか検討しよう。というのも、証明したい式を展開すると:
  16種の平方の和 = 同じ16種の平方の和 + 2(ごちゃごちゃ) + 2(ごちゃごちゃ) + 2(ごちゃごちゃ) + 2(ごちゃごちゃ)
  = 16種の平方の和 + (2 × ごちゃごちゃたちの和)
「ごちゃごちゃたちの和」が = 0 なら、両辺は等しい: 2 × があってもなくても結論は同じ。

(Aa + Bb + Cc + Dd)2 から発生する最初の「ごちゃごちゃ」の各項は、同じアルファベットの大文字・小文字を2種類ずつ含む。具体的に ★ と同じ和の順序で:
  AaBb + AaCc + AaDd + BbCc + BbDd + CcDd ♪
  ★ の 2(PQ + PR + PS + QR + QS + SR) の丸かっこ内を見ている:
      P = Aa, Q = Bb, R = Cc, D = Dd

これら6種の + の項は、バ・カ・ダ由来の下記の「ごちゃごちゃ」のうち、太字の − の項と打ち消し合う(注1)。以下の表記では、和の順序は ★ と同じだが、それぞれの項の積を「大文字の辞書順」でソートしてある(注2):
   (Ab − Ba + Cd − Dc)2 のごちゃごちゃ成分 −AbBa, +AbCd, −AbDc; −BaCd, +BaDc; −CdDc
   (Ac − Ca + Db − Bd)2 のごちゃごちゃ成分 −AcCa, +AcDb, −AcBd; −CaDb, +BdCa; −BdDb
   (Ad − Da + Bc − Cb)2 のごちゃごちゃ成分 −AdDa, +AdBc, −AdCb; −BcDa, +CbDa; −BcCb

(注1) ♪ の前半の3項は、ごちゃごちゃ左端の列(縦)の3項と打ち消し合う: AaBb−AbBa; AaCc−AcCa; AaDd−AdDa。同様に ♪ の後半の3項は、ごちゃごちゃ右端の列の3項と打ち消し合う。

(注2) 例えばから出る (−Ca)(−Bd) を +CaBd でなく +BdCa としている(大文字のアルファベット順で B の方が C より前なので)。小文字の位置はどうでもいいのだが、便宜上、左隣の大文字にくっついて動くものとした。

残った「太字以外」の成分は、プラスが6項、マイナスが6項。これらが打ち消し合って 0 になれば、証明完了。次のように考えると、まあまあ見通しがいい: これら12項は、どれも4種類の異なるアルファベットを一つずつ含み、文字の種別は大文字2個・小文字2個なので、符号の違いを別にすると、大文字2個だけで、その項全体が決まる。例えば、大文字 A, B を含む項は小文字として c, d を含むしかない。A, C を含む項は b, d を含むしかない。等々。言い換えれば、大文字部分が一致する項は、小文字部分も一致。そこで小文字を無視して大文字に注目すると、+A から始まる3種類の項(第2列)は、右隣(第3列)の −A から始まる3項と打ち消し合う(注3)。+B or +C から始まる3項(第5列)は、左隣(第4列)の −B or −C から始まる3項と打ち消し合う。トータルでプラマイ・ゼロ!

(注3) 例えばの +AbCd はの −AdCb と打ち消し合う。どちらも A⋅b⋅C⋅d の積で符号だけ逆だから。小文字を無視して +AC と −AC に着目すれば十分。

*

かくして次が証明された。

四平方の恒等式
  (A2 + B2 + C2 + D2)(a2 + b2 + c2 + d2)
  = (Aa + Bb + Cc + Dd)2 + (Ab − Ba + Cd − Dc)2
  + (Ac − Ca + Db − Bd)2 + (Ad − Da + Bc − Cb)2

この式の核心は、「四平方の和」同士の積は、再び「四平方の和」になるってこと。

第一の「四平方の和」を
  m = A2 + B2 + C2 + D2
として、第二の「四平方の和」を
  n = a2 + b2 + c2 + d2
としよう。それらの積 mn つまり…
  (A2 + B2 + C2 + D2)(a2 + b2 + c2 + d2)
…も「四平方の和」として書ける。

〔例1〕 m = 10 = 12 + 22 + 22 + 12 について
  A = 1, B = 2, C = 2, D = 1
n = 7 = 22 + 12 + 12 + 12 について
  a = 2, b = 1, c = 1, d = 1
このとき mn = 70 は、次の4個の平方数の和として表される:
  (Aa + Bb + Cc + Dd)2 = (1⋅2 + 2⋅1 + 2⋅1 + 1⋅1) = 72
  (Ab − Ba + Cd − Dc)2 = (1⋅1 − 2⋅2 + 2⋅1 − 1⋅1) = (−2)2
  (Ac − Ca + Db − Bd)2 = (1⋅1 − 2⋅2 + 1⋅1 − 2⋅1) = (−4)2
  (Ad − Da + Bc − Cb)2 = (1⋅1 − 1⋅2 + 2⋅1 − 2⋅1) = (−1)2
確かに:
  72 + (−2)2 + (−4)2 + (−1)2 = 49 + 4 + 16 + 1 = 70
負の数の平方は、対応する正の数の平方と同じなので、次のように書いても和は同じ:
  72 + 22 + 42 + 12

*

↓ ここからは先しばらくは、斜め読み推奨。
定理の本体の証明には関係ない「付録」が三つある。

↑ 付録1・付録2・付録3の終わり。次のメモに続く。

⁂

 2023-08-17 四平方の定理 回りくどいが平易な証明

#数論 #四平方 #平方和

前半では、四平方の定理の意味を記し、その証明の出発点となる命題を導入する。後半では、証明を完成させる。この証明法は回りくどいが、結局、最初はこのやり方で進めるのが一番分かりやすいようだ(次回以降、回りくどくない直接証明を紹介)。

*

どんな素数 p も 4 個の平方数の和で表されるという。本当だろうか?

ちょっと試してみる:
  p = 2 のとき 2 = 12 + 12 + 02 + 02
  p = 3 のとき 3 = 12 + 12 + 12 + 02
  p = 5 のとき 5 = 22 + 12 + 02 + 02
  p = 7 のとき 7 = 22 + 12 + 12 + 12
  p = 11 のとき 11 = 32 + 12 + 12 + 02
  ……
  p = 1031 のとき 1031 = 312 + 62 + 52 + 32 (= 961 + 36 + 25 + 9)
  ……
どうやら本当らしいが、素数は無限にある。無限個の例を全部は試せない。もしかすると、4平方和では書けない数が、どこにあるかもしれない!

他方、本当にどの素数も4平方和で表されるのなら、どの自然数も4平方和で表される。例えば、素数 p1 と素数 p2
  p1 = A2 + B2 + C2 + D2
  p2 = a2 + b2 + c2 + d2
と表されるのなら、それらを掛け算した合成数 q = p1p2 についても、四平方の恒等式から、4平方和で書ける。3個の素数の積も同様。 q が4平方和で書けるのなら、そこにさらに素数 p3(仮定によりこれも4平方和で書ける)を掛け算した qp3 も、再び四平方の恒等式から、やっぱり4平方和で書ける。4個・5個・6個…の素数の積も同様。

四平方の恒等式のおかげで、「任意の自然数」が4平方和で書けることを示す代わりに、「任意の素数」が4平方和で書けることだけ示せば十分。

〔注〕 0 と 1 は素数でも合成数でもないが、それぞれ 02 + 02 + 02 + 02 と 12 + 02 + 02 + 02 と書けるので、問題ない。

Lagrange の四平方の定理 0 以上の任意の整数は 4 個の平方数の和で表される(02 = 0 も平方数に含める)。

以下では、この定理について、少し回りくどいが平易な証明を記す(Lagrange による古典的証明と実質同じ)。

*

任意の素数 p が4平方和で書けるかどうかはまだ分からないが、出発点として、次が成り立つ。

命題1 勝手に選んだ素数 p について…
 (i) p の倍数 kp のどれかは、次の型の4平方和として書ける:
  kp = x2 + y2 + 12 + 02
  つまり kp = x2 + y2 + 1  ここで x と y は整数
 (ii) この k には 1 以上 p 未満、つまり 1 ≤ k < p という縛りを付けることができる。
  [入力の都合で不等号 ≦ の代わりに ≤ を使う]

〔例3〕 p = 23 そのものは x2 + y2 + 1 の形で書けないが、p の正の倍数の中にはこの形で書けるものがある。実際:
  k = 2 のとき 2 × 23 = 46 = 36 + 9 + 1 = 62 + 32 + 1

命題1の証明 素数 p = 2 はそれ自身 12 + 02 + 1 の形で書けるので、考えるまでもない。以下 p が 3 以上の場合、つまり p が奇数の素数の場合に話を絞る。 p は奇数なので 2 の倍数より 1 大きい。こう書ける:
  p = 2n + 1

次の二つのチームを考える:
  星組 メンバーは 02, 12, 22, …, n2
  月組 メンバーは −(02 + 1), −(12 + 1), −(22 + 1), …, −(n2 + 1)

星組の異なるメンバーは、どれも p で割った余りが異なる。というのも、もしも星組の別々のメンバー u2 と v2 がどちらも p の倍数より w 大きいとすると(つまり p で割ると同じ余り w が出るとすると):
  u2 = p の整数倍 + w
  v2 = p の整数倍 + w
上から下を引くと:
  u2 − v2 = p の整数倍 − p の整数倍 = p の整数倍
  つまり u2 − v2 = (u + v)(u − v) は p の倍数
もしもこれが成り立つなら u + v または u − v が p の倍数(これは素数の性質による。ここで p が素数という仮定が利いてくる)。けれど、現実には、どちらも p の倍数ではない。だって、メンバー u2 と v2
  02, 12, 22, …, n2
の中の「異なる二つ」なんだから u + v は最大でも n + (n−1) = 2n − 1最小でも 0 + 1 = 1(最大は、一番でかいメンバーと二番目にでかいメンバーを選んだ場合。最小は、一番小さいメンバーと二番目に小さいメンバーを選んだ場合)。つまり、最大でも p = 2n + 1 の 1 倍(つまり 2n + 1)に届かず、最小でも p = 2n + 1 の 0 倍(つまり 0)よりでかい。まして 2 倍以上や 0 倍未満にはなり得ないので、u + v が p の倍数ってことは無理。同様に u − v は最小でも 0 − n = −n、最大でも n − 0 = n なので、p = 2n + 1 の −1 倍よりでかく +1 倍より小さい。そして 0 倍になる可能性もない(0 倍になるためには u − v = 0 つまり u = v が必要だが、異なるメンバーを考えてるんで u ≠ v)。

星組メンバー同士は「p で割った余りが異なる」…ということが分かった。各メンバーにそれぞれ 1 を足しても、余りが全部 1 ずつずれるだけで、やはり余りが異なる。余りが一致しない2数の −1 倍も、当然、余りが一致しない。よって、月組の各メンバー(対応する星組のメンバーに 1 を足して符号を変えた値)も、(月組内の)メンバー同士に関しては、全員 p で割った余りが異なる。

さて、星組と月組は、それぞれ n + 1 個のメンバーから成るので、両チームを合わせると、メンバーは 2n + 2 個。この個数は p = 2n + 1 より大きい。p で割った余りは 0 から p − 1 の p 種類しかないので、メンバーの総数が p より多い場合、その全員が「p で割った余りが違う」ってことはあり得ない(余りの種類の数よりメンバー数の方が多いので、必ず重複が発生)。星組内と、月組内には、余りが同じメンバーがいないのだから、星組の誰かと、月組の誰かが、同じ余りを持つ。

〔例4〕 p = 11 = 2 × 5 + 1 の場合(n = 5):
  星組 0, 1, 4, 9, 16, 25 ← 0 から n までの各数の2乗
  11 で割った余り 0, 1, 4, 9, 5, 3 ← どれも不一致
  月組 −1, −2, −5, −10, −17, −26 ← 星組の各員に 1 を足して符号を変えた
  11 で割った余り 10, 9, 6, 1, 5, 7 ← どれも不一致
各チーム内では余りは不一致だが、11 で割った余りは最大でも 11 種類しかなく、両チームの合計メンバーは 12 人なので、両チーム全体で全員が異なる余りを持つことはできない。必ず余りの重複が起きる。この例では 1, 5, 9 が重複している。ところで、マイナスの数を 11 で割った余りについては、こう考えればいい:
  マイナスの数 = マイナスの倍数 + 余り(0 から 10 の範囲)
  例えば −2 = −11 + 9 なので −2 を 11 で割ると商 −1 余り 9
      −17 = −22 + 5 なので −17 を 11 で割ると商 −2 余り 5

星組の誰かと月組の誰かは、奇素数 p = 2n + 1 で割った余りが一致。
  星組 02, 12, 22, …, n2
  月組 −(02 + 1), −(12 + 1), −(22 + 1), …, −(n2 + 1)

余りが一致する星組・月組のペアを x2 と −(y2 + 1) として、両者に共通する余りを r とすると:
  x2 = p × q1 + r ここで q1 は x2 を p で割った商(0 以上)
  −(y2 + 1) = p × q2 + r ここで q2 は −(y2 + 1) を p で割った商(−1 以下)
上から下を引くと:
  x2 + (y2 + 1) = p × (q1 − q2)
q1 − q2 を k とすると、上の右辺は kp で左辺は x2 + y2 + 1。命題1の (i) が証明されたっ!

x と y のどちらの値も 0 以上 n 以下なので:
  0 < 1 = 02 + 02 + 1 ≤ x2 + y2 + 1 ≤ n2 + n2 + 1 = 2n2 + 1
この右端の数は p2 = (2n + 1)2 = 4n2 + 4n + 1 より、はるかに小さい。従って:
  0 < x2 + y2 + 1 < p2
x2 + y2 + 1 = kp なのだから:
  0 < kp < p2
この不等式を正の数 p で割ると 0 < k < p 言い換えれば 1 ≤ k < p
これで (ii) も証明されたっ!

*

かくして kp が4平方和 x2 + y2 + 12 + 02 で表されることが、確定。もし k = 1 なら、直ちに kp = p が4平方和になり、定理が証明される。その場合はいいのだが、〔例3〕(p = 23 の場合)で見たように x2 + y2 + 1 = kp の k を必ず 1 にできる保証はない。そこで k = 1 以外のケース、つまり k が 2 以上のケースを考えよう。実は、以下の方法を使うと、一般に
  (ア) A2 + B2 + C2 + D2 = kp  ここで p の係数 k は 2 以上と仮定
のとき(A, B, C, D は整数)、p の係数 k を「もっと小さくできる」。つまり k 未満の正の整数 j が存在して、次の関係を成り立たせる:
  (イ) 整数2 + 整数2 + 整数2 + 整数2 = jp  ここで p の係数 j は k より小さい
この j が 1 になってくれれば、定理は証明される。1 になってくれなくても、その j をあらためて k として同じ方法を使えば、さらに小さい正の整数 j が得られる。繰り返せば繰り返すほど小さくなるんだから、いつかは j = 1 になる…。(ア)を(イ)に変形できることさえ確かめられれば、この論法が成り立つ!

命題1に適用する場合、(ア)は A = x, B = y, C = 1, D = 0 となる。(イ)左辺の第3・第4の「整数」 は 1 と 0 とは限らない。

この先の議論では合同記号 ≡ というものが必要なので、念のため要点を三つ、記しておく。

一つ A ≡ 0 (mod k) というのは「A が k の倍数」という意味(言い換えれば A が k で割り切れる)。

二つ 合同記号を使った式(合同式)は、等号を使った普通の式(等式)と同じように、移項したり、両辺に同じ数を足したり引いたり掛けたりできる(両辺を同じ数で割ることについては制限があるけど、以下ではそのような変形を使わない)。

三つ A ≡ a (mod k) のような式は、移項すれば
  A − a ≡ 0 (mod k)
なので「A − a が k の倍数」と解釈できる。こう言っても同じ意味――「A を k で割った余りと a を k で割った余りは等しい」。なぜなら…
  A を k で割って商が q1 で余り r1 なら A = kq1 + r1 となる。
  a を k で割って商が q2 で余り r2 なら a = kq2 + r2 となる。
上から下を引くと:
  A − a = (kq1 + r1) − (kq2 + r2) = k(q1 − q2) + r1 − r2 = k の倍数 + r1 − r2
第一の解釈を使い、この数が k の倍数だとすると、r1 − r2 は k の倍数(k で割り切れる数)。というのも…
  もしも r1 − r2 が k で割り切れないなら
  k の倍数 + r1 − r2 が k で割り切れるわけない(k の倍数ではない)。
ところが k で割った余り r1, r2 は、それぞれ 0, 1, 2, 3, …, k − 1 のどれかなので、r1 − r2k の倍数になるためには r1 − r2 = 0 つまり r1 = r2 という選択肢しかない。これは「k で割った余りが同じ」という第二の解釈に当たる。

多少の慣れが必要だが、慣れるためには、実際に使ってみるしかあるまい。話を再開する!

(ア)の A, B, C, D をそれぞれ k で割ったとき、余りが a, b, c, d だとしよう。ただし、議論の便宜上、余りが k/2 より大きい場合は、その余りから k を引いた「負の余り」に置き換えるものとする(下の例を参照)。

〔例5〕 仮に A = 12, B = 15, C = 16, D = 17 とする。k = 6 なら、それで割った余りは順に 0, 3, 4, 5 だが k/2 = 3 より大きい 4, 5 については k を引き算して −2, −1 に置き換える。従って、この場合:
  a = 0, b = 3, c = −2, d = −1
(小難しく言えば: A, B, C, D を mod k において、絶対値最小の剰余 a, b, c, d に簡約。)

すると A と a は k で割った余りが一致し、B と b も k で割った余りが一致する。C 以下も同様。式で書くと:
  (ウ) A ≡ a (mod k), B ≡ b (mod k), C ≡ c (mod k), D ≡ d (mod k)
(ア)により A2 + B2 + C2 + D2 は k の倍数、つまり k で割った余りは 0:
  A2 + B2 + C2 + D2 ≡ 0 (mod k)
この式に(ウ)の四つの合同式を代入すると…
  (エ) a2 + b2 + c2 + d2 ≡ 0 (mod k)
…の左辺も k の倍数。具体的に k の j 倍としよう:
  (オ) a2 + b2 + c2 + d2 = j k

ここで、前回証明した四平方の恒等式を引用する。

恒等式 (A2 + B2 + C2 + D2)(a2 + b2 + c2 + d2)
  = (Aa + Bb + Cc + Dd)2 + (Ab − Ba + Cd − Dc)2
  + (Ac − Ca + Db − Bd)2 + (Ad − Da + Bc − Cb)2

この恒等式に(ア)と(オ)を当てはめると、恒等式の左辺は(ア)と(オ)から kp × j k = j k2p に等しい。恒等式の右辺のうち、第一の丸かっこ内は(ウ)と(エ)から:
  Aa + Bb + Cc + Dd ≡ aa + bb + cc + dd ≡ 0 (mod k)
つまり k で割ると 0 余る(言い換えれば k の倍数)。第二の丸かっこ内についても(ウ)から:
  (Ab − Ba) + (Cd − Dc) ≡ (ab − ba) + (cd − dc) ≡ 0 + 0 ≡ 0 (mod k)
やはり k の倍数。第三・第四の丸かっこ内についても同様:
  (Ac − Ca) + (Db − Bd) ≡ (ac − ca) + (db − bd) ≡ 0 + 0 ≡ 0 (mod k)
  (Ad − Da) + (Bc − Cb) ≡ (ad − da) + (bc − cb) ≡ 0 + 0 ≡ 0 (mod k)
要するに、恒等式の右辺の四つの丸かっこ内は全部 k の倍数なので、恒等式は全体として、こうなる:
  j k2p = (k × 整数)2 + (k × 整数)2 + (k × 整数)2 + (k × 整数)2
  つまり j k2p = k2 × 整数2 + k2 × 整数2 + k2 × 整数2 + k2 × 整数2
両辺を k2 で割れば、めでたく(イ)の形になる!

四平方の式は、4平方和で書けるかどうかについて、「一般の自然数の場合」の議論を「素数の場合」の議論に範囲限定してくれるが、「素数の場合」の証明の内部でも、このように問題解決の鍵となる。一見ごちゃごちゃした式だが、頼もしいやつだ。

*

証明の概要は以上の通り。細部を補う。

(オ)で導入された整数 j が、事実 k より小さいこと(そして 1 以上であること)を示したい。 a, b, c, d は、それぞれ k で割った余りなので、本来的には 0 以上 k 未満の範囲だが、「k/2 より大きければ k を引く」のだから、その場合には「−k/2 より大きく 0 未満」になる。それ以外の場合には「0 以上 k/2 以下」。結局 a, b, c, d のそれぞれは −k/2 より大きく k/2 以下。その2乗は 0 以上 (k/2)2 以下。だから:
  0 = 02 + 02 + 02 + 02 ≤ a2 + b2 + c2 + d2 ≤ (k/2)2 + (k/2)2 + (k/2)2 + (k/2)2 = k2/4 × 4 = k2
要するに 0 ≤ a2 + b2 + c2 + d2 ≤ k2 となる。(オ)から:
  0 ≤ j k ≤ k2 これを正の数 k で割ると
  (ク) 0 ≤ j ≤ k

不等式(ク)において 0 = j があり得るなら(イ)の右辺は 0p = 0 になってしまい、「素数 p が4平方和で表される」ことの証明にならない。この可能性を否定しよう。

もしも j = 0 つまり j k = 0 なら(オ)から a, b, c, d は全部 0。言い換えると A, B, C, D のどれも k で割ると 0 余る――つまり、どれも k の倍数。だとすると A2, B2, C2, D2 はどれも k2 の倍数、それらの和も k2 の倍数[★★]。従って(ア)の kp は k2 の倍数。そこで kp = (k2)t としよう。その両辺を k で割ると p = kt。これは「素数 p が正の整数 k で割り切れる」ことを意味する。素数は 1 と自分自身でしか割り切れないので、k = 1 または k = p となるはずだが、どちらも不可能。なぜなら、ここでは k は 2 以上と仮定していて、命題1の (ii) によって k < p という縛りもある(ここでも p が素数という仮定が利いている)。――「もしも j = 0 なら」という仮定には無理があることが分かった。その可能性は否定される。

さて、(ク)において j = k があり得るなら(ア)から(イ)に進んだとき p の係数が小さくならない可能性があり、議論の土台が崩れてしまう。j = k の可能性を否定できるかどうかが重大。

以下の議論は、難しくはないが、少し技巧的。最初から j < k にできる伝統的方法を使った方が、平明かもしれない。

もしも j = k なら(オ)から a2 + b2 + c2 + d2 = j k = k2。これが起きるためには a, b, c, d がどれも理論上の最大値 k/2 を持つ必要がある[そのとき a2, b2, c2, d2 は、どれも (k/2)2 = k2/4 に等しい。それらの和は k2 である]。すなわち A, B, C, D を k で割ったとき、どれも余りが k/2 でなければならない(もちろん余りは整数なので、この場合 k/2 は割り切れて整数になる)。A, B, C, D を k で割ったときの商をそれぞれ q1, q2, q3, q4 とすると:
  A = kq1 + k/2 = (2q1 + 1) × k/2
  B = kq2 + k/2 = (2q2 + 1) × k/2
  C = kq3 + k/2 = (2q3 + 1) × k/2
  D = kq4 + k/2 = (2q4 + 1) × k/2
これが事実なら:
  A2 = [(2q1 + 1) × k/2]2 = (2q1 + 1)2 × (k/2)2 = (4q12 + 4q1 + 1) × k2/4
同様に B2, C2, D2 も計算すると、こう整理できる:
  A2 + B2 + C2 + D2
  = [(4q12 + 4q1 + 1) + (4q22 + 4q2 + 1) + (4q32 + 4q3 + 1) + (4q42 + 4q4 + 1)] × k2/4
角かっこ内は 4 で割り切れるので(定数項の和は 4)、分母の 4 と約分すると:
  = (q12 + q1 + q22 + q2 + q32 + q3 + q42 + q4 + 1) × k2
この丸かっこ内は整数。つまり A2 + B2 + C2 + D2 は k2 の倍数。それが不可能なことは[★★]以下の通り。これで j = k の可能性も否定され、定理が証明された!

**

伝統的な証明法において k が奇数か偶数かで場合分けするのは、k が偶数のときの j = k の可能性を避けるためらしい。けれど k が偶数だとしても j = k だと矛盾が生じる――場合分け不要のこのアイデアは、高木の整数論による。

(1) 高木は、平方剰余を使って命題1も処理している。これは含蓄がある。

(2) 高木は j = 0 の可能性を否定していない。これは論理の穴だろう。

(3) k が偶数の場合の伝統的議論も、研究価値がある。

これら三つの件については、別のメモで紹介したい。

⁂

 2023-08-21 四平方の定理(その2) 気持ちのいい直接証明

#数論 #四平方 #平方和

ふるきをたずねて新しきを知る。Alfred Brauer & Reynolds による20世紀の別証明を、簡単化して紹介したい。

四平方の定理の古典的証明は、三つの命題に基づく。第一に、「4平方和」と「4平方和」の積は、再び「4平方和」で表されること。第二に、任意の素数 p について、p の倍数 kp の中には
  整数2 + 整数2 + 1 = kp
の形を持つものが存在すること。第三に、3 以上の素数 p と 2 以上の整数 k について、
  (ケ) 整数2 + 整数2 + 整数2 + 整数2 = kp
と書くことが可能なら、別の整数 j を使って、
  (コ) 整数2 + 整数2 + 整数2 + 整数2 = jp
と書くことも可能――ということ。ここで j は 1 以上 k 未満。

(ケ)から(コ)への変形を必要なだけ繰り返せば、p の係数はだんだん減少して、いつかは 1 になる(係数が 1 になれば p そのものが4平方和で表されたことになり、証明完了)。

この方法は、ある意味、省力的でエレガントだが、できることなら、もっと直接的に k の値を決定・操作したい。 Alfred Brauer たちの方法では、(ケ)から(コ)への変形は不要。(ケ)の段階で k = 1 or 2 or 3 と確定し k は 4 以上にならない。 k = 1 なら証明は終わり、k = 2, 3 なら両辺を 2, 3 で割ることで、直接 k = 1 に帰着する。

「必要なだけループして、だんだん係数を減らす」という回りくどい論法は、本来、必要なかったのである。気持ちのいい知見だ!

「そんなうまい証明法があるなら、最初からそっちを書け」という意見もあるだろうが、この方法だとロジックはシンプルでも道のりは長くなる。「古典的方法の方が手っ取り早いのなら、別証明など要らない」という意見もあるだろうが、議論の長短ではなく、透明さ・楽しさを味わいたい。

*

鍵となるのが、次の命題。より一般的な定理から、文脈を無視して「とりあえず使う部分」を切り出したものなので、天下り的で不自然に感じられるかもしれないが、この命題の威力は、導入の唐突さを補って余りある。必要な予備知識は、整数の平方根と、合同記号

命題2 p を 2 以上の整数(必ずしも素数ではない)、R を次の範囲内の実数とする:
  実数 R についての仮定 p < R < p
  (従って p < R2 であり p2 < R4 である)
このとき、次の形のどのような連立方程式(A, B, C, D; E, F, G, H を整数の定数とし w, x, y, z を変数とする)を考えても、必ず下記範囲内に整数解がある。
  Aw + Bx + Cy + Dz ≡ 0 (mod p)  ‥‥①
  Ew + Fx + Gy + Hz ≡ 0 (mod p)  ‥‥②
  解の範囲指定 w, x, y, z はどれも絶対値が R 未満で、少なくとも一つは 0 でない。

(コメント) 命題2のポイントは「解について、タイトな範囲指定を付けられる」という部分。

伝統的な四平方の定理の証明では a, b, c, d の絶対値を p/2 未満とし、kp の k を p 未満としている。もし a, b, c, d の絶対値を p 未満に制限できればどうなるか?

p = 10000 程度とすると、p/2 は 5000 程度だが p は 100 程度。平方根による縛りは桁違いに強い(2 で割ってもせいぜい 1 桁減るだけだが、平方根を取れば桁数が約半分になる)。命題2をうまく使うと a2, b2, c2, d2 をどれも p 未満にでき、すると a2 + b2 + c2 + d2 = kp は 4p 未満なので、kp の k をいきなり 4 未満に限定できる。

定数項がある方程式では、係数が全部 ≡ 0 といった特殊ケースにおいて「解なし」という事態が生じ得る。①②には、その心配はない(左辺が ≡ 0 になってほしいという方程式の意味からすると、係数が 0 ならむしろ好都合)。一般に、方程式の数より変数の数が多ければ、それは無限個の解を持つ不定方程式: 解が存在すること自体は不思議ではないが、方程式を解かずして解の存在を保証できることは、「解の範囲指定」と相まって強力なツールとなるだろう。

p を直接使わず、それより少し大きい R を使って、上から押さえている。これは p が平方数の場合(命題2の p は素数とは限らない)も含め、範囲指定を「以下」ではなく「未満」にするため(以下の議論では p は素数なので、こんなテクニカルな扱いは本来不要なのだが、あえてこの形で紹介)。証明中の r は R 未満の最大の整数: 整数 w, x, y, z が取ることのできる最大の絶対値。

*

命題2の証明 実数 R よりちょっとだけ小さい整数を r とする―― R が整数ならそれより 1 小さい整数を r とし、R が整数でなければ R の小数部分を切り捨てた整数を r としよう。前者では 1 が切り捨てられ、後者では 1 未満の端数が切り捨てられる:
  切り捨ての量 = R − r ≤ 1 つまり R ≤ r + 1 従って
  (サ) r < R ≤ r + 1

R は整数 r と整数 r + 1 の間にあり、r は R より真に小さい。 p は 2 以上なので R は 2 = 1.41… より大きく、r は 1 以上(正の整数)。

①②の左辺の値については「4個の整数 w, x, y, z が入力で、2個の整数
  U = Aw + Bx + Cy + Dz
  V = Ew + Fx + Gy + Hz
が出力となるような関数」と解釈できる。

整数 w, x, y, z が、それぞれ 0 以上 r 以下の r + 1 種類の値を取るとすると、これら4個の整数 (w, x, y, z) の取り得る値の組み合わせは (r + 1)4 通り。この数は(サ)によって R4 以上、命題2の仮定から、それは p2 より大きい。整数 r についての仮定と、命題2自体の仮定により r < R < p なので、整数 0, 1, 2, …, r はどれも p で割った余りが異なる――つまり mod p において合同ではない。 (r + 1)4 種類の入力…
  (w, x, y, z)
…は、どれも成分の(少なくとも)一つが合同でなく、mod p において種類が異なる。

他方、整数 U, V のそれぞれは、p で割った余りで分類すると ≡ 0, 1, 2, …, p − 1 の p 種類のどれかなので、出力 (U, V) の取り得る値は mod p において最大でも p2 種類。入力の種類は p2 より多いのに、出力の種類は p2 以下に限られているので、1対1の対応はあり得ない:
  重要 →  異なる二つの入力に対して、同じ種類の出力が生じるケースが不可避!

〔鳩の巣論法〕 部屋が X 種類しかないホテルに X を超える数の鳩が宿泊するなら、2羽(以上)の鳩が入る部屋が生じる。

そのような「衝突」を引き起こす2種類の入力――必ず存在する――を (w1, x1, y1, z1) と (w2, x2, y2, z2) とすると…
  前者による出力 U1 = Aw1 + Bx1 + Cy1 + Dz1, V1 = Ew1 + Fx1 + Gy1 + Hz1
  後者による出力 U2 = Aw2 + Bx2 + Cy2 + Dz2, V2 = Ew2 + Fx2 + Gy2 + Hz2
…は、mod p において同じ種類: U1 ≡ U2 かつ V1 ≡ V2 が成立。上から下を引くと:
  0 ≡ U1 − U2 = A(w1 − w2) + B(x1 − x2) + C(y1 − y2) + D(z1 − z2)
  0 ≡ V1 − V2 = E(w1 − w2) + F(x1 − x2) + G(y1 − y2) + H(z1 − z2)
今 (w1 − w2) と (x1 − x2) と (y1 − y2) と(z1 − z2) をそれぞれ a, b, c, d と置くと、上の2式はこうなる:
  Aa + Bb + Cc + Dd ≡ 0
  Ea + Fb + Gc + Hd ≡ 0
つまり a, b, c, d は①②を両立させる。しかも a, b, c, d のどれも、絶対値において R 未満(これが重要!)――なぜならば w1 も w2 も 0, 1, 2, …, r のどれかだから、それらの差は、最大でも r − 0 = r だし最小でも 0 − r = −r。だから a = w1 − w2 の絶対値は r 以下。R より小さい整数を r としたのだから、この絶対値は、もちろん R より小さい。 w1, w2 の代わりに x1, x2 を考えれば b についても同様。 y や z を考えれば c, d についても同様。

最後に a, b, c, d の少なくとも一つは 0 ではない。なぜなら (w1, x1, y1, z1) と (w2, x2, y2, z2) は異なる種類の入力なので、それらの第1成分・第2成分・第3成分・第4成分の少なくとも一つは、値が異なる: a = w1 − w2 と b = x1 − x2 と c = y1 − y2 と d = z1 − z2 のうち、少なくとも一つは 0 でない。□

*

命題2から、四平方の定理の素晴らしい別証明が生まれる。その核心部は、以下の通り。

p を 3 以上の素数とする。天下り的だが w, x, y, z を未知数とする次の連立方程式を考えよう:
  (シ) w ≡ Ly + Mz (mod p) L, M は整数の定数
  (ス) x ≡ My − Lz (mod p)
右辺の項を全部左辺に移項すると、同じ内容をこう表現できる:
  (ジ) 1⋅w + 0⋅x − Ly − Mz ≡ 0 (mod p)
  (ズ) 0⋅w + 1⋅x − My + Lz ≡ 0 (mod p)
これは命題2の①②において、8個の係数を 1, 0, −L, −M; 0, 1, −M, L と設定した場合に他ならない。

次の《例》のように、p は p と比べ、少なくとも 1.2 大きい―― p整数部分が同じで、小数部分がちょっと大きい数(小数部分があるので整数ではない)を任意に選んで R とすると、依然として R < p であり、命題2の仮定 p < R < p が満たされる。
  《例》 p = 3 のとき p = 1.73…  R = 1.8 あるいは 1.74 あるいは 1.9 など
  p = 5 のとき p = 2.23…  R = 2.3 あるいは 2.4 など
  p = 7 のとき p = 2.64…  R = 2.7 など
  p = 11 のとき p = 3.31…  R = 3.4 など
  p = 167 のとき p = 12.92…  R = 12.93 等々

命題2から、絶対値 R 未満の範囲に(ジ)(ズ)を両立させる整数解が存在する。それを…
  w = a, x = b, y = c, z = d ここで a, b, c, d はどれも絶対値 R 未満の整数
…とすると、(ジ・ズ)と(シ・ス)は同じ意味なので、この解は(シ・ス)を満たす:
  a ≡ Lc + Md (mod p)
  b ≡ Mc − Ld (mod p)
それぞれ両辺を平方して:
  a2 ≡ (Lc + Md)2 = (Lc)2 + (Md)2 + 2(Lc)(Md)
  b2 ≡ (Mc − Ld)2 = (Mc)2 + (Ld)2 − 2(Lc)(Md)
上と下を足すと:
  a2 + b2 ≡ (Lc)2 + (Md)2 + (Mc)2 + (Ld)2 = L2c2 + M2d2 + M2c2 + L2d2 つまり
  (セ) a2 + b2 ≡ L2(c2 + d2) + M2(c2 + d2) = (L2 + M2)(c2 + d2)

前回の命題1により、
  整数2 + 整数2 + 1 ≡ 0 (mod p)
を満たす2整数が必ず存在するので、それらを L, M としよう。つまり:
  L2 + M2 + 1 ≡ 0 従って L2 + M2 ≡ −1
(セ)に代入して:
  a2 + b2 ≡ (L2 + M2)(c2 + d2) ≡ (−1)(c2 + d2) = −c2 − d2
右端から左端に移項すると:
  a2 + b2 + c2 + d2 ≡ 0 (mod p)
言い換えれば、上の左辺は p の倍数:
  (ソ) a2 + b2 + c2 + d2 = kp ここで k は正の整数

整数 a, b, c, d はどれも絶対値 R 未満だが、R は整数ではない。整数で表現するなら a, b, c, d の一つ一つは:
  絶対値が「R の整数部分」以下
p整数部分が同じになるように R を選んだのだから、大小関係はこう整理される:
  整数 a, b, c, d の絶対値 ≦ R の整数部分 = p の整数部分 < 非整数 p
結局 a, b, c, d はどれも絶対値 p 未満、従ってどれも平方すると p 未満。だから:
  a2 + b2 + c2 + d2 < p + p + p + p = 4p
このことと(ソ)から次の不等式が生じ、結論として k = 1 or 2 or 3 となる:
  (タ) a2 + b2 + c2 + d2 = kp < 4p
命題2は「a, b, c, d の少なくとも一つは 0 でない」ことを保証する。だから(タ)の左辺は 0 でなく、従って k = 0 ではない。

この k < 4 は、命題1 (ii) の k < p と比べ、はるかに優秀な不等式だ。 p が1万程度や100万程度のケースを考えてみれば、定数 4 で上から押さえられることの強力さは、明白だろう。この妙案を実際の証明に生かすためには、k = 2, 3 の場合を直接処理する必要がある。さもないと(ウ・エ・オ)のような議論が結局必要になり、せっかくタイトな不等式で k を縛っても、それを有効活用できない。この先については次回

*

ドイツ生まれの Alfred Brauer はユダヤ系の数論学者(群論学者 Richard Brauer の兄)。ナチス政権下で迫害に遭い、妹は強制収容所で亡くなったという。苦労してドイツを脱出、1940年ごろ渡米。このメモのアイデアが記されている論文は Reynolds と連名で書かれ、1951年にカナダの雑誌に掲載された。そこでは Aubry–Thue の定理の一般化という文脈の中で、その活用例の一つとして四平方の定理が言及されている。

〔参考文献〕 Alfred Brauer & R. L. Reynolds: On a Theorem of Aubry-Thue, Canadian Journal of Mathematics, Volume 3 (1951), pp. 367–374
https://www.cambridge.org/core/services/aop-cambridge-core/content/view/47476FC5939695554A5A5E6EFF4C2E50/S0008414X00031126a.pdf/on-a-theorem-of-aubry-thue.pdf

⁂

 2023-08-22 四平方の定理(その3) 直接証明の完成

#数論 #四平方 #平方和

四平方の定理の古典的証明では「正の整数 k をだんだん小さくできるので、いつかは k = 1 になる」というロジックを使う。「降下法」と呼ばれる間接証明…。あまり楽しくない。前回紹介した Alfred Brauer たちの方法を使うと、直ちに「k = 1, 2, 3 のどれか」と断定できる。素晴らしい!

だが k = 2, 3 の場合どうやって k = 1 に持ち込めばいいのだろう…。結局「降下法」で k を小さくするのでは、別証明の意味がない。「2n または 3n が四つの平方数の和で表されるなら n も四つの平方数の和で表される」ということを直接的に証明したい。

*

【1】 34 = 25 + 9 = 52 + 32 のように、ある数が2平方和で表されているとき、その数の 4 倍(この例では 34 × 4 = 136)を2平方和で表すことは易しい。平方されている二つの数をそれぞれ 2 倍するだけでいい:
  (5 × 2)2 + (3 × 2)2 = 102 + 62 = 136
一般に a2 + b2 = n の a, b をそれぞれ 2 倍すれば、両辺は 4 倍される:
  (2a)2 + (2b)2 = 4a2 + 4b2 = 4(a2 + b2) = 4n

同様に a2 + b2 = n の a, b をそれぞれ 1/2 倍すれば、両辺は 1/4される:
  (1/2 × a)2 + (1/2 × b)2 = 1/4 × a2 + 1/4 × b2 = 1/4 × (a2 + b2) = 1/4 × n
左辺の2数がそれぞれ整数の平方になるためには、もちろん a, b が両方 2 で割り切れる必要がある(偶数)。

52 + 32 = 34 を出発点として、2 倍の 68 を2平方和で表すことも易しい。平方されている二つの数の、和と差を使えばいい:
  (5 + 3)2 + (5 − 3)2 = 82 + 22 = 64 + 4 = 68

これがうまくいく理由:
  和の平方 (a + b)2 = a2 + b2 + 2(ab)
  差の平方 (a − b)2 = a2 + b2 − 2(ab)
両者を足し合わせると、+2(ab)−2(ab) が消滅して、こうなる:
  (a + b)2 + (a − b)2 = a2 + b2 + a2 + b2 = 2(a2 + b2)
従って:
  a2 + b2 = n なら (a + b)2 + (a − b)2 = 2n

では 52 + 32 = 34 を出発点として、1/2(つまり半分)の 17 を2平方和で表すことは可能だろうか?

一般に、m が 2 で割り切れる場合、a2 + b2 = m を出発点として x2 + y2 = m/2 を満たす整数 x, y を見つけられるか?

*

【2】 ある数 n が二つの平方数の和のとき…。2n を二つの平方数の和で表す方法は、上述の通り(二つの数の和と差を利用)。1/4 × n を2平方和で表すのは、最初に記したように簡単。この二つを組み合わせれば、2 倍されて 1/4 倍 されるのだから、トータルでは 1/2 倍 になるはず。つまり「和の半分の平方」と「差の半分の平方」を使えば良さそう…。

52 + 32 = 34 を出発点に試すと:
  和の半分の平方 (5 + 3/2)2 = 42 = 16
  差の半分の平方 (5 − 3/2)2 = 12 = 1
  42 + 12 = 17 うまくいった!

一般に a2 + b2 の和 m が 2 で割り切れる場合(つまり m は偶数)、同様に考えると:
  (チ) ((a + b)/2)2 + ((a − b)/2)2 = m/2
(チ)左辺の2個の丸かっこ内をそれぞれ x, y とすれば x2 + y2 = m/2 だが、(チ)の丸かっこ内が整数になる保証はあるのか?

偶数の平方は偶数、奇数の平方は奇数なので、a2 + b2 = m = 偶数という前提では、次の二つの可能性がある:
  可能性1 a2 + b2 = 偶数2 + 偶数2 = 偶数 + 偶数 = 偶数
  可能性2 a2 + b2 = 奇数2 + 奇数2 = 奇数 + 奇数 = 偶数
それ以外の可能性はない: もしも a, b の片方だけが偶数(もう一方は奇数)だとすると、a2 と b2 の和は、偶数 + 奇数 = 奇数になってしまい、m が偶数という前提に反する。

可能性1の場合 a, b は両方偶数なので、それらの和・差も偶数: (チ)の丸かっこ内の分子は 2 で割り切れる。可能性2の場合 a, b は両方奇数だが、奇数同士の和・差は偶数なので、やはり(チ)の丸かっこ内は整数。いずれにしても、偶数が二つの平方数の和で表されるなら、その偶数の半分の数も、二つの平方数の和で表される!

このことから、次の命題が成り立つ。

命題3 ある偶数 2n が、次のように四つの平方数の和で表されるとする:
  a2 + b2 + c2 + d2 = 2n
このとき、その偶数の半分(つまり n)も4平方和で表される。

命題3の証明 上と同様に考えると a, b, c, d は全部偶数か、全部奇数か、または偶数2個・奇数2個。必要に応じて変数名を交換して、前半の a, b と後半の c, d が、それぞれ両方偶数または両方奇数になるようにしよう。すると 1/2 × (a2 + b2) は(チ)の形になり、同様に 1/2 × (c2 + d2) は次の値に等しい:
  ((c + d)/2)2 + ((c − d)/2)2
だから 1/2(a2 + b2 + c2 + d2) = 2n/2 = n は、次の四つの平方数の和:
  (ツ) ((a + b)/2)2 + ((a − b)/2)2 + ((c + d)/2)2 + ((c − d)/2)2 = n
平方される丸かっこ内は、どれも整数。□

Alfred Brauer たちの方法によると、任意の素数 p について、次が成り立つのであった。
  a2 + b2 + c2 + d2 = kp ただし k = 1 or 2 or 3
k = 1 なら四平方の定理の証明が完了する。命題3で n = p とすれば、a2 + b2 + c2 + d2 = 2p を変形して(ツ)の4平方和 = p にできるので、k = 2 のケースは k = 1 に帰着。 k = 3 のケースについては、すぐ後で述べる(命題4)。

*

【3】 命題3を使っていいなら、最初に記した「回りくどいが平易な証明」も、幾らか簡単になる。(ア)の
  A2 + B2 + C2 + D2 = kp  ここで k は 2 以上
において、k が偶数なら命題3を適用し、k/2 をあらためて k と置く。その k も偶数なら再び命題3を適用し…というのを 2 で割り切れなくなるまで繰り返すと、k は奇数になる。特に k = 2, 4, 8, 16, … なら何もしないで k = 1 に帰着。それ以外の場合 k は 3 以上の奇数と仮定できる。

このように k を奇数に限定しておくと、次の部分で違いが生じる:
  「A, B, C, D をそれぞれ k で割って余りを a, b, c, d とする。
  ただし余りが k/2 より大きい場合、その余りから k を引いた負の余りに置き換える」
k が奇数なら k/2 は整数でないので、余りがちょうど k/2 になる可能性はない。その場合 a, b, c, d の絶対値は k/2 以下というだけでなく、k/2 未満…と断言できる。すると(オ)との関係で…
  jp = a2 + b2 + c2 + d2 ≤ (k/2)2 + (k/2)2 + (k/2)2 + (k/2)2 = k2
…の不等号を「以下」から「未満」に改善でき、両辺を k で割った結果も j ≤ k から j < k に改善される。だから j = k の可能性を否定する手間が省ける。

この「k が偶数・奇数で場合分け」というのが、伝統的なやり方のようだ。確かに手間が省けるが、その代わり、命題3を導入する手間が増える。トータルでどちらがいいかは微妙。一方、Alfred Brauer たちの方法では、命題3と次の命題4を併用することで、因習的な「降下法」を排除できる。 j < k うんぬんの議論そのものが不要に。

*

【4】 本日のメインディッシュ。

命題4 n を整数とする。 3n が4平方和で表されるなら n も4平方和で表される。

要するに、命題3の 2n と n と同様の関係が、3n と n についても成り立つ。

命題4の証明 3 の倍数の平方はもちろん 3 の倍数だが、「3 の倍数以外の整数」(以下「非倍数」と略)の平方は 3 の倍数より 1 大きい。

〔例6〕 4 は 3 で割ると 1 余る。 → 平方 42 = 16 を 3 で割ると 1 余る。
5 は 3 で割ると 2 余る。 → 平方 52 = 25 を 3 で割ると 1 余る。

なぜなら非倍数 x は x ≡ 1 or 2 (mod 3) を満たすので、x2 ≡ (12 or 22) ≡ (1 or 4) ≡ 1 となる: 代わりに、最初から x ≡ ±1 (mod 3) と表現するなら x2 ≡ 1 は明白。
  (テ) a2 + b2 + c2 + d2 = 3n
…は 3 の倍数なので、上記の事実を考慮すると a, b, c, d は、四つとも 3 の倍数であるか、さもなければ、一つが 3 の倍数で残りの三つは非倍数。どちらの場合でも a, b, c, d の少なくとも一つは 3 の倍数。必要に応じて変数名を入れ替え、d が 3 の倍数だとしよう。

ケース1 a, b, c はどれも非倍数。一般に x が非倍数なら x ≡ +1 or −1 (mod 3) で、それに対応して −x ≡ −1 or +1 なので、x と −x の一方は ≡ +1。整数 a, b, c は平方されるので、符号を入れ替えても式の値は変わらない。必要に応じて符号を逆にして(例えば −a をあらためて a と呼ぶことにして) a ≡ b ≡ c ≡ 1 (mod 3) にできる。そうすれば a − b, b − c, c − a はいずれも 3 の倍数。

ケース2 a, b, c は全部 3 の倍数。何もしなくても a − b, b − c, c − a は再び 3 の倍数。

どちらの場合も a − b, b − c, c − a は 3 の倍数。仮定によって d も 3 の倍数なので、次の三つの値はいずれも 3 の倍数:
  K = a − b + d その平方は K2 = a2 + b2 + d2 + 2(−ab + ad − bd)
  L = b − c + d その平方は L2 = b2 + c2 + d2 + 2(−bc + bd − cd)
  M = c − a + d その平方は M2 = c2 + a2 + d2 + 2(−ac + cd − ad)
ここで K2 + L2 + M2 を考えると、上の三つの式の右端の丸かっこ内の3項のうち、第2・第3項は、どれも消えてなくなる:
  (ト) K2 + L2 + M2 = 2a2 + 2b2 + 2c2 + 3d2 − 2(ab + ac + bc)

K, L, M が 3 で割り切れることを利用して、次のような変形を実現できれば、命題4が証明される:
  (K/3)2 + (L/3)2 + (M/3)2 + (何か)2 = n = 1/3 × (a2 + b2 + c2 + d2)
二つ目の等号は(テ)の両辺を 3 で割ったもの。「何か」の正体は謎だが、直観的には N/3 と置くべきだろう(N は未知数)。すると:
  1/9 × (K2 + L2 + M2 + N2) = 1/3 × (a2 + b2 + c2 + d2)
両辺を 9 倍して:
  K2 + L2 + M2 + N2 = 3(a2 + b2 + c2 + d2) = 3a2 + 3b2 + 3c2 + 3d2
この左辺・右辺から、それぞれ(ト)の左辺・右辺を引くと:
  N2 = a2 + b2 + c2 + 2(ab + ac + bc)
この最後の右辺は (a + b + c)2 なので(「ごちゃごちゃを解きほぐす」の ☆☆ 参照)、次の結論に至る:
  N = a + b + c
都合がいいことに、ケース1(a ≡ b ≡ c ≡ 1)でもケース2(a ≡ b ≡ c ≡ 0)でも、この N は 3 で割り切れる。

だから次の丸かっこ内は、どれも整数:
  (K/3)2 + (L/3)2 + (M/3)2 + (N/3)2 = n
命題4が証明された。□

四平方に関する J. J. Sylvester の補題 3 の倍数 3n が4平方和として与えられた場合、平方されている四つの数の中に必ず一つは 3 の倍数があるので、それを d とする。残りの三つの数 a, b, c について、その中に 3 の倍数が一つでもあれば、全部 3 の倍数なので、そのままでいい。さもなければ、どれも非倍数なので、それぞれ 3 で割ってみて、もし 2 余る場合には符号を反転させる(結果として a, b, c はどれも ≡ 1 になる)。

この準備の後で、n を次のように4平方和で表すことができる:
  ((a − b + d)/3)2 + ((b − c + d)/3)2 + ((c − a + d)/3)2 + ((a + b + c)/3)2 = n

最初の三つの分子は、それぞれ a − b, b − c, c − a という巡回的な引き算に d を足したもの。最後の分子は単に a + b + c。命題4の証明から、こうなる理由は明らかだろう。

〔例7〕 3 × 40 = 120 が次の形で与えられたとして、40 を4平方和で表す。
  82 + 62 + 42 + 22 = 64 + 36 + 16 + 4 = 120
左辺第2項にある 6 が 3 の倍数なので d = 6 とする。残りの数を暫定的に a = 8, b = 4, c = 2 とすると b ≡ 1 (mod 3) だが a ≡ c ≡ −1 (mod 3) なので、符号を調整して a = −8, b = 4, c = −2 とする。与えられた平方和をこう再解釈したことに当たる:
  (−8)2 + 42 + (−2)2 + 62
ここで a = −8, b = 4, c = −2 はどれも 3 の倍数より 1 大きい(具体的には、それぞれ −9, 3, −3 より 1 大きい)。命題4から:
  K = a − b + d = −12 + 6 = −6
  L = b − c + d = 6 + 6 = 12
  M = c − a + d = 6 + 6 = 12
  N = a + b + c = −4 − 2 = −6
  (K/3)2 + (L/3)2 + (M/3)2 + (N/3)2 = 22 + 42 + 42 + 22 = 4 + 16 + 16 + 4 = 40

〔例8〕 3 × 45 = 135 が次の形で与えられたとして、45 を4平方和で表す。
  92 + 32 + 32 + 62 = 81 + 9 + 9 + 36 = 135
9, 3, 3, 6 は全部 3 の倍数なので、そのまま a = 9, b = 3, c = 3, d = 6 とすると:
  K = a − b + d = 6 + 6 = 12
  L = b − c + d = 0 + 6 = 6
  M = c − a + d = −6 + 6 = 0
  N = a + b + c = 12 + 3 = 15
  (K/3)2 + (L/3)2 + (M/3)2 + (N/3)2 = 42 + 22 + 02 + 52 = 16 + 4 + 25 = 35

補足1 簡潔化のためケース1の符号調整を a ≡ b ≡ c ≡ 1 に固定したが、a ≡ b ≡ c ≡ −1 でも構わない(その設定でも a − b, b − c, c − a 及び a + b + c は 3 の倍数)。〔例7〕でそのように符号を選択すると a = 8, b = −4, c = 2, d = 6 となり K = 18, L = M = 0, N = 6 を経て 62 + 02 + 02 + 22 = 36 + 4 = 40 という別表現を得る。実用上 a, b, c の三つが合同なら何もせず(≡ 1 でも ≡ −1 でも可)、二つが合同で一つが不合同なら、不合同な一つの符号だけを逆転させればいい。

補足2 Brauer たちの別証明の完成だけが目的なら、話をケース1に限定して命題4を少し簡単化できる: p が素数のとき、p = 3 の場合を別にすると、3p が 32 の倍数になることは不可能なので a2 + b2 + c2 + d2 = 3p の a, b, c, d が全部 3 の倍数になることはない。例外の p = 3 については、直接 12 + 12 + 12 + 02 = 3 とできる。

*

19世紀英国の数学者 J. J. Sylvester は、命題4を使って、四平方の定理の独自の新証明を試みている。その議論は予想に立脚するもので、厳密な意味での証明ではないが、シンプルで刺激的。そのうち紹介したい。

〔参考文献〕 J. J. Sylvester, Note on a principle in the theory of numbers and the resolubility of any number into the sum of four squares
https://archive.org/details/SylvesterCollected2
pp. 101–102

⁂

 2023-09-15 四平方の定理(その4) 星と月の意味

#数論 #四平方 #平方和

「任意の素数 p のどれかの倍数 kp は x2 + y2 + 1 の形を持つ」という命題1は、四平方の定理の古典的証明の出発点だが、若干、天下り的にも感じられる。証明しろといわれればできるが、そもそもどこからこんな命題が出てくるのか?

次のように考えると、この命題は、結構自然かも。

mod p において −1 は平方剰余か非剰余かのどちらか――簡単に言えば x2 ≡ −1 は解を持つか、持たないかのどちらか。

もし解を持つなら x2 ≡ −1 を満たす x があるのだから、右辺を移項して x2 + 1 ≡ 0 つまり:
  x2 + 1 は p の倍数
言い換えれば x2 + 1 = kp と書ける。これは次のようにも書けるので、命題1が成り立つ。
  x2 + 02 + 1 = kp

*

問題は x2 ≡ −1 が解を持たない場合、すなわち
  x2 ≡ −1 ≡ 6 (mod 7)
のようなケース。 mod 7 での平方数は 02 ≡ 0 を別にすると (±1)2 ≡ 1, (±2)2 ≡ 4, (±3)2 ≡ 2 の 3 種類なので、−1 ≡ 6 が非平方であること自体は、論をまたない。他方 mod 何であろうとも (±1)2 ≡ 1 が平方数であることも明白。すると p − 1 が非平方であるケースにおいては、
  (ナ) 1, 2, 3, …, p − 1
の p − 1 種類の数の中には、平方数もあれば、非平方数もある(平方数の例は 1、仮定により非平方数の例は p − 1)。 mod 7 の例では 1 と 2 は平方数だが 3 は非平方。別の mod では、もしかすると、例えば 1, 2, 3, 4, 5 が 5 連続で全部平方数で 6 が非平方かもしれないが、ともかく(ナ)の全部が平方数ではないことと、(ナ)の左端の 1 が平方数であることは確定しているので、
  1, 2, 3, …, z までは全部平方数だが z + 1 は非平方
のような「平方と非平方の変わり目」が存在するはずだ――説明の便宜上(ナ)の中で最小の非平方数を z + 1 としよう。

すると z は平方数なので、
  (ニ) x2 ≡ z
を満たす x が存在するが、z + 1 は非平方なので、
  x2 ≡ z + 1
を満たす x は存在しない。この場合、仮定により −1 も非平方であるから、次の数は非平方と非平方の積であり、すなわち平方数(理由は後述):
  (−1)(z + 1) ≡ −z − 1
要するに、次の式を満たす y が存在する:
  (ヌ) y2 ≡ −z − 1

(ニ)(ヌ)の左辺同士・右辺同士を足し算すると x2 + y2 ≡ −1 となり、この −1 を移項すれば、自然に命題1の形になる:
  x2 + y2 + 1 ≡ 0 つまり x2 + y2 + 1 は p の倍数

mod 7 の例では 1, 2 は平方数で 3 が非平方なので z = 2。この場合(ニ)の一つの解は x ≡ 3 であり、(ヌ)すなわち
  y2 ≡ −3 ≡ 4
の一つの解は、もちろん y ≡ 2 であるから、次の数が 7 の倍数になる(事実 14 は 7 の倍数):
  x2 + y2 + 1 = 32 + 22 + 1 = 14
これは「素数 p = 7 の倍数の中には x2 + y2 + 1 の形のものがある」という「命題1の具体例」に他ならない!

p = 7 に限らず、全部の素数が同じ性質を持ち、それを出発点に四平方の定理が導かれる。

*

次にこれを星組・月組の観点から考えてみる。星組に属する数を「星」と呼ぶことにしよう。

奇数の素数 p = 2n + 1 について、
  星組の数 02, 12, 22, …, n2
は、もちろん平方数――それを p で割った余りも mod p において平方数(より正確な用語は「平方剰余」だが、とにかく平方数と合同)。
  月組の数 −(02 + 1), −(12 + 1), −(22 + 1), …, −(n2 + 1)
のどれかが、mod p において、星組のどれかの数と合同になるということは、月組の中にある「星」を見つけることに他ならない。星組の数は「星」、月組の数は「月」だが、「月」の中には「月であると同時に星でもあるもの」が少なくとも一つ存在する!

上記(ニ)の z は、もちろん星組のどれかの数と合同。他方(ヌ)は次の式と同じ意味なので、(ヌ)の z も同じ z だ:
  −y2 ≡ z + 1 つまり −(y2 + 1) ≡ z

まとめると(ニ)(ヌ)は、次の意味を持つ:
  星組のどれかの数 x2 ≡ z は、月組のどれかの数 −(y2 + 1) ≡ z と合同

最初に証明したときは、「星たちは全部違う種類の数。月たちも全部違う種類の数。だけど星組と月組を合わせた全員が違う種類ということは、あり得ない」という鳩の巣論法から、このような z の存在を導いた。今回の方法によれば、そのような z の存在をより直接的に示すことができる。こっちの方が、すっきり!

ただし、こっちの道を歩むためには「平方剰余・非剰余」の概念だけでなく、「非剰余と非剰余の積は平方剰余」という性質が必要。この性質は Euler の基準から容易に導かれる。Euler の基準の一つの証明は別のメモにあるが、結論だけ言えば:

p を奇数の素数として A を p の倍数以外の整数とする。mod p において A(p−1)/2 は +1 か −1 のどちらかと合同。どちらと合同かによって、A が平方剰余か非剰余かが決まる。
  A(p−1)/2 ≡ +1 ⇔ A は平方剰余
  A(p−1)/2 ≡ −1 ⇔ A は平方非剰余

われわれの仮定によれば −1 と z + 1 がどちらも非剰余なので…
  (−1)(p−1)/2 ≡ −1 と (z + 1)(p−1)/2 ≡ −1
…が両方成り立ち、それらの左辺同士・右辺同士を掛け算すると:
  (ネ) (−1)(p−1)/2⋅(z + 1)(p−1)/2 ≡ +1
読みやすいように (p−1)/2 を h と略すと、(ネ)の左辺は次の整数に等しい:
  (−1)h⋅(z + 1)h = [(−1)(z + 1)]h = (−z − 1)h = (−z − 1)(p−1)/2
だから Euler の基準により A = −z − 1 は平方剰余。つまり(ヌ)を満たす y が存在する。

より一般的に、非平方(非剰余)同士の積は、平方数(平方剰余)になる。

*

さらに言うと:
  星組の数 02, 12, 22, …, n2
が(02 も含めて)全種類の平方剰余である、ということから、
  月組の数 −(02 + 1), −(12 + 1), −(22 + 1), …, −(n2 + 1)
の中に平方剰余があるとしたら(実際、あるのだが)、それは「星」のどれかと合同。もし −1 が平方剰余なら、月組の最初の数が平方剰余であり、それ以上の議論は必要ない。もし −1 が非剰余なら、星組の数プラス1…
  (ノ) (02 + 1), (12 + 1), (22 + 1), …, (n2 + 1)
…の中に非剰余があり、その −1 倍は「月組にも属する星」となる。

(ノ)が非剰余を含む根拠は上述の通り: −1 が非剰余という前提だと、必ずどこかに「z は平方剰余だが z + 1 は非剰余」という「変わり目」が存在する。今 z ≡ x2 と置けば(仮定により z は平方剰余なので、これを満たす x は存在)、それプラス 1 すなわち次の数は非剰余:
  z + 1 ≡ x2 + 1
この数は(ノ)のどれかと合同。なぜなら、星組は全種類の「平方剰余」を過不足なく含むので、(ノ)は全種類の「平方剰余プラス1」を過不足なく含む: z + 1 もそこに含まれる。

以上の議論は、あまりタイトではない。現実には −1 が平方剰余であろうが非剰余であろうが、このような「変わり目」の数は存在するし、−1 が平方剰余か非剰余かは「もし」といったあやふやな話ではなく、p が 4 で割って 1 余るか 3 余るかに応じて決まる。四平方の定理の証明では、そこまで踏み込む必要はないので、緩く流している。

議論が緩いのも当然で、素数を平方和で表すとき、多くの場合、4個も平方数を使う必要はない。例えば 4n+1 型の素数なら、2個の平方数の和で表現可能(クリスマス定理)。「4個使っていい」という条件は、多くの場合、過剰に緩い。半面、p を一般の素数とすると、3個以内の平方数の和では表されないケースも存在する。

実際、任意の整数の平方は mod 8 において 0, 1, 4 のどれかと合同。すると、
  x2 + y2 + z2 ≡ p
は p ≡ 1, 3, or 5 (mod 8) の場合に解を持ち得るが――例えば、それぞれ 1 + 0 + 0, 1 + 1 + 1, 4 + 1 + 0 とできるかもしれない―― p ≡ 7 に関しては、0, 1, 4 のうち 3 個(重複選択可)をどう足しても 7 にはならないので、「8 で割って 7 余る素数」(例えば 7 や 23)については、三平方和で表すことは不可能。「8 で割って 7 余る素数」以外にも、駄目なケースがあるかもしれないし、ないかもしれないが、ともかく「平方数3個では足りない場合」がある。そして、そのような(3個では足りない)ケースも含めて、4個の平方数があれば、どんな自然数も足し算で作ることができる。四平方の定理は「緩いようだが実は(一般の場合を考えると)ギリギリ」という性質を持つ。なかなか面白い!

⁂

 2023-09-21 102+112+122 = 132+142 = 365 きれいな和

#数論 #四平方 #平方和

1年の日数 365 = 73 × 5 を平方数「2個」の和で表す方法は、本質的に2通りある:
  132 + 142 = 169 + 196 = 365
  192 + 22 = 361 + 4 = 365
今回のメモとは関係ないが、次の「3個」の和の表現も、ひどく好奇心を刺激する:
  102 + 112 + 122 = 100 + 121 + 144 = 365

2種類の「2個の和」の表現は、古典的な方法で――あるいはガウス整数を使って――説明される。四平方のときの命題1
  「任意の素数 p について、その p のどれかの倍数は x2 + y2 + 1 の形を持つ」
…や Fermat の「降下法」を一部、再利用できる。天下り的にも思えた「命題1」は、意外と深い意味を持つのかもしれない。

*

【1】 5 − 1 = 4 は平方数 22 なので
  5 = 22 + 02 + 1 つまり x = 2, y = 0
と書けることは明らかだろう。 p = 5 については、p 自身、つまり p の 1 倍が x2 + y2 + 1 の形を持つ。これは mod 5 における 4 ≡ −1 の平方根 2 を利用したもの。同様に考えると mod 73 における −1 の平方根(要するに平方すると 73 の倍数より 1 小さくなる数)を x とすれば、 x2 は 73 の倍数より 1 小さいので…
  x2 + 02 + 1
…は 73 の倍数に。具体的に 272 = 729 は 73 の倍数より 1 小さいので…
  272 + 02 + 1 = 730 つまり x = 27, y = 0
…は 73 の倍数(10倍)。他方 73 − 1 = 72 = 36 + 36 なので、次のように 1 倍を直接作ることもできる:
  62 + 62 + 1 = 73 つまり x = 6, y = 6

以下では y = 0 の形式を扱う。

命題5 p を「4 の倍数より 1 大きい素数」とする(p = 4n + 1)。 p の倍数 kp の中には x2 + 1 の形を持つものが存在する。ただし k は 1 以上で p より小さい。

これは命題1において y = 0 となる特別な場合。 x2 + 1 が p の倍数ということは x2 + 1 ≡ 0 (mod p) と同じ意味で、言い換えれば x2 ≡ −1 (mod p) と同じ意味なので、要するに「法 p が 4n + 1 の形なら −1 は平方剰余」という主張(第一補充法則)に他ならない。前回「−1 が平方剰余なら、命題1をこのように解釈できる」ことについてメモしたが「−1 が平方剰余になる条件」については、立ち入らなかった。

〔証明〕 仮定により (p − 1)/2 = ((4n + 1) − 1)/2 = 2n は偶数。Euler の基準により −1 は平方剰余:
  (−1)(p−1)/2 = (−1)2n = 1 ≡ +1 (mod p)  ← −1 の偶数乗は +1
従って x2 ≡ −1 (mod p) は解を持つ。 mod p における解 x は 0, 1, 2, …, p−1 のどれかと合同。その範囲から解 x を選ぶとすると、x2 + 1 は、最大でも次の値以下:
  x2 + 1 = (p − 1)2 + 1 = p2 − 2p + 2 = p2 − 2(p − 1)
素数 p は 2 以上(この命題では実際には 5 以上)なので p − 1 は正。ゆえに:
  x2 + 1 = p2 − 2(p − 1) < p2
x2 + 1 は明らかに正。それが p の倍数 kp に等しいのだから:
  0 < x2 + 1 = kp < p2
その両辺を正の数 p で割ると 0 < k < p となる。それが示したいことだった。□

補足1 この証明での x の範囲の評価は、少し甘い。実際には x ≡ 0, 1 は題意を満たさない。 x2 ≡ −1 を成り立たせる x は、もっと狭い次の範囲に存在する。
  2, 3, 4, …, (p−1)/2
例えば mod 13 における −1 の平方根は、命題5の理屈からは 0, 1, 2, …, 12 のどれかだが、実際にはもっと狭く 2, 3, … 6 のどれかが条件を満たす。具体的に
  82 = 64 = (13 の倍数 65) − 1
なので 8 は −1 の平方根の一つだが、−8 ≡ 5 の平方も同じ値を持つ。
  (−8)2 ≡ 52 = 25 = 26 − 1 ≡ −1 (mod 13)

補足2 次の意味で命題5の逆も成り立つ。p が「4 の倍数より 3 大きい素数」(p = 4n + 3)なら x2 ≡ −1 (mod p) は解を持たない。つまり −1 は非剰余。なぜなら、この場合 (p−1)/2 = (4n+3−1)/2 = 2n+1 は奇数なので、Euler の基準 (−1)(p−1)/2 の値は ≡ −1。

*

【2】 「平方数 2 個の和で表される数」と「平方数 2 個の和で表される数」の積は、再び平方数 2 個の和――ごちゃごちゃした 4 平方和バージョンに比べると、これは易しい:

2平方和についての恒等式 (A2 + B2)(a2 + b2) = (Aa + Bb)2 + (Ab − Ba)2

〔証明〕 左辺 = (Aa)2 + (Ab)2 + (Ba)2 + (Bb)2
外側の 2 項・内側の 2 項それぞれの和を考え ±2AaBb を適当に追加すると:
  = (Aa)2 + (Bb)2 + 2(Aa)(Bb)
  + (Ab)2 + (Ba)2 − 2(Ab)(Ba)
これは確かに、恒等式の右辺に等しい。追加された項はプラマイ・ゼロで、式の値に影響しない。□

〔参考〕 追加される項の符号は両方逆でも構わない。その場合:
  (A2 + B2)(a2 + b2) = (Aa − Bb)2 + (Ab + Ba)2
最初のバージョンと合わせて書くと(複号同順):

ゴージャス版 (A2 + B2)(a2 + b2) = (Aa ± Bb)2 + (Ab ∓ Ba)2

このシンプルな恒等式は、365 = 73 × 5 が 2 通りの方法で平方数「2個」の和で表されることの、具体的な根拠を与えてくれる:
  73 = 82 + 32  ← A = 8, B = 3
  5 = 22 + 12  ← a = 2, b = 1
Aa + Bb = 16 + 3 = 19, Ab − Ba = 8 − 6 = 2 なので、最初の恒等式(ゴージャス版の複号の上側)から:
  365 = 73 × 5 = 192 + 22
ゴージャス版の複号の下側を使うと Aa − Bb = 16 − 3 = 13, Ab + Ba = 8 + 6 = 14 なので:
  365 = 73 × 5 = 132 + 142

↓ 脱線コーナー。斜め読み推奨。

以下の議論には必要ないけど、これをガウス整数の立場から再解釈すると、現象の核心を垣間見ることができる。恒等式
  x2 − y2 = (x + y)(x − y)
の y に虚数単位 i を掛けると:
  x2 − (yi)2 = (x + yi)(x − yi)
−(yi)2 = −y2(i2) = −y2(−1) = +y2 なので:
  x2 + y2 = (x + yi)(x − yi)
これを「2平方和 x2 + y2 とは、ガウス整数 P = x + yi とその共役きょうやくのガウス整数 P* = x − yi の積のこと」と解釈し、ガウス整数 P とその共役の積を P のノルムと呼ぶなら:
  x2 + y2 = N ⇔ P = x + yi のノルムは N

ノルム 73 を持つガウス整数 P = 8 + 3i と、ノルム 5 を持つガウス整数 Q = 2 + i が与えられたとき、ノルム 365 = 73 × 5 を持つガウス整数は、本質的には次の2種類だけ:
  PQ = (8 + 3i)(2 + i) = 16 + 8i + 6i − 3 = 13 + 14i
  PQ* = (8 + 3i)(2 − i) = 16 − 8i + 6i + 3 = 19 − 2i
この他、P*Q あるいは P*Q* という選択肢も考えられるが、前者は PQ* の共役、後者は PQ の共役なので、y の符号が逆になるだけで y2 の値は変わらない。

恒等式ゴージャス版において下側の符号を選択するなら、その左辺は「ガウス整数の積のノルム」を表し、右辺は「ガウス整数のノルムの積」を表している。というのも、P = A + Bi, Q = a + bi とすると:
  積 PQ = (A + Bi)(a + bi) = (Aa − Bb) + (Ab + Ba)i について
  norm(PQ) = (Aa − Bb)2 + (Ab + Ba)2
ゴージャス版から、この最後の右辺 = (A2 + B2)(a2 + b2) だが、それは
  norm(P) = A2 + B2 と norm(Q) = a2 + b2 の積
に等しい。

われわれは、やがて示すであろう。複素数のノルムに関する等式 norm(PQ) = norm(P) norm(Q) が、四元数のノルム・八元数のノルムに関してもそのまま成り立つということを…。

↓ 本題に戻る。

【3】 1640年のクリスマスの日、Fermat は Mersenne に手紙を書き、次の主張をした。 Euler もこの命題を知り、その正しさを確信していたが、厳密には証明できなかったようだ…。

命題6 4 の倍数より 1 大きい素数 p は、平方数「2個」の和で表される。

〔例〕 p = 5 = 22 + 12, p = 13 = 32 + 22, p = 17 = 42 + 12, p = 29 = 22 + 52, etc.

Fermat 自身が証明を完成させていたかどうかは不明。Fermat の「下降法」を使って次のように命題6を導けるので、証明ができていたとしても不思議はない。

〔証明〕 4 の倍数より 1 大きい素数 p = 4n+1 が任意に与えられたとする。命題5によれば、p のとある倍数 kp を kp = x2 + 1 と書くことができる。ここで x を A として、1 を B = 1 の平方と見なすと、kp は平方数「2個」の和となる:
  (ハ) A2 + B2 = kp
ただし k の範囲は 1 ≤ k < p だった(命題5参照)。もし最初から k = 1 なら p を「2個」の平方数の和で表せたことになり、命題6の証明は完了する。よって k の初期値を 2 以上と仮定し、この係数を「もっと小さくできる」こと(その意味はすぐに明らかになる)を示したい。

四平方の定理の証明の(ウ)(エ)(オ)と同様の方法を使って、われわれは次のように A, B を「小さく」してそれぞれ a, b に置き換える:
  (ヒ) A ≡ a, B ≡ b (mod k) ただし a, b はどちらも絶対値 k/2 以下
  (フ) a2 + b2 = j k 言い換えれば a2 + b2 ≡ 0 (mod k)

具体的には A, B をそれぞれ k で割った余りを a, b とする――ただし余りが k/2 より大きい場合は、その余りから k を引いて、a ないし b の値を
  k/2 より大きく 0 より小さい負の余り
に置き換える。

(フ)の前半と(ハ)の、左辺同士・右辺同士を掛け算して:
  (A2 + B2)(a2 + b2) = j k2p
この左辺は、前記の恒等式から、次のように平方数「2個」の和で表される:
  (ヘ) (Aa + Bb)2 + (Ab − Ba)2 = j k2p

(ヘ)の一つ目の丸かっこ内の Aa + Bb は、(ヒ)から ≡ aa + bb ≡ a2 + b2 (mod k) なので、(フ)によって k の倍数。二つ目の丸かっこ内 Ab − Ba も同様に ≡ ab − ba ≡ 0 なので、やはり k の倍数。よって(ヘ)の全部の項を k2 で割り切ることができ、結果は次の形になる:
  (ホ) 整数2 + 整数2 = jp
(ホ)の j が 1 以上で、しかも(ハ)の k より小さいことを示したい。もし j = 1 なら、(ホ)によって p が平方数「2個」の和になり、目的が達成される。j ≥ 2 なら、この j をあらためて k と置き、(ホ)を(ハ)と見なして、もう一度同じ変形を行えば、さらに小さい j が得られる。 j が 1 以上でだんだん小さくなるという「下降」の保証により、有限回のステップで必ず j = 1 が実現され、命題6が確立する。エレガントな証明かどうかは疑問だが…。

j が 1 以上であること (ホ)の左辺は負になり得ないので、j ≥ 0 は明白。 j = 0 の可能性を否定したい。もしも j = 0 なら(ホ)の両辺は 0、その k2 倍である(ヘ)の両辺も 0。もしもそれが事実なら――(ヘ)は(フ)の前半と(ハ)の積だが(ハ)は 0 ではないので――、(フ)の a2 + b2 が = 0 にならねばならず a = b = 0 が必要。これは A, B がどちらも k で割り切れ、余り 0 であることを意味する。そのとき A, B はどちらも k の倍数なので(ハ)の左辺は k2 の倍数同士の和であり、k2 の倍数。仮に t 倍であるとしよう。
  k2t (= A2 + B2) = kp
と置いて、両辺を k で割ると
  kt = p
になってしまう。これは「p が k で割り切れる」という意味を持つが、それでは理屈に合わない: なぜなら p は素数なので 1 と p 自身でしか割り切れないが、仮定により k は 1 より大きく p より小さい。

j が k より小さいこと a, b の絶対値は最大でも k/2 なので、(フ)左辺の値は最大でも:
  (k/2)2 + (k/2)2 = k2/4 + k2/4 = k2/2
それと等しい(フ)右辺も、この数以下なので:
  j k ≤ k2/2
両辺を(2 以上の)正の数 k で割ると:
  j ≤ k/2 < k

回りくどい方法かもしれないが、複素整数を使わず、古典の範囲で命題6が証明された!

定理の完成形としては、命題6を多少発展させ「一方 4n + 3 の形の素数は 2 個の平方数の和では表せない」といった情報を追加するべきだろう。その遊び(探求)は次回にでも…

*

【4】 数値例。 365 の素因数 73 は 4n + 1 の形を持つ。命題5により
  73k = x2 + 1
と書けることが保証されている。具体的には、既に見たように k = 10, x = 27 がこの式を満たす。よって(ハ)は:
  272 + 12 = 10 × 73  ← A = 27, B = 1, k = 10, p = 73
A = 27 を k = 10 で割って、余り 7。この余りは k/2 = 5 より大きいので k を引いて a = 7 − 10 = −3 とする。 B = 1 を k で割って、余り b = 1。従って(フ)は:
  (−3)2 + 12 = 1 × 10  ← a = −3, b = 1, j = 1, k = 10
(ヘ)はこうなる:
  (−81 + 1)2 + (27 − (−3))2 = 1 × 102 × 73
  つまり 802 + 302 = 102 × 73
全部の項を k2 = 102 で割ることができ、この場合、それで目的が達成される:
  82 + 32 = 73

365 のもう一つの素因数 5 が 22 + 12 であることは明らかなので、これらの情報を組み合わせることで、365 を2個の平方数の和で表す2種類の表現を確定できる。計算の大部分は簡単だが、このやり方では、命題5を具体的に適用するために、モジュラー平方根 −1 mod p が必要だ。複素整数(ガウス整数)を回避したものの、結局、別の世界で −1 を計算する羽目に…。ニ平方和の問題が −1 の平方根と密接に関連していることが暗示される。

ところで、命題6の証明では A, B を絶対値最小の剰余に簡約しているが、この数値例では、代わりに正の最小剰余(単に k で割った普通の余り)を使っても、うまくいく:
  A = 27 ⇒ a = −3 の代わりに A = 27 ⇒ a = 7 とすると
  (フ)に当たる式は 72 + 12 = 5 × 10  ← a = 7, b = 1, j = 5, k = 10
(ヘ)に当たる式はこうなる:
  (189 + 1)2 + (27 − 7)2 = 5 × 102 × 73
  両辺を 102 で割ると 192 + 22 = 5 × 73
あらためて A = 19, B = 2, k = 5 として同様の処理を反復:
  42 + 22 = 4 × 5  ← a = 4, b = 2, j = 4, k = 5
  (76 + 4)2 + (38 − 8)2 = 4 × 52 × 73
  両辺を 52 で割ると 162 + 62 = 4 × 73
あらためて A = 16, B = 6, k = 4 として同様に:
  02 + 22 = 1 × 4  ← a = 0, b = 2, j = 1, k = 4
  (0 + 12)2 + (32 − 0)2 = 1 × 42 × 73
  両辺を 42 で割ると 32 + 82 = 1 × 73
手間は増えるものの、同じ結論が得られる。

この実例から、降下法のコンセプト(必要なだけで処理を反復することで、係数がだんだん小さくなる)を実感できるだろう――実際には絶対値最小の剰余を使った方が j の範囲制限が強力で、都合がいいけど…

降下法は、一種の帰納法ともいえる。あるいは(ハ)を満たす最小の正の整数 k を選択したと仮定し、「その k が 1 でないとすると k の最小性の仮定について矛盾が生じる」という背理法ともいえる。

⁂

 2023-09-25 複素数を使わない二平方の定理の証明 おっとりと

#数論 #四平方 #平方和

4 の倍数 4, 8, 12, 16, 20 … より 1 小さい数。
  3, 7, 11, 15, 19, …
それは「4 の倍数より 3 大きい数」ともいえる。このタイプの数は、どれも
  整数2 + 整数2
の形では表せない。偶数の平方は 4 の倍数だし、奇数の平方は 4 の倍数より 1 大きいので:
  偶数2 + 偶数2 = 4 の倍数 + 4 の倍数 = 4 の倍数
  偶数2 + 奇数2 = 4 の倍数 + (4 の倍数 + 1) = 4 の倍数 + 1
  奇数2 + 奇数2 = (4 の倍数 + 1) + (4 の倍数 + 1) = 4 の倍数 + 2
どの組み合わせでも「4 の倍数 + 3」は作れない!

上記の「偶数の平方」についての主張は常識的に分かる。偶数ってのは 2 の倍数なので 2a と書ける(a: 整数)。その平方は:
  (2a)2 = 2a × 2a = 4a2 = 4 × 整数  なぜなら a2 は整数
「奇数の平方」についての主張は、どうだろうか。奇数ってのは 2 の倍数より 1 でかいので 2a + 1 と書ける。その平方は:
  (2a + 1)2 = (2a)2 + 2 × 2a × 1 + 12  ← (x + y)2 = x2 + 2xy + y2
  = 4a2 + 4a + 1 = 4(a2 + a) + 1 = 4 の倍数 + 1  なぜなら a2 + a は整数

実はもっと強いことが言える。
  a2 + a = a(a + 1)
…は 1 違いの 2 個の数 a と a + 1 の積なので、(どっちが偶数でどっちが奇数かは分からないが)偶数と奇数の積で偶数。だから:
  4(a2 + a) + 1 = 4 × 偶数 + 1 = 8 の倍数 + 1
8 の倍数は「4 の倍数」でもあるので、「4 の倍数 + 1」という最初の表現も正しい…。

奇数の平方が「8 の倍数 + 1」という豆知識は、日常生活でも役立つ。例えば 192 が三百六十いくつだったか、度忘れしたとしよう。この数は 202 = 400 よりざっと 40 小さいはずだが、奇数 19 の平方は 8 の倍数プラス 1 なので、可能性は 361 or 369 しかない。そして次の① or ②の理由から、361 だと感覚的に分かる。①19 × 19 の一の位は 9 × 9 = 81 から 1 のはず(単純な発想)。②素数 19 の平方が 3 の倍数 369 のわけない(ちょっとマニアック)。…まぁ、次のように普通に考えても、大した手間じゃないけど…
  192 = (20 − 1)2 = 202 − 2 × 20 × 1 + 12 = 400 − 40 + 1

*

任意の自然数について「平方数2個の和」で書けるのか・書けないのか、判定基準をハッキリさせたい。既に分かってることは…
  (一) 4n + 1 型の素数は「平方数2個の和」で表現可能(前回の命題6)
  (ニ) 「表現可能な数」と「表現可能な数」の積も表現可能(前回の恒等式)
  (三) 4n + 3 型の数は「平方数2個の和」で表現できない(上記)

この判定は微妙にトリッキー。例えば 21 は素数ではないが 4n + 1 型なので、(一)を拡大解釈すると表現可能なようだが、実際には表現不可能。

〔補足〕 x2 + y2 = 21 が整数解を持たないこと。 x の絶対値が 5 以上だと左辺は 25 以上で、でか過ぎ。解があるなら x = 0, 1, 2, 3, 4 のどれかだが、それぞれ x2 = 0, 1, 4, 9, 16 に対応、そのとき y2 = 21 − x2 = 21, 20, 17, 12, 5 のどれを選んでも、その平方根 y は、整数になってくれない。

21 = 3 × 7 は「4n + 3 型」の素因数の積なのが、いかんのだ…と思いたくなるかもしれない。だが例えば 49 = 7 × 7 も「4n + 3 型」の素因数の積だが 49 = 72 + 02 と分解できるし、117 = 3 × 3 × 13 も「4n + 3 型」の素因数を含みつつ 62 + 92 = 36 + 81 と分解可能。

真相は次の通り。

ニ平方の定理 4n + 3 型の素因数 p をちょうど奇数個含む自然数 N は、「平方数2個の和」で表現できない。それ以外の任意の自然数は(すなわち N がこの型の素因数を一つも含まないか、含むとしても、それぞれちょうど偶数個含む場合については)、「平方数2個の和」で表現可能。特に 4n + 1 型の素数は 2 個の平方数の和で表される(フェルマーのクリスマス定理)。

〔解説〕 N が素因数 3, 7, 11 などを持つ場合、それぞれちょうど偶数個、持つ必要がある。21 = 3 × 7 は 3 が奇数個(1個)なので、それだけでもう駄目(おまけに 7 も奇数個で、ますます駄目)。117 = 3 × 3 × 13 は 3 が偶数個(2個)なので、OK。 117 のもう一つの素因子 13 は 4n + 1 型なので、上記(一)(ニ)によって無制限に存在できる。

定理の核心はおよそ次の通り。2 = 12 + 12 は確かに「平方数2個の和」で表現可能だし、(一)によって 4n + 1 型の素数も同様に表現可能。だから(ニ)によって、「4n + 1 型の素数」または「2」だけを因子とする自然数 N は、必ず「平方数2個の和」として表現可能。N はこれらの素因子を任意の個数(0 個も可)含むことができる。ところで、
  (マ) N = A2 + B2
と表現できる場合、両辺に任意の整数 w の2乗を掛けることで、Nw2 も「平方数2個の和」となる:
  (ミ) Nw2 = A2w2 + B2w2 = (Aw)2 + (Bw)2
(ミ)は(マ)を定数倍して水増ししただけの、つまらない式。「平方数2個の和」で表現できる数が 4n + 3 型の素因数を含むことができるのは、この w のような「自明な(つまらない水増しの)ケース」に限られる。

結局、次の命題を証明すれば、定理の証明が完成する。

命題7 もし N = A2 + B2 が 4n + 3 型の素数 p の倍数なら、N は素因子 p をちょうど偶数個、含む。

〔証明〕 仮定により A2 + B2 ≡ 0 (mod p)
もしも A ≢ 0 (mod p) なら A の逆数 z ≡ 1/A が存在するので、上の式の両辺を z2 倍して:
  A2z2 + B2z2 ≡ 0
  1 + (Bz)2 ≡ 0  ← A2z2 ≡ (Az)2 ≡ (A × 1/A)2 ≡ 12
  (Bz)2 ≡ −1 (mod p)
すなわち −1 の平方根 Bz が存在することになってしまう。これは第一補充法則に反する。つまり A の逆数 z が存在する、という仮定は不合理。「A には逆数がない」が正しい。だから A ≡ 0 (mod p) でなければならない。同様に B ≡ 0。

A2 + B2 が 4n + 3 型の素数 p の倍数なら、A も B もそれぞれ p の倍数――ということが分かった。言い換えると…

観察 A と B が 4n + 3 型素数 p の倍数でないなら、A2 + B2 も p の倍数ではない。

今、例えば A が素因子 p をちょうど 3 個含み、B が素因子 p をちょうど 4 個含むとすると:
  A = p3a, B = p4b
ここで a, b はそれぞれ A, B を p で割れるだけ割ったときに残る商であり、従って a も b も p の倍数ではない。
  N = A2 + B2 = (p3a)2 + (p4b)2 = p6a2 + p8b2 = p6(a2 + p2b2)
a ≢ 0 (mod p) なので a2 ≢ 0 であり、右端の丸かっこ内は p で割り切れない。この場合 N は素因子 p をちょうど 6 個含む。

一般に、A と B の一方が素因子 p をちょうど u 個、他方が素因子 p をちょうど v 個含むとして u < v と仮定すると、上記と同様に N は素因子 p をちょうど 2u 個(つまり偶数個)含む。これが示したいことだった。

最後に A と B がどちらも素因子 p をちょうど u 個(等しい個数)含む場合を考えよう。そのとき:
  N = A2 + B2 = (pua)2 + (pub)2 = p2u(a2 + b2)
もしも a2 + b2 が p で 1 回だけ割り切れるとすると、N は素因子 p を 2u + 1 個(つまり奇数個)含むことになってしまう(一般に a2 + b2 が素因子 p をちょうど奇数個含めば同様の事態が生じる)。ところが、われわれの a, b は p の倍数ではなく、上記「観察」によると、a2 + b2 は p の倍数ではない。つまり a2 + b2 は p で 1 回も割り切れず、N は p でちょうど 2u 回、割り切れる。証明が完了した。□

*

ガウス整数を使えば何通りの方法で「2個の平方数の和」で表されるか?まで厳密に確定できる。それに比べ、上記の証明法では「2個の平方数の和」で表現可能か否か?という漠然とした情報しか得られない。けれど「A2 + B2 が p の倍数なら A, B もそれぞれ p の倍数」という観察が、命題7の中で再帰的に使われるところが、ほんのり面白い。

このアイデアは、さらにおっとりと表現できる。 N = A2 + B2 が p の倍数なら A = pa, B = pb と置いて
  A2 + B2 = p2(a2 + b2)
と書ける。もし a2 + b2 が再び p の倍数なら、同じ理屈から(a = pc, b = pd と置いて)
  a2 + b2 = p2(c2 + d2)
  つまり N = p2(p2(c2 + d2))
と書ける。もし c2 + d2 がまだ p の倍数なら、同様に
  N = p2(p2(p2(e2 + f2)))
と書ける。 p で無限回は割り切れないので、どこかで止まるのだが、どこで止まるとしても、素因子 p は(2乗ずつ現れるので)合計で偶数個。

やたらと即効性が偏重される世の中で、こういうことをゆっくり考えると、心が洗われる。

〔参考文献〕 Landau: Handbuch der Lehre von der Verteilung der Primzahlen, vol. 1, p. 549
https://archive.org/details/handbuchderlehre01land/page/549/mode/1up
[cf. Hardy–Wright §20.3, Theo 367, 368]

⁂

 2023-10-01 4次元世界の探検! 2種類のワープ航法

#数論 #四平方 #四元数 #Cayley–Dickson

一つの複素数を「2個の実数(実部・虚部)のペア」と捉えることができるように、「2個の複素数のペア」を「4次元的な数」と捉えることができる。

「複素数」というだけで拒否反応を起こす人もいるかもしれないが、普通の数の世界に「i × i = −1 という性質を持つ i という数」を追加して、普通に足し算・掛け算などを行うだけ。

四平方の定理を考える上で「このような4次元的な数を使って整理し直すと、全てを透明に見渡せる」…というのは予定調和的な結末だが、どの文献・資料を見ても、説明の仕方が天下り的でいまいち分かりにくい。「なぜマイナスかけるマイナスはプラス?」のようなノリで、「なぜ ij = k なのに ji = −k なの?」といった素朴な疑問をスッキリさせ、順を追って検討してみたい。

*

α, β, γ, δ(アルファ、ベータ、ガンマ、デルタ)を4個の実数とする。

2個の複素数 P = α + βi と Q = γ + δi の積…
  (ム) PQ = (α + βi)(γ + δi) = (αγ − βδ) + (αδ + βγ)i
…について、自然な再解釈として、2次元のベクトルというか、座標の点 P = (αβ) と Q = (γδ) の積が次のように振る舞うと解釈できる。
  (メ) (αβ)(γδ) = (αγ − βδ, αδ + βγ)
「点と点の掛け算」というと少々意味不明だが、とある複素数には、それに対応する「複素平面上の点」があるのだから、単に(メ)は(ム)と同じ意味の速記法、と割り切ればいい。

もし α, β, γ, δ が実数でなく、それ自身、複素数(つまり2次元的)だったら何が起きるか? その場合、(メ)は「2次元的な成分の2個の対」と「2次元的な成分の2個の対」の積なので、実質「4次元」と「4次元」の積。「4次元の積」とは何だろうか?

このメモでは、本文で「4次元の積」の意味を考え、「4次元の積」の実装としては上記(メ)に多少の「ひねり」が必要になること(付録4)、その「ひねり方」は複数あること(付録5)を紹介したい。

*

4次元空間を自在に航行できる「ワープ・エンジン」を開発する上で、何より重要なのは、当たり前だが「目的地にちゃんと着ける」ということだろう。ワープ自体はできても、例えば9光年先のシリウス星系に行きたいのに、180° 反対の「はくちょう座」方向の9光年先にワープ・アウトしてしまったら、使い物にならない。いくら航行距離は予定通りでも、方向があべこべだったり「虚数空間」で迷子になったりしたら困る。

2次元から始めよう。実数の単位 1 つまり 1 + 0i = (1, 0) と、虚数の単位 i つまり 0 + 1i = (0, 1) について、前者が通常の座標平面の x 軸上、後者が y 軸上にあり、それぞれ原点から距離 1 ――ということは明らかだろう。この二つの位置関係から
  i 倍するということは、反時計回りの 90° の回転
ってことも分かる。もし i 倍したものをもう一度 i 倍すると、90° の回転を2回するのだから、最初から見て 180° 反対の点に到着するはず。 x 軸上の (1, 0) の 180° 反対の点はもちろん (−1, 0) つまり −1 = −1 + 0i だ。これは
  1 × i × i = −1  つまり i2 = −1
という理論とも一致する。

3次元的な方向を分かりやすく表現するため、便宜上、地球を「半径 1 の球」と考えてみる。原点はもちろん地球の中心。赤道上のどこかに「1」に当たる基準点を設定しよう――経度 0° の点を選択するのが筋かもしれないが、そこはグリニッジの真下、アフリカ沖(ギニア湾)の何もない海で、場所をイメージしにくい。日本を中心にしたらイメージしやすそうだが、あいにく日本は赤道上にない。まぁ、だいたい日本の近くってことで「インドネシア」が「1」ってことにしとこう。

すると「−1」は赤道上で地球の正反対の側――アジアと時差が12時間の場所だから、南米のブラジルあたり(?)だろう(日本とニューヨークの時差が14時間くらいで、ブラジルは少し東にあるから、そのくらいかと)。この場合も、インドネシアからスタートして、赤道上で同じ向きの 90° の回転 i を 2 回やれば、地球の裏側(ブラジル)に着く。90° 回転 2 回は 180° なので、当たり前。

一方、それと直交する緯度方向に進むこともできる。出発点インドネシアから、ココナツジュースでも飲みながら緯度方向に 90° 回転すれば(このナビゲーションを j と名付ける)、北極点(回転の向きによっては南極点だが)に着く。寒くて凍えそうなので、急いでもう一度、同じ向きの 90° 回転 j を実行すれば、やはり出発点から見て地球の反対側―― i2 と同じブラジル――に着く。ブラジル名物パステルでも食って人心地。要するに、赤道回りでも北極回りでも、地球を半周すれば裏側に着く。これまた当たり前。「−1」は 180° 正反対の位置を表すという解釈から:
  i2 = j2 = −1

残念ながら地球は3次元の球だが、われわれには4次元ワープ航法の完成という夢がある! そのためには「経度とも緯度とも違うが、そのどちらとも直交するもう一つのリングが“4次元地球”を取り巻いてる」と想像しなければなるまい。この4次元リングに沿って地球上を 360° 回転すれば元の場所に戻るのは当然として、4次元リングに沿っての 90° 回転を k とするなら、これまた k2 = −1 となるだろう。まとめると:
  i2 = j2 = k2 = −1

4次元経由(?)の回転はイメージしにくいが、「赤道回り・北極回り」の類推(あるいは各座標軸の対称性)から上記の結論は自然だろう。

出発点からの回転 i そのものに対応する点は、(インドネシアから裏側のブラジルへの)赤道上の 180° 回転の半分、つまり両者の中間地点。同様に j は北極点。どちらも地球の表面上の点なので、地球の中心からの距離は、地球の半径(仮定により 1 である)に等しい。“4次元地球”の4次元リング上の回転 k の行き先も、4次元球面のどこかには違いないので、中心から距離 1 の場所。すなわち回転 i, j, k を回転先の場所と考えるなら、それぞれ絶対値(中心からの距離)は 1 だ:
  |i| = |j| = |k| = 1  従って |ijk| = 1
絶対値 1 の ijk とは具体的に何だろうか…。 i, j, k は対等な立場の「3種類の虚数単位」なので、その中の一つを特別扱いして ijk = i とか ijk = j とか定義するのは(不可能とは言わないまでも)不自然・不公平な感じがする。絶対値 1 ということから、
  ijk = 1 あるいは ijk = −1
のどちらかが、より自然な定義だろう。虚数と比べると、実数は特別な数なので、この結論ならまぁ公平かと。

1843年、この理論を最初に考えたアイルランドの Hamilton は「ijk = −1」と直感した。その定義によると、
  (モ) i2 = j2 = k2 = ijk = −1
というシンプルな式が成り立つ。電撃のようなひらめきによりこれを思い付いた Hamilton は、うれしさのあまり、式(モ)を橋(たまたまそこを歩いていた)に刻み込んだ――というのは数学史上の有名な逸話(ペンナイフを持ち歩いてらしい。アイルランドの首都ダブリンにあるこの小さな橋には、現在でも記念プレートが設置されている)。後述するように(付録5)、理論的には定義を少し変更して、
  (モ*) i2 = j2 = k2 = −1, ijk = 1
とすることもできる。でも Hamiloton による定義(モ)の方が少し簡潔なので、先人に敬意を払い、われわれも(モ)を定義とする。

 Here as he walked by
on the 16th of October 1843
Sir William Rowan Hamilton
in a flash of genius discovered
the fundamental formula for
quaternion multiplication
 i² = j² = k² = ijk = −1
& cut it on a stone of this bridge

|i| = |j| = 1 なので |ij| = 1 だが、絶対値 1 の ij の正体は何だろうか? ij = (?) とすると(モ)から:
  ijk = −1 つまり ij × k = −1 だから (?) × k = −1
ところが k2 = k × k = −1 なのだから (?) = k となる。要するに:
  ij = k
同様に:
  ij = k, jk = i, ki = j
つまり i → j → k → i → j → k → … という順方向の巡回で、隣り合う 2 個の単位を矢印方向に掛け算すると、その右隣の → の先のもう一つの単位になる。これはシンプルで美しく、覚えやすい。

問題は「ij = k なのに、なぜ交換法則が崩壊して ji = −k になるか?」 どの教科書を見ても「それは定義です」「規則ですから」というお役所的な対応で、納得がいかない。そこで、次のように考えてみよう…。交換法則が成り立つかどうかはともかく、結合法則(※)によって、次の式が成り立つ:
  ijji = i(jj)i = i(−1)i  ← 基本性質 j2 = −1 を使った
虚数単位 i と実数 −1 の間では、もちろん交換法則が成り立つので:
  事実 ijji = i(jj)i = i(−1)i = (−1)ii = (−1)(−1) = 1

※ 結合法則とは 3 × 2 × 5 のような(三つ以上の数の)掛け算で先に 3 × 2 を計算して 6 × 5 としてもいいし、先に 2 × 5 を計算して 3 × 10 としてもいい――というような意味。「掛け算される左の数と右の数は変更しないものの、どこから掛け算するか自由に選べる」。一方、交換法則は「2個の数の掛け算で、左の数と右の数を入れ替えてもいい」ということ。例えば 3 × 2 の代わりに 2 × 3 としてもいい――という意味。交換法則が成り立たないことは比較的多い。日常的な例で考えても
  「顔を洗う」×「タオルで顔を拭く」
の順序を交換すると、結果が変わってしまう。他方、結合法則は非常に基本的な性質で、よほどのことがない限りまず成立する。

今、仮説として、もしも ij = k かつ ji = k だとすると:
  仮説 ijji = (ij)(ji) = kk = −1  なぜなら(モ)
この仮説は、上記の「事実」と一致せず、破綻している。では、どうすれば正しいのか…。 ij = k なのだから、こう考えるべきなのかも…
  新仮説 ijji = (ij)(ji) = (k)(−k) = −kk = −(−1) = 1
これなら「事実」と一致する!

ij = k なのに ji = k にならないってのは奇妙なようだが、4次元的な回転の合成を考えているのだから、3次元空間のわれわれから見て多少奇妙に思える現象も、あるのだろう。奇妙であろうがなかろうが、事実は事実。(モ)を前提とする限り、必然的に ji = −k となる。

全く同様に(結合法則を仮定すると jkkj = 1, kiik = 1 が成り立つことから)、次の掛け算規則が導かれる:
  ij = k しかし ji = −k  ●
  jk = i しかし kj = −i  ▲
  ki = j しかし ik = −j  ◆
要するに i → j → k → i → j → k → … の巡回で(順方向ではなく)矢印の逆方向に積を考えた場合、i, j, k の三つのうちの残った一つにマイナスが付く。少し奇妙だが、シンプルで美しい。

*

四元数の積

2個の実数 A, B と1種類の虚数単位 i を組み合わせた数 A + Bi は複素数と呼ばれる。虚数単位 i は平方すると −1 になる。

4個の実数 A, B, C, D と3種類の虚数単位 i, j, k を組み合わせた数 A + Bi + Cj + Dk は四元数と呼ばれる。3種類の虚数単位は、いずれも平方すると −1 になる。

ここまで来れば、四元数の積は、機械的な単純計算。以下、どのステップも単純明快だろう…

A, B, C, D, a, b, c, d を普通の数(実数)として、
2個の四元数 P = A + Bi + Cj + Dk と Q = a + bi + cj + dk の積を求める。

PQ = (A + Bi + Cj + Dk)(a + bi + cj + dk)
= A⋅a + A⋅bi + A⋅cj + A⋅dk  ①
+ Bi⋅a + Bi⋅bi + Bi⋅cj + Bi⋅dk  ②
+ Cj⋅a + Cj⋅bi + Cj⋅cj + Cj⋅dk  ③
+ Dk⋅a + Dk⋅bi + Dk⋅cj + Dk⋅dk  ④

↑ これは普通に展開しただけ。「ごちゃごちゃを解きほぐす」参照。

= Aa + Ab(i) + Ac(j) + Ad(k)  ①桃
+ Ba(i) + Bb(i2) + Bc(ij) + Bd(ik)  ②桃
+ Ca(j) + Cb(ji) + Cc(j2) + Cd(jk)  ③桃
+ Da(k) + Db(ki) + Dc(kj) + Dd(k2)  ④桃

↑ 「桃」ステップでは「普通の数と虚数単位 i, j, k の間では交換法則が成り立つこと」を使っている。普通の複素数を考えても、これは当たり前。一方、虚数単位同士の間では、交換法則は保証されないことに注意。例えば③桃の ji について「アルファベット順の方がいい」という理由で、勝手にひっくり返して ij に置き換えることは許されない(●参照)――どうしても ji を ij にしたければ符号を変える必要がある。

= Aa + Ab(i) + Ac(j) + Ad(k)  ①栗
+ Ba(i) + Bb(−1) + Bc(k) + Bd(−j)  ②栗
+ Ca(j) + Cb(−k) + Cc(−1) + Cd(i)  ③栗
+ Da(k) + Db(j) + Dc(−i) + Dd(−1)  ④栗

↑ 「栗」ステップでは、基本法則(モ)と掛け算表●▲◆によって、虚数単位と虚数単位の積を (−1) あるいは i, j, k などに簡約。最後に i 成分、j 成分、k 成分を普通にまとめると↓

= (Aa − Bb − Cc − Dd)
+ (Ab + Ba + Cd − Dc)i
+ (Ac − Bd + Ca + Db)j
+ (Ad + Bc − Cb + Da)k

四元数の積の公式
  (A + Bi + Cj + Dk)(a + bi + cj + dk)
  = (Aa − Bb − Cc − Dd)
  + (Ab + Ba + Cd − Dc)i
  + (Ac − Bd + Ca + Db)j
  + (Ad + Bc − Cb + Da)k

あるいは A, B, C, D を a1, a2, a3, a4 と改名し a, b, c, d を b1, b2, b3, b4 と改名すると:
= (a1b1 − a2b2 − a3b3 − a4b4)
+ (a1b2 + a2b1 + a3b4 − a4b3)i
+ (a1b3 − a2b4 + a3b1 + a4b2)j
+ (a1b4 + a2b3 − a3b2 + a4b1)k

上の四つの丸かっこ内について、「四平方のごちゃごちゃを解きほぐす」付録2の最後の式…
  (a1b1 − a2b2 − a3b3 − a4b4)2
  + (a1b2 + a2b1 + a3b4 − a4b3)2
  + (a1b3 − a2b4 + a3b1 + a4b2)2
  + (a1b4 + a2b3 − a3b2 + a4b1)2
…と比べてみよう。2乗の違いを別とすると、どちらも全く同じだ。「四平方のごちゃごちゃを解きほぐす」では、強行突破の力技で無理やり等式を証明したけど、これをうまく使えば、もっとエレガントにできるかも…。そんな感触が得られる。

それについては次回以降に考えるとして、今回、付録として、マニアックな Cayley–Dickson constructions(ケイリー/ディクソン構築法)というものを紹介したい――本題とはあまり関係ないけど、冒険的にはむしろこっちが本題!

↓ 付録。斜め読み推奨。

↑ 付録4・付録5の終わり。次のメモに続く。

⁂

 2023-10-05 目で見る ij = k, ji = −k 左手の中の小さな4次元

#数論 #四平方 #四元数

左手の中指で自分を指し、親指で上、人さし指で右を指す。人さし指と親指で作った L 字型が「スクリーン」の幅と高さ。幅と高さの長さの単位をそれぞれ i, j とする。中指は「スクリーン」と垂直の「3次元的レイヤー(Z方向)」。その長さの単位を k とする。

中指 k を軸に(中指の指す方向から見て)、人さし指 i を反時計回りに 90° 回転させれば(軸と直交する「親指・人さし指」平面の上で)、結果は親指方向 j に。便宜上これを「k 軸での i の回転」と表現して ki で表すと ki = j。

同様に、人さし指 i を軸に、親指 j を反時計回りに 90° 回転させれば、中指の k 方向になる(ij = k)――反時計回りの意味が分かりにくければ、指の相対位置を保ったまま左手を動かし、軸となる人さし指の真上(指先方向)から眺めてみよう。その視点だと、親指が12時の方向にあって、反時計回りは9時の方向になるはず。――全く同様に jk = i を確かめることができる。

素朴な疑問: なぜ ij = k なのに ji = −k なの? ji とは、親指 j を軸に人さし指 i を回転させること(軸と直交する平面上において、反時計回りに 90° ね)。親指の上から見ると、この回転は、人さし指 i が3時の方向から12時の方向に動き、中指 k と正反対の向きになることだ! k と正反対の向きは −k なので ji = −k と解釈できる(注意: リアルの左手では、人さし指と中指を正反対の方向にすることは難しい。手をけがしないよう、あくまで空想の中での回転にとどめよう)

世の中には、事故などで指や手を失った人もいる。そこで、誰でもこの左手実験ができるよう、同じことを画像で表すと、こうなる(どっちにしても、画像の方が分かりやすい)。

PNG画像: 3次元直交座標系において、右・上・手前を指す単位ベクトルをそれぞれ i, j, k とする。それぞれの逆方向は −i, −j, −k となる。

この画像を使って、次の関係が成り立つことを簡単に確かめられる(文章で長々と書くより、実際に確かめてもらった方が早い)。回転が反時計回りであること、そして「どの向きから見て反時計回りなのか?」という区別にだけ注意――反時計回り(左回り)は、間違って裏側から見れば時計回り(右回り)なので、「回転軸のプラスの方向はどっちか?」に意味がある。
  ij = k しかし ji = −k
  jk = i しかし kj = −i
  ki = j しかし ik = −j
それだけでなく、同じ平面上で 90° の回転を2回行えば 180° 逆向きになるので:
  i2 = j2 = k 2 = −1
この事実は「概念的に明らか」というだけなく、上の 6 種類の掛け算からも機械的に導かれる。例えば:
  ijj = kj = −i
これは「i を jj 倍することは i を −1 倍するのと同じ」と解釈可能で、従って jj = −1 となるはずだ。

*

なぜ ij = k なのに ji = −k なの? という疑問について、前回は代数学的に(結合法則を使って)説明した。上記の
  ijj = −i だから jj = −i
という議論でも、暗黙に ijj = i(jj) = i(−1) という結合法則が仮定されている。

結合法則が成り立つのは、常識的には当たり前のようだが、相手は4次元。必ずしも常識が通用する保証はない。一つ上の八元数では結合法則 (PQ)R = P(QR) が崩壊することが知られている。「四元数では結合法則が成り立つのか?」を検証するのは、重要なミッションだ。

このミッション、難しくはないのだが、少々面倒くさい。けれど論理的には避けて通れない部分だし、「四元数の積の公式に慣れる」という効用もある。これも修行の道、付録として収録しておく。

↓ 付録6 斜め読み推奨。

↑ 付録6の終わり。次のメモに続く。

⁂

 2023-10-09 UFOで図解(笑)4次元の距離 四元数のノルムとは

#数論 #四平方 #四元数

PNG画像点 F は横座標が a、縦座標が b。視点が斜めなので、ひしゃげて見えているが ∠OEF は直角、△OEF は直角三角形。

ピンクの OF は「底辺 a、高さ b の直角三角形」の斜辺だから、ピタゴラスの定理から:
  (OF の長さ)2 = a2 + b2
  OF の長さ = a2 + b2

次に、この F の上(3次元方向)に浮かぶ点 H について、垂直方向の高さ(FH の長さ: 蜂の飛行高度)を c とする。黄緑の OH は、「底辺 OF、高さ c の直角三角形」の斜辺だから、再びピタゴラスの定理から:
  (OH の長さ)2 = (OF の長さ)2 + c2 = a2 + b2 + c2
  OH の長さ = a2 + b2 + c2  ← 原点から蜂までの距離

最後に、この H の超・上(4次元方向)に浮かぶ点 P について、4次元方向の奥行き(HP の長さ)を d としよう。4次元方向とは、3次元の横・縦・高さのどの向きとも直交しつつ、3次元空間の“外側”へ向かう新しい次元(三角すいや直方体が、2次元の平面図形を底面として、別次元の高さを持つのと同様)。図には無理やり赤で描き込んである――たとえ幾何学的にイメージできなくても、コンセプトは理解可能だろう。3次元空間の超・上(3次元の住民からは見えない場所)をUFOが飛んでいる…。

この場合も、原点 O から4次元の点 P = (a, b, c, d) の距離について、水色の OP は、底辺が OH で高さが d の直角三角形の斜辺だから:
  (OP の長さ)2 = (OH の長さ)2 + d2 = a2 + b2 + c2 + d2
  OP の長さ = a2 + b2 + c2 + d2  ← 原点から4次元UFOまでの距離

*
☆4次元って こんなに こんなに いい気持ち☆

四元数のノルム

複素数 a + bi は実部 a と虚部 b の2個の実数から成るので、a を横座標、b を縦座標と解釈すれば、2次元の座標平面上の点と同一視できる。ある複素数の「実部の2乗と虚部の2乗の和」を(その複素数の)ノルムと呼ぶ。ノルムの意味については「その点までの距離のような、大きさの基準。ただし距離をそのまま使うと根号が邪魔くさいので、2乗してある」と考えてもいい。距離(言い換えれば絶対値)の大小の比較なら、両方2乗して比べたって比較結果は同じだしね…。
  複素数 a + bi のノルム norm(a + bi) = a2 + b2
それは a + bi を上の図の点 F = (a, b) と同一視した場合の、原点から F の距離の平方に他ならない。そのことから類推すると、四元数については次の定義が自然なようだが、果たしてこのように定義して、つじつまが合うだろうか:
  四元数 a + bi + cj + dk のノルム norm(a + bi + cj + dk) = a2 + b2 + c2 + d2
  (4次元の距離の平方)

実は、結果的にはこれで非常にうまくいく! 2個の複素数 x, y について「x のノルムと y のノルムの積は xy のノルムに等しい」という性質(単純だが重大!)が成り立つが、以下で見るように、2個の四元数 x, y も全く同じ性質を満たす。

この性質によって、あのごちゃごちゃした四平方の恒等式――このシリーズの初回で天下り的に登場し、強引な展開によって無理やり証明された――は、明快な意味を与えられ、一点の曇りもなく導出されるのである!

素朴な疑問 なぜ「複素数」の次が「四元数」なの? その間には a + bi + cj の形の「三元数」があるべきでは…。四元数の発見者 Hamilton 自身、最初はその方向で考え、三元数を構成しようとしていた。ところが三元数の世界では、掛け算がうまく定義されない――四元数の世界の掛け算でも交換法則が壊れてしまうが、三元数はもっともっと都合が悪い。Hamilton はどうにかできないかと考えに考えた末、あるとき突然「三元ではなく四元にすれば、いろんなことがうまくいく!」というアイデアを思い付いた。「三元ではなく四元にする」というのが、解決の突破口だったのだ。――構造の美しさを度外視して「三元数」の掛け算規則を無理やり定義することはできるだろうが、四元数のような整然とした世界は得られない(特にノルムについての、上記のシンプルな性質は成り立たない)。

注意 原点からの「距離の平方」ではなく、「距離そのもの」に当たる数値(言い換えれば絶対値)をノルムとすることもある。これは定義の仕方の違いで、どちらかが絶対的に正しいというわけではない。ここでは「距離の平方」に当たる数値をノルムとする。

*

四元数の共役

複素数 P = A + Bi の共役きょうやく複素数
  P* = A − Bi
を使うと、ノルムを次のように表現できる:
  norm(P) = PP* = (A + Bi)(A − Bi) = A2 + B2
A, B は実数なので、A の平方と B の平方の和である複素数のノルムは、実数の値を持つ。

四元数 P = A + Bi + Cj + Dk についても、その共役の四元数を
  P* = A − Bi − Cj − Dk
定義すると、同じ関係が成り立つ。実際、積の公式
  (ヤ) (A + Bi + Cj + Dk)(a + bi + cj + dk) = Aa − Bb − Cc − Dd + Fi + Gj + Hk
  ただし F = Ab + Ba + Cd − Dc, G = Ac + Ca + Db − Bd, H = Ad + Da + Bc − Cb
…において a = A, b = −B, c = −C, d = −D とすると:
  (ユ) PP* = AA − B(−B) − C(−C) − D(−D) + Fi + Gj + Hk
ここで:
  F = A(−B) + BA + C(−D) − D(−C) = −AB + BA − CD + DC = 0,
  G = A(−C) + CA + D(−B) − B(−D) = −AC + CA − DB + BD = 0,
  H = A(−D) + DA + B(−C) − C(−B) = −AD + DA − BC + CB =0
つまり PP* = A2 + B2 + C2 + D2 = norm(P)

このシンプルな結論から、共役四元数についての上記の定義は自然だ――ということが暗示される。右も左も分からない4次元世界において、心強い一歩だ。「実部が同じで(3種類の)虚部の符号が反対」という意味でも、複素数の共役の自然な拡張になっている。

ノルムの共役表現 四元数 P = A + Bi + Cj + Dk のノルム norm(P) = A2 + B2 + C2 + D2 は、次の関係を満たす:
  norm(P) = PP*

四元数のノルムは実数の値を持つ(A, B, C, D はどれも実数で、ノルムはそれらの平方の和だから)――これも複素数のノルムと同様。

四元数には項が4個あるのだから、「共役では前半2個の符号を保ち、後半2個の符号を逆転させる方が、2個と2個でバランスが良いのでは?」――という考えも浮かぶ。その方が、複素数の共役の定義(実部・虚部の2個の数値のうち、1個の符号を保ち、1個の符号を逆転)にも感覚的には近い。半面、その発想だと、対等な立場の3種類の虚数単位 i, j, k ――どれも平方すると −1 になる――のうち i だけを特別扱いすることになり、不公平。のみならず、この「バランス感覚」に従うと、(ユ)以降で (−B) が (+B) に置き換わり、こうなってしまう:
  PP* = A2 − B2 + C2 + D2 + 2AB + 2BD − 2BC
それ自体ごちゃごちゃして美しくないばかりか、ノルムの自然な定義――距離(言い換えれば絶対値)の平方――とも不整合。やはり「実部1項の符号を保ち、虚部3項の符号を反転」が、共役四元数の妥当な(すっきりした)定義のようだ…。

理論上もっと根本的なポイントとして、複素数では X = A + Bi とその共役 X* = A − Bi の和が実数 2A になる。「自分自身と共役との和は実数」=「共役との和を考えると虚部が全部消えてくれる」という性質が四元数でも成り立つためには、3種の虚部の符号が全部反対になってくれるのは(バランスが悪いどころか)むしろ好都合。ちなみに、このことは八元数 X = A + Bi1 + Ci2 + … + Hi7 の共役が X* = A − Bi1 − Ci2 − … − Hi7 になることを暗示している。

〔補足〕 四元数は、複素数と同じ性質のノルムを「たまたま」持つ。そのため最初の説明は直観的に、しっくり感じられる。けれど、より大きな視点では、このようなノルムが存在するのは珍しいこと。「複素数と四元数ではノルムの性質が同様」ということを知っていて、それを利用してノルムの定義を正当化する…というアプローチは、論点先取のチートかもしれない。結論は正しいのだから、まあいいけど…。

*

2個の四元数 P と Q の積に、ノルムの共役表現を適用すれば norm(PQ) = (PQ)(PQ)* となり、これをひたすら計算すれば、最終的に四平方の恒等式が得られる。でもそのやり方だと、計算の手間は、初回の強行突破とあまり変わらない――それでも「天下り的に公式を持ち出さず、意味が分かって自力で構成できる」というメリットは大きいけど。

実は (PQ)* には次のすてきな性質がある。それを利用すると、四元数のノルムの定理が比較的簡単に導かれる…。

命題8 任意の2個の四元数 P = A + Bi + Cj + Dk と Q = a + bi + cj + dk について:
  (PQ)* = Q*P*

この命題は「積 PQ の共役は、P の共役と Q の共役の積だが、掛け算の順序が逆になる」ということを言っている。

〔証明〕 PQ = E + Fi + Gj + H とすると:
  E = Aa − Bb − Cc − Dd
  F = Ab + Ba + Cd − Dc
  G = Ac + Ca + Db − Bd
  H = Ad + Da + Bc − Cb
  (PQ)* = E − Fi − Gj − H  ‥‥①
一方 Q* = a − bi − cj − dk と P* = A − Bi − Cj − Dk の積を Q*P* = e + fi + gj + hk とすると:
  e = aA − (−b)(−B) − (−c)(−C) − (−d)(−D)
  f = a(−B) + (−b)A + (−c)(−D) − (−d)(−C)
  g = a(−C) + (−c)A + (−d)(−B) − (−b)(−D)
  h = a(−D) + (−d)A + (−b)(−C) − (−c)(−B)
上記 E, F, G, H と比較すると e = E, f = −F, g = −G, h = −H なので:
  Q*P* = e + fi + gj + hk = E − Fi − Gj − Hk  ‥…②
①と②から (PQ)* = Q*P* 証明終わり。□

〔補足〕 (PQ)* = Q*P* だが、一般には (PQ)* ≠ P*Q*。掛け算の順序を変えると e, f, g, h の式の右辺で、大文字と小文字が入れ替わる。その結果 e = E に変わりはなく、f の式の右辺第1・第2項の和も変わらないが(−Ab − Ba)、第3・第4項の符号が逆になり(Cd − Dc)、F の式の右辺第3・第4項と一致。従って f = −F の関係は(Cd − Dc = 0 の場合を除き)不成立。同様に g = −G, h = −H も不成立。要するに、②で Q*P* の代わりに P*Q* を使うと、①と等しくならない。

四元数のノルムの定理 任意の2個の四元数 P = A + Bi + Cj + Dk と Q = a + bi + cj + dk について:
  norm(PQ) = norm(P) norm(Q)

〔証明〕 ノルムの共役表現を使うと norm(PQ) = (PQ)(PQ)* = (PQ)(Q*P*)
最後の等号は命題8による。四元数の積は結合法則を満たすので:
  (PQ)(Q*P*) = P(QQ*)P* = P × norm(Q) × P*
ノルムは実数なので、四元数との間で交換法則が成立:
  P × norm(Q) × P* = P × P* × norm(Q) = norm(P) norm(Q) 証明終わり。□

〔参考文献〕 Hurwitz, Adolf (1919): Vorlesungen über die Zahlentheorie der Quaternionen
https://archive.org/details/vorlesungenuberd00hurw/page/4/mode/2up
p. 5, Eq. (21)(22) [cf. Hardy–Wright §20.6]

ここまで来れば、一本道。

四平方の恒等式(その1)
  (A2 + B2 + C2 + D2)(a2 + b2 + c2 + d2)
  = (Aa − Bb − Cc − Dd)2 + (Ab + Ba + Cd − Dc)2
  + (Ac + Ca + Db − Bd)2 + (Ad + Da + Bc − Cb)2

〔証明〕 与式の左辺が上記 norm(P) norm(Q) に等しいことは明らかなので、右辺が norm(PQ) に等しいことを示せばいい。
  PQ = (Aa − Bb − Cc − Dd) + (Ab + Ba + Cd − Dc)i
  + (Ac + Ca + Db − Bd)j + (Ad + Da + Bc − Cb)k
…のノルムは、確かに恒等式(その1)の右辺の通り。□

四平方の恒等式(その2)
  (A2 + B2 + C2 + D2)(a2 + b2 + c2 + d2)
  = (Aa + Bb + Cc + Dd)2 + (Ab − Ba + Cd − Dc)2
  + (Ac − Ca + Db − Bd)2 + (Ad − Da + Bc − Cb)2

〔証明〕 恒等式(その1)の a を −a に置き換える〔※注〕。 (−a)2 = a2 なので、左辺は変化しない。「その1」右辺の a を含む項の符号が、変わる:
  (−Aa − Bb − Cc − Dd)2 + (Ab − Ba + Cd − Dc)2
  + (Ac − Ca + Db − Bd)2 + (Ad − Da + Bc − Cb)2
この第2項以降は、「その2」の右辺第2項以降と同一。この第1項も、「その2」の右辺第1項に等しい。なぜなら:
  第1項 = (−1(Aa + Bb + Cc + Dd))2 = (Aa + Bb + Cc + Dd)2
証明終わり。□

〔※注〕 「a に −a を代入」が分かりにくければ、「変数 a をいったん q と改名し、そこに q = −a を代入」と考えてもいい(付録2参照)。

*

「任意の自然数は、4個の平方数の和で表現可能」という四平方の定理について、われわれは既に伝統的な証明法やその変種、あるいは20世紀の面白い証明法などを研究したが、どれもこれも四平方の恒等式に依存していた。四平方の恒等式については、最初のメモで天下り的に(どこからともなく)持ち出し、強引な計算によって形だけは証明したものの、「どこからこの複雑な式が出てきたのか?」「一体この式は何なのか?」という点が、不明朗だった。

今回ついにこの不満足を解消し、(まだやり残したこともあるが)大筋において、道筋の全体像を明らかにすることができた。重要ポイントを振り返ると、第一に、2個の四元数 P = A + Bi + Cj + Dk と Q = a + bi + cj + dk の積を…
  基本公式 i2 = j2 = k2 = ijk = −1
…を使って定義することができ、結果は(交換法則の崩壊に目をつぶれば)複素数の世界に似ている。上記基本公式は ij = k, jk = i, ki = j; ji = −k, kj = −i, ik = −j を含意し、そのことから、四元数の積は機械的に計算可能。第二に、四元数 P = A + Bi + Cj + Dk のノルム…
  norm(P) = A2 + B2 + C2 + D2
…は、複素数 P = A + Bi のノルム norm(P) = A2 + B2 と同様、norm(PQ) = norm(P) norm(Q) を満たす。この等式「積のノルム=ノルムの積」が、四平方の恒等式の本質。恒等式「その1」(付録2に相当)は、そこから自然に得られる。そして簡単な式変形で、「その2」のような形(四平方の定理の伝統的証明に使われる)が導かれる。

四元数の概念を導入してここまで来るのは、少々大変だった。けれど今、もやが晴れ、全てを見通せる。心躍る展望だ!

↓ 付録7 斜め読み推奨。

↑ 付録7の終わり。今日はここまで。ちゅす、じす、じゃーね、バイバイ、チャオ♪

⁂


<メールアドレス>