「チラ裏」は、きちんとまとまった記事ではなく、断片的なメモです。誤字脱字・間違いがあるかもしれません。
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) 四平方の恒等式の覚え方 一見ややこしそうな式だが、パターンや対称性(バランス)を考えると、そう難しくもない。とりあえず右辺をこう書いてみる:
(Aa + Bb + Cc + Dd)2
+ ( )2
+ ( )2
+ ( )2
最初の丸かっこ内は簡単だが、問題は「残りの三つの空欄に何を書けばいいか」。概要としては、どの空欄にも二つの引き算が入る。
一つ目の引き算は易しい。三つの空欄に、順に Ab, Ac, Ad を書き込んで…
(Aa + Bb + Cc + Dd)2
+ (Ab )2
+ (Ac )2
+ (Ad )2
…大文字・小文字を入れ替えた積――「逆順」と呼んでもいい――を引くだけ:
(Aa + Bb + Cc + Dd)2
+ (Ab − Ba )2
+ (Ac − Ca )2
+ (Ad − Da )2
三つの丸かっこ内にもう一つの引き算を追加すると、全体像はこうなる:
mn = (Aa + Bb + Cc + Dd)2
+ (Ab − Ba + Cd − Dc)2 ‥‥①
+ (Ac − Ca + Db − Bd)2 ‥‥②
+ (Ad − Da + Bc − Cb)2 ‥‥③
前半の引き算同様、第3項・第4項では、同じアルファベット2文字の大文字・小文字が入れ替わっている。だから大文字の並び方さえ分かれば、小文字は自然に決まる(①②③のどれでも、小文字の abcd は1回ずつ現れ、自分と同じアルファベットの大文字とはペアにならない)。①は単純:
A, B と C, D つまり Ab − Ba と Cd − Dc
③も比較的分かりやすい:
A, B, C, D の「外側の2個」の引き算 Ad − Da と「内側の2個」の引き算 Bc − Cb
外側 | 内側 | 内側 | 外側 |
---|---|---|---|
A | B | C | D |
奇数番目 | 偶数番目 | 奇数番目 | 偶数番目 |
②の引き算は、要注意。そこにあるのは…
A, B, C, D の「奇数番目」の引き算 Ac − Ca と「偶数番目」の引き算 Db − Bd
…なのだが、2個目の引き算は、大文字のアルファベット順の Bd − Db ではない。それとは逆向きに引き算!
他の引き算は全部、大文字のアルファベット順なのに、なぜそこだけ逆順…? これらの引き算では、全体として −B, −C, −D が平等に(2回ずつ)現れる必要があるから…。もしも逆順にならず、②が…
+ (Ac − Ca + Bd − Db)2 ♣
…だったら、①②③全体で −B が1個 −D が3個になってしまう。けれど左辺に含まれる m = A2 + B2 + C2 + D2 では B と D の役割は対等: 例えば
m = 12 + 22 + 32 + 42 と m = 12 + 42 + 32 + 22
は、足し算の順序が違うだけで、どっちでも同じ和なんだから、B = 2, D = 4 の変数名を入れ替えて D = 2, B = 4 としたって右辺の値は同じになるはず。B と D を入れ替えても結果は同じなんだから −B と −D の個数は同じのはず…
より具体的に、下記のカを ♣ に置き換えるのは、カの丸かっこ内の「第3項・第4項の符号を逆にする」のと同じこと。それでは「ごちゃごちゃ」の第2列~第5列において、カの行の符号が逆になってしまう。そうなると、本来打ち消し合うはずのプラスとマイナスのペアが、打ち消し合うどころか、同符号になって 2 倍に増強されてしまう!
♡ (Aa + Bb + Cc + Dd)2 から +AaBb, +AaCc, +AaDd, +BbCc, +BbDd, +CcDd
バ (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
↑正しい向きのごちゃごちゃ。もし Db − Bd が Bd − Db つまり −Db + Bd に変わると、カのごちゃごちゃの両端以外(太字の4項)の符号が逆になって、打ち消し合うはずのペアが、打ち消し合わなくなる。★ の展開の…
2(PQ + PR + PS + QR + QS + RS)
…に当たる部分の、丸かっこ内を見ている: P = Ac, Q = −Ca, R = Db, S = −Bd。
四平方の恒等式では、三つ目の丸かっこ内の後半の引き算だけが、大文字の辞書順にならない。
A, B, C, D を x1, x2, x3, x4 と改名し a, b, c, d を y1, y2, y3, y4 と改名すると、上の恒等式はこうなる:
(x12 + x22 + x32 + x42)(y12 + y22 + y32 + y42)
= (x1y1 + x2y2 + x3y3 + x4y4)2 + (x1y2 − x2y1 + x3y4 − x4y3)2 ⚠
+ (x1y3 − x3y1 + x4y2 − x2y4)2 + (x1y4 − x4y1 + x2y3 − x3y2)2
全部の丸かっこ内を x の添え字順「x1 → x2 → x3 → x4」に並び替えると:
= (x1y1 + x2y2 + x3y3 + x4y4)2
+ (x1y2 − x2y1 + x3y4 − x4y3)2
+ (x1y3 − x2y4 − x3y1 + x4y2)2
+ (x1y4 + x2y3 − x3y2 − x4y1)2
x の添え字は全部のかっこ内で 1234 の繰り返し。こっちのバージョンで覚えたければ、主に y の添え字に注意を払えばいい。
y の添え字は、左上から始めて横に読んでも、縦に読んでも 1234, 2143, 3412, 4321。右下から始めて逆向きに読んでも、変わらない。言い換えると 1234 と 4321 は鏡像、2143 と 3412 も鏡像。よって、実質「2143」だけ分かれば足りる。それは、符号も含めて、元になっている4項…
Ab − Ba + Cd − Dc
…の、小文字の順序 badc と同じ。三つ目・四つ目の丸かっこ内では、符号が −−+, +−− になる。
⚠ Hardy & Wright の一部のバージョンには印刷ミスがあり x4y3 の符号が逆になっている。
(付録2) 参考として、Euler 自身が記した形式を紹介。
「ごちゃごちゃ」部分のバ・カ・ダの丸かっこ内の、第3項・第4項の符号を全部逆にしても、つじつまが合う(本文で記したように、カだけを ♣ に置き換えるのは駄目だが、バ・カ・ダで一斉に符号を変えればOK)。その場合…
バ (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
第2列・第3列・第4列・第5列の符号が全部逆になるが、第2列と第3列が打ち消し合い、第4列と第5列が打ち消し合うのだから、符号が入れ替わっても、それらが全体として打ち消し合うことに変わりない。
符号が入れ替わった部分(式全体の値は同じ)を太字で表すと:
(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
大文字の辞書順に整理すると:
= (Aa + Bb + Cc + Dd)2 + (Ab − Ba − Cd + Dc)2
+ (Ac + Bd − Ca − Db)2 + (Ad − Bc + Cb − Da)2
a, b, c, d を p, q, r, s と改名し A, B, C, D を a, b, c, d と改名すると:
= (ap + bq + cr + ds)2 + (aq − bp − cs + dr)2
+ (ar + bs − cp − dq)2 + (as − br + cq − dp)2
これが Euler による元祖のバージョン。Euler はこう記した:
もし m = aa + bb + cc + dd で n = pp + qq + rr + ss なら mn = A2 + B2 + C2 + D2 となる。ここで:
A = ap + bq + cr + ds
B = aq − bp − cs + dr
C = ar + bs − cp − dq
D = as − br + cq − dp
(付録3) 現代の教科書によく現れる別バージョン。ここでは使わないけど、本文の式との関係を記しておく。
本文の恒等式の右辺において、一つ目の丸かっこ内の3個の + を全部 − に変え、二つ目以降の丸かっこ内で、それぞれ最初の − を + にしても、つじつまが合う:
(Aa − Bb − Cc − Dd)2 から −AaBb, −AaCc, −AaDd; +BbCc, +BbDd; +CcDd
(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項)はマイナスになるが、2行目以下の第1列がプラスになるので、それらは打ち消し合う。2行目以下の第4列・第5列の符号も入れ替わるが、やはり打ち消し合う。
〔例2〕 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
ここまでは例1と全く同じだが、上記のように符号を変えると:
(Aa − Bb − Cc − Dd)2 = (−3)2
(Ab + Ba + Cd − Dc)2 = 62
(Ac + Ca + Db − Bd)2 = 42
(Ad + Da + Bc − Cb)2 = 32
このことから:
32 + 62 + 42 + 32 = 9 + 36 + 16 + 9 = 70
これは、例1による次の解とは別の種類の和だ:
72 + 22 + 42 + 12 = 49 + 4 + 16 + 1 = 70
A, B, C, D を a1, a2, a3, a4 と改名し a, b, c, d を b1, b2, b3, b4 と改名すると:
(a12 + a22 + a32 + a42)(b12 + b22 + b32 + b42)
= (a1b1 − a2b2 − a3b3 − a4b4)2 + (a1b2 + a2b1 + a3b4 − a4b3)2
+ (a1b3 + a3b1 + a4b2 − a2b4)2 + (a1b4 + a4b1 + a2b3 − a3b2)2
丸かっこ内を a の添え字順に並び替えると:
= (a1b1 − a2b2 − a3b3 − a4b4)2
+ (a1b2 + a2b1 + a3b4 − a4b3)2
+ (a1b3 − a2b4 + a3b1 + a4b2)2
+ (a1b4 + a2b3 − a3b2 + a4b1)2
b の添え字は、付録1の y の添え字と全く同じ: 横に読んでも、縦に読んでも 1234, 2143, 3412, 4321。
丸かっこ内の符号は、順に −−−, ++−, −++, +−+ となる。最初は三つともマイナス。二つ目・三つ目・四つ目の丸かっこ内では、それぞれ「遠・近・中央」(右・左・真ん中)にマイナスが出現。この形式は「四元数」と関連している。
↑ 付録の終わり。次のメモに続く。
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 = j p ここで 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 − r2 が k の倍数になるためには 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 = k2t としよう。その両辺を k で割ると p = kt。これは「素数 p が正の整数 k で割り切れる」ことを意味する。素数は 1 と自分自身でしか割り切れないので、k = 1 または k = p となるはずだが、どちらも不可能。なぜなら、ここでは k は 2 以上と仮定していて、命題1の (ii) によって k < p という縛りもある(ここでも p が素数という仮定が利いている)。
さて、(ク)において 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) 気持ちのいい直接証明
四平方の定理の古典的証明は、三つの命題に基づく。第一に、「4平方和」と「4平方和」の積は、再び「4平方和」で表されること。第二に、任意の素数 p について、p の倍数 kp の中には
整数2 + 整数2 + 1 = kp
の形を持つものが存在すること。第三に、3 以上の素数 p と 2 以上の整数 k について、
(ケ) 整数2 + 整数2 + 整数2 + 整数2 = kp
と書くことが可能なら、別の整数 j を使って、
(コ) 整数2 + 整数2 + 整数2 + 整数2 = j p
と書くことも可能――ということ。ここで 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 は素数とは限らない)も含め、範囲指定を「以下」ではなく「未満」にするため。証明中の 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 未満…と断言できる。すると(オ)との関係で…
j p = 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 とは、ガウス整数 G = x + yi とその共役のガウス整数 G* = x − yi の積のこと」と解釈し、ガウス整数 G とその共役の積を G のノルムと呼ぶなら:
x2 + y2 = N ⇔ G = x + yi のノルムは N
ノルム 73 を持つガウス整数 G = 8 + 3i と、ノルム 5 を持つガウス整数 H = 2 + i が与えられたとき、ノルム 365 = 73 × 5 を持つガウス整数は、本質的には次の2種類だけ:
GH = (8 + 3i)(2 + i) = 16 + 8i + 6i − 3 = 13 + 14i
GH* = (8 + 3i)(2 − i) = 16 − 8i + 6i + 3 = 19 − 2i
この他、G*H あるいは G*H* という選択肢も考えられるが、前者は GH* の共役、後者は GH の共役なので、y の符号が逆になるだけで y2 の値は変わらない。
この観点からすると、恒等式ゴージャス版において符号を適切に選択するなら、その左辺は「ガウス整数の積のノルム」を表し、右辺は「ガウス整数のノルムの積」を表している。特に、ゴージャス版の右辺で複号の下側を選択した場合、ガウス整数とガウス整数の積の公式が得られる:
G = a + bi, H = c + di ⇒ GH = (a + bi)(c + di) = (ac − bd) + (ad + bc)i
実部 | 虚部 | 実部 | 虚部 |
---|---|---|---|
外側 | 内側 | 内側 | 外側 |
a | b | c | d |
↓ 本題に戻る。
【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 = j p
(ホ)の 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 しかない。そして素数 19 の平方が 3 の倍数 369 のわけないので、361 だと感覚的に分かる。まぁ、次のように普通に考えても、大した手間じゃないけど…
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]