「素数が無限にある」というのはあまりにも有名な事実ですが、これの証明の中で最も有名なのは、ユークリッドによるとされる以下のようなものでしょう。
しかし、この「よく言われる」証明に対して、以下のような疑問が提示されているのを見かけました。
このツイートを見ると確かに、少なくとも冒頭で述べたような証明については、「$${N}$$は素数である」という部分は冗長であるように思えます。
(実際、いくつかのサイトでは、このような冗長性が生まれないような書き方がされていました)
つまり冒頭の証明は、実際にはこのように書くのが自然ということになります。
シンプルになりましたね。
また、ツイートでは以下のような証明も提案されています。
どちらの場合も、「2以上の整数は素因数を少なくとも一つは持つ」という事実を用い、「$${N}$$は素数である」という論を用いずに証明しています。
また、別の方が「$${N}$$は素数である」という論を用いた証明を提案していました。
こちらの証明には先ほどのような明らかな冗長性は感じないものの、確かに証明1の最後に(過度に)強い論理を一つ噛ませたような証明にも思えます。
いずれにせよ、ここであげた3つの証明では、「$${N}$$が素数である場合」と「$${N}$$が素数でない場合」の場合分けを行っていないことがわかります。
(「Nは素数であることを用いた証明」も場合分けはしておらず、どちらの場合も導けるいう矛盾を利用しています)
私が考えた限り、「場合分け」を「背理法」とともに使い、このような冗長性が生まれないように証明をするのは難しいように思えました。
さて、色々と引用させていただきましたが、ここまでは前置きです。
問題は、冒頭のような冗長な証明がどこから出てきたのか、ということです。
本当のユークリッドの証明
まず、本当のユークリッドの素数が無限にあることの証明は、冒頭のようなものではありません。
これについては、Wikipediaのものを引用します。
先ほどまでの証明と同じフォーマットで書くなら、以下のようになります。
Wikipediaの記事にもある通り、実はユークリッドの『原論』では背理法は使われていないのです。
「ある個数の素数があったとき、そこに含まれない素数を一つ作ることができる」ということを示すことで、いくらでも素数を作ることができる、つまり素数が無限に存在することを直接的に示したわけですね。
この証明では、「$${N}$$が素数である場合」と「$${N}$$が素数でない場合」との場合分けは、冗長でなく機能しています。
また、中村幸四郎・寺阪英孝・伊東俊太郎・池田美恵翻訳の「ユークリッド原論」では、この証明は以下のように書かれていました。
(ΔE=A×B×Γ,ΔZ=1,EZ=ΔE+ΔZ,実際にはこれに各数の長さの棒が描かれた図が付されている)
内容自体はほとんど先ほどのものと同じですが、先ほど「素数は無数に存在する」と書かれていたのが「素数の個数はいかなる定められた素数の個数よりも多い」となっているところなどは注目すべきポイントでしょう。
もちろんこちらでも背理法は使われていません。
この証明を、「$${N}$$が素数である場合」と「$${N}$$が素数でない場合」との場合分けなしに記述することもできそうです。
こちらもスマートになりました。
とはいえ、ユークリッドの証明は具体的な構成手順である上、証明自体もそこまで遠回りにはなっていないので、場合分けの冗長度合いはそこまで高くないようにも感じました。
背理法による証明
では、背理法はどこから出てきたのでしょうか。
先ほどのWikipediaの記事は以下のように続きます。
これは、先ほどの「$${N}$$は素数であることを用いた証明」と一致し、冒頭の証明のような冗長性も持ちません。
(これをユークリッドの証明の別の表現と言ってしまっていいのかについては、やや疑問が残ります)
流石にこの背理法での証明の出所まではわかりませんが、こちらの証明の方がよく出回っているのは、「素数を無限に構成する」よりも、「素数が有限であると仮定する」方が直感的だったからなのでしょうか?
(個人的には背理法を使わない方が直感的な気がします)
冗長な証明はどこから来たのか?
さて、ここまでのことをまとめると、「冒頭のような冗長な証明がどこから出てきたのか」という問いには答えが出せそうです。
つまり、
ユークリッドによる証明では、「背理法を使わず」、「$${N}$$が素数であるかで場合分けをして」証明していた
ユークリッドによる証明を変形したものとして、「背理法を使い」、「$${N}$$が素数であるかで場合分けをせず」、「『$${N}$$が素数であること』を導くことで矛盾を示す」証明が知られるようになった
(しかし、「$${N}$$が素数であること」を導く必然性はなかった)
この二つが知られるようになった結果、「背理法を使い」、「$${N}$$が素数であるかで場合分けをして」証明するというミックス証明が生まれ、巷ではこのような証明が知られるようになった
という流れによって、冒頭の証明が生まれたと推測できます。
混乱の種は、背理法を用いることによって「本当の自然数とは異なった形の自然数」という前提に立たなければならなくなる、ということでしょう。
様々な場所で例として取り上げられていたのは、「$${N}$$は素数であることを用いた証明」に具体的な値を入れたこのような記述についてです。
実際には、この$${N}$$は$${N = 59×509}$$であるため、「$${N}$$は素数である」という記述はおかしいのではないか、という疑問です。
間違った仮定の上で議論しているので、背理法の途中で誤った結論が現れることはあっても良いものだと思いますが、とはいえ「$${59×509}$$が素数」という奇妙な状況になっているのは事実ですから、混乱の種となるのも仕方がないようにも思えます。
追記
この記事を書いている間に、同じ方がさらにツイートされていたので、こちらも置いておきます。
この記事にあるような内容だけでなく、「冗長である代わりに直感的である」というような考察もされているので、こちらもぜひご覧ください。
数学素人による推測と考察ですので、間違い等あればご指摘いただけると幸いです。
また、この議題は「数学デー」という場所で話し合われたものだそうです。
私はその場にはいませんでしたが、こちらの方も貼っておきます。