ときどき,「$1+1=2$は実は難しい」という主張や「$1+1=2$を証明せよ」といった問題(?)を目にすることがある.
そのようなものを目にするたび,$1+1=2$を証明することなどできるのか,そもそも証明すべきことなのかという疑問をもつ人もいることだろう.$1+1=2$は小学校で習う算数の基本中の基本である.ここでは,それをわざわざ証明するとはどういうことを指すのか,ということを考察したい.その中で自然数とその計算についての理論であるPeano算術について考えていく.
$1+1=2$は算数の中でも基本中の基本である足し算の最も単純な計算である.
これは自明な結果であり,実は難しいといわれてもピンとこない.ましてや証明するべき対象だとは到底考えられない.
「$1+1=2$の証明」の問題はここにあると考えられる.すなわち,「証明なしに用いてよいもの」と,「証明すべきもの」の違いを明確に区別するということである.
数学において,最初に与えられた「証明なしに用いてよいもの」を公理(axiom)という.
そして公理から正しい推論規則を繰り返し適用して得られた結果を定理(theorem)という.
「$1+1=2$を証明せよ」という問いにおいて$1+1=2$とは証明すべき定理だというわけである.
では,この問いにおける公理とは何なのであろうか.多くの場合,この点が不明確であるから「$1+1=2$を証明せよ」という問いも何をすればよいのかがわからないのである.
$1+1=2$は自然数についての計算である.自然数の計算についての考察には,そもそも自然数とは何かということの考察が関わってくる.
自然数とは何かという問いは自然数についての公理をみつけようという問いであり,この問いに答えたのがG Peanoである.
そして自然数についての公理系は今日「Peanoの公理」として知られている.Peanoの公理とは次の五つの公理からなる.
$0$は自然数である ^1 .
$a$を自然数とすると,その後者(successor)$s(a)$も自然数である.
(この$s$を後者関数という.意味としては「+1」を指す.)
$0$はいかなる自然数に対してもその後者ではない.
自然数$a,b$に対して,$a\neq b$ならば$s(a)\neq s(b)$である.
$0$がある性質$P$をみたし,$a$が性質$P$をみたすならば$s(a)$も性質$P$をみたすとする.このとき,すべての自然数は性質$P$をみたす.
この公理も慣れていなければ不思議に思われることだろう.
まず,最初に「$0$は自然数である」などといわれても,そもそも今自然数とは何かを考えているのに何をいっているのか,となりかねない.
この公理は,我々が自然数について何かを語るとき,何もないところから始めることはできないことを物語っている.
すなわち,せめて$0$という記号がなければ始まらないのである.同じように後者関数を表す$s$も必要である.
このような記号の集合を言語という.
まずは自然数を語る上で必要な,自然数の言語について考えてみる.
Peano算術の言語$\mathcal{L}_{A}$は次のものである.
$$\mathcal{L}_{A}=\{0,s,+,\cdot ,<\}$$ここで,$0$は定数記号,$s$は$1$変数関数記号,$+$と$\cdot$は$2$変数関数記号,$<$は$2$変数関係記号である.
自然数の集合を考えるだけであれば和の記号$+$などは必要ない.
しかし,今は自然数の計算も含めたPeano算術について考えるため,和や積の記号も用意する.
また,今回は直接用いることはないが,通常大小関係も考えるためそれに倣い$<$も入れておく.
上のように述べてはいるが,この時点では各記号に「意味」はない.
というのもまだPeano算術の公理を定めていないからである.
つまり,この後で公理を定め,たとえば$+$という記号が和を表しているものであると考えたいのである.
また,Peano算術に限らず,次のような論理記号を用いるので今回もそれにしたがうことにする.
ブール結合子$\wedge$(かつ),$\vee$(または),$\neg$(でない)
量化記号${\exists}$(存在),${\forall}$(任意)
等号記号$=$
変数$v_0,v_1,v_2,\dots v_n,\dots$
括弧$($,$)$
必要に応じて変数は$x,y,z,\dots$のような記号も用いるし,括弧も$(~)$の代わりに$\{~\}$や$[~]$も用いる.
また,$\rightarrow$(含意),$\leftrightarrow$(同値),${\exists}!$(一意に存在)を以下の論理式の省略として使用する.
$$\begin{eqnarray}
{\varphi}\rightarrow\psi~~~ &\Leftrightarrow~~~\neg{\varphi}\vee\psi \\
{\varphi}\leftrightarrow\psi~~~ &\Leftrightarrow~~~({\varphi}{\rightarrow}\psi)\wedge(\psi{\rightarrow}{\varphi}) \\
{\exists}!x{\varphi}(x)~~~ &\Leftrightarrow~~~{\exists}x({\varphi}(x)\wedge{\forall}y({\varphi}(y){\rightarrow}y=x))\end{eqnarray}$$記号の多さに辟易としてくるかもしれない.このような形式化の最初のハードルがこの記号の多さかもしれない.
今回はこのすべてを用いるわけではないし,せっかくだから載せているものも多い.
適宜読み飛ばし,わからなくなったときに再度みるくらいでちょうどいいと思われる.
さて,前節でPeanoの公理をみたときにも述べたが,Peanoの公理自体は自然数というモノに関する定義であってその計算などには触れられていない.計算も含めた自然数の公理系(理論ともいう)はPeano算術(Peano arithmetic)とよばれ,$\textsf{PA}$で表される.
ここではPeano算術の公理についてみていく.
すべての$x$に対して$s(x)\neq 0$である.
すべての$x,y$に対して$x\neq y\Leftrightarrow s(x)\neq s(y)$である.
Peano算術最初の公理は後者関数に関するものであり,上でみたPeanoの公理の3と4にあたる.
この公理を繰り返し適用することで$s(0)\neq ss(0)$
^2
,$ss(0)\neq sss(0)$などが得られる.これにより
$$0~,~~s(0)~,~~ss(0)~,~~sss(0)~,~~\cdots$$がすべて互いに異なるものとして得られる
^3
.これを自然数$0,1,2,\cdots$と思うわけである.
すべての$x$に対して$x+0=x$である ^4 .
すべての$x,y$に対して$x+s(y)=s(x+y)$である.
すべての$x$に対して$x\cdot 0=0$である.
すべての$x,y$に対して$x\cdot s(y)=x\cdot y+x$である.
Peanoの公理にはなかった和と積についての公理である.3と4ですべての数項についての和を定め,5と6で積を定める.
また,ここでたとえば4についてはすでに$x+y$が定義されているという前提のもと$x+s(y)$を定義している.このように帰納的に定義するやり方を帰納的定義あるいは再帰的定義という.
すべての$x$に対して$\neg (x<0)$
すべての$x,y$に対して$x< s(y)\leftrightarrow x< y\vee x=y$
今回は不等号に関する公理は用いないため,紹介にとどめる.
この公理はPeanoの公理の5にあたる.
その内容をみてみると,帰納法は次の二つの主張を証明することですべての$x$に対して性質$\varphi(x)$が成り立つと結論できる原理である.
$\varphi(0)$が成り立つ(起点段階).
すべての$x$に対して$\varphi(x)$が成り立つならば$\varphi(s(x))$が成り立つ(帰納段階).
このことは記号${\forall}$などを用いて次のように表される.
これを帰納法の公理という.
しかし,実際には算術の言語で記述される性質$\varphi$ごとに公理があるため,これは無限に多くの公理が合わさったものと考えられる.そのため,帰納法の公理は帰納法の公理図式ともよばれている.
以上が$\textsf{PA}$の公理である.
これらの公理から出発して定理を導くことになる.
いよいよ本題の$1+1=2$の証明に入る.
しかし,この式はそもそも$\textsf{PA}$のものではない.$\textsf{PA}$には$1$や$2$という記号はないからである.
まずは正確に問題をかき下すことから始める.
次の式は$\textsf{PA}$の定理である.
$$s(0)+s(0)=ss(0)$$
すなわち,「$1+1=2$証明せよ」という問題は多くの場合,定理1を証明せよということなのである.
そして,この証明には前章で紹介した和の公理のみを使用する.
どの公理を使ったかみながら示していく.
$$\begin{eqnarray} s(0)+s(0)&=s(s(0)+0)& &(和の公理4)\\ &=s(s(0))& &(和の公理3)\\ &=ss(0)& &(単なるいいかえである)\end{eqnarray}$$
ここまで,「$1+1=2$を証明せよ」がどのような意味をもつのかをみてきた.
結論としては,確かに$1+1=2$は$\textsf{PA}$における定理であり,証明すべきことである.
しかしその証明自体は何も難しくないし,興味深いことでもない.
むしろその背後にある,理論や形式的な議論にこそ意味があるといえる.
最後に補足として$\textsf{PA}$の言語と公理,そして「$1+1=2$は証明すべきことなのか」について考察する.
$\textsf{PA}$の言語の後者関数について,その意味としては$+1$である.
ではそのような不思議な関数の代わりに,はじめから$1$を言語に入れておけばよいのではないか.
実はそのようにするやり方もある.実際,同じ理論を考えていても異なる言語や公理を用いることがある.
そして,それらは証明能力としては同値になる. そして,言語を
$$\mathcal{L}_{A}=\{0,1,+,\cdot ,<\}$$ とした場合,数項は
$$0~,~~1~,~~1+1~,~~(1+1)+1~,~~\cdots$$ となる.
ここから何がいえるだろうか.この場合の数項$\bar{2}$は$1+1$である.よってこの場合,「$1+1=2$」はただの定義である.
つまり,証明すべきことではない.
$\textsf{PA}$に不等号に関する公理があった.$1+1=2$の証明には用いないため注目しなかったが,実はそもそも$<$自体が他の記号から次のように定義することができる.
$${\forall}x,y(x< y\leftrightarrow{\exists}z(z+(x+1)=y))$$では,なぜ$<$を言語に入れ,そのための公理を用意するのか.
それは論理式をその形によって分類するなどの利点があるからである.
つまり,言語や公理は最小にしなければいけないわけではなく,他の公理から導き出されるものであっても公理に追加してもよい.
ここから何がいえるか.$1+1=2$は先に示したように$\textsf{PA}$の公理から証明できた.よって,これをはじめから公理に加えても矛盾しない.
この場合,$1+1=2$は公理とみなせ,証明しなくてもよい.
「$1+1=2$は証明すべきか」ということについてこれまでみてきた.
結局$1+1=2$は証明すべきことなのだろうか.
それは,用いている言語や理論の内容による.
広く使われている$\textsf{PA}$で考えるならば確かに一つの定理であって証明できるものであるが,わざわざそれを難しい問題のようにみせる必要があるようには思えない.
また,先述したように言語や公理の選び方によっては証明せずともよいので,証明したくない場合は最初から公理に入れている立場をとればよいと思う.
しかし,この問題を通して言語や理論を学ぶきっかけにはなるので,そういう意味では意味のある問題なのかもしれない.
Richard Kaye Models of Peano Arithmetic Clarendon Pr,1991
菊池誠『不完全性定理』 共立出版,2014
新井敏康『数学基礎論』 岩波書店,2011
John Stillwell著,川辺治之訳『逆数学 -定理から公理を「証明」する-』
森北出版,2019
田中一之『数学基礎論序説』 裳華房,2019
結城浩『数学ガール ゲーデルの不完全性定理』 SBクリエイティブ,2009