第19話 ペアノ算術 公理

「実は昨日もう今朝の朝食の準備済ませてあったんだ」

藍が機嫌のよい口調で言う。

「用意周到だね。何を作ったの?」

「ほうれん草とベーコンのキッシュ。冷蔵庫に冷やしてある」

「それはすごいね。ありがとう」


藍はオーブンの予熱をする。


「今日も一日一緒に居れるからね。三日連続で一緒に居るのは久しぶりじゃない?」

「そうかも。前はいつだっけ?」

「あんまり覚えてないな。とにかく今日は、ペアノ算術に必要なペアノの公理とその周りを少しやろう」

「聞いたことないけどペアノって何?人の名前?」


湾は紅茶の用意をし始めながら質問した。

藍は冷蔵庫からキッシュ生地を取り出して焼き始める。


「そう。ジュゼッペ・ペアノ。何年生まれかまでは覚えてないけど、19世紀中ごろに生まれて、20世紀前半に亡くなったはず。調べられる?」

「うん、ちょっと待って」


湾は携帯電話を寝室に取りに行って調べる。


「ジュゼッペ・ペアノ。1858年生まれ、1932年トリノ没。なるほど。それでペアノ算術ってどんなもの?」

「自然数を公理化したものだ」

「自然数の公理化、あんまり想像できないな」

「自然数を形式的に捉えようとしたもの、と言ってもいいかな。"形式的"とは、少ない種類の記号で、機械的な操作によって議論を進めていく方法、と言っていいと思う」

「簡単に言うと、自然数を厳密にしようとしたっていうこと?」

「それもある。自然数はこういうものだ、という厳密な定義を与える目的もあっただろうが、むしろ記号の操作だけで"意味"をできる限り排除して議論を進めることができるようにすることも大切な目的だ」

「意味を排除、か。それにどんな意味があるのかな」

「意味の排除の意味、とは面白いことをいうね。その歴史についてはまたしっかり考えてみたいところだね。今は、ある種の、と言っても非常に汎用性のある計算を、少ない記号と少ないルールで厳密に計算できるようになることを目指そう。さて、キッシュが焼けるまで、使う記号を説明するよ」


藍と湾はちゃぶ台の前に座り、記号の確認をする。


変数記号

x,y,z,…


定項記号

0


「定項記号?」

「そう。変数記号も定項記号も、項を表す記号で、文法は同じだけれども、定項記号には代入などはできない。意味を考える必要は特にないけれど、0はゼロ、すなわち最小の自然数、ℕは自然数全体、を意識しているね」

「なんとなくはわかった」

「ここからは文法も一緒に書いていくよ」


関係記号 論理式を作る

∈ 項a,bを用いてa∈bと書く

= 項a,bを用いてa=bと書く


「これはおなじみだね」

湾が少し安心したように言う。

「そうだね。そして、いままで通りの意味を期待している」

「期待?」

「記号自身には意味はないけれども、そういう意味のように振る舞ってほしいな、ということ」

「あんまりピンとこないけど」

「今は大丈夫、次にいこう」


カッコ

(

)

他の記号と組み合わせて様々な使い方をする


「そして、これもおなじみのカッコ。人間が読みやすい文法で書くにはカッコは必須だ」


結合記号

論理結合子 論理式を作る

∨ 論理式AとBを用いて(A)∨(B)

∧ 論理式AとBを用いて(A)∧(B)


量化記号 論理式を作る

∀ 変数記号xと論理式Aを用いて∀x(A)

∃ 変数記号xと論理式Aを用いて∃x(A)


ならば 同値

→ 論理式AとBを用いて(A)→(B)

↔ 論理式AとBを用いて(A)↔(B)


否定記号 論理式を作る

¬ 論理式Aを用いて¬(A)


「これらは今まで散々やってきたね。注意としては、量化記号の束縛変数の宣言に定項記号は使えない」

「というと?」

「次のような式は禁止」


∀0(0∈ℕ)


「わかった」


関数記号 項を作る

S 項aを用いてS(a)

+ 項a,bを用いて(a+b)

× 項a,bを用いて(a×b)


「項を作るというところがポイント」

「Sって何?」

「Sは後続successorの頭文字のSで、"次の数"の意味を期待する」

「例えば、こういうこと?」


S(1)=2


「"1"とか"2"とかいう記号はまだ定義されてないけど、つまりそういう意味を表したい」

「OK」

「これで記号は全部だ。まあ、ほとんどの記号は見慣れていると思うので、早速公理に進もう」

「公理ってなんだっけ」

「証明なしで真としてよい命題のこと。いわば一つのルールだね。本来は述語論理の公理を全て述べるところから始めるべきだが、それをすると煩雑になりすぎるな…」

「述語論理の公理とは?」

「上で紹介した記号の中で、定項記号と関数記号以外のものたちに課されたルールだと思ってくれていい。例えばこういうもの」


(¬(¬(A)))↔(A)


「Aでない、の否定はAと同値ってことだね」

「そう。でもこれらを全部書いていたら日が暮れてしまう…と、キッシュが焼けたようだ。まずは朝食にしよう」


気付けば部屋に芳ばしい香りが漂っている。


藍は手際よくサラダとキッシュを盛り付ける。


「もう11時だ。1時くらいに出かけて、軽く昼食とって、という感じかな」

「そうしよう。丁度いい感じだと思うけど、あと2時間でペアノ算術終わるの?」

「いや、終わらないけど、公理の説明だけしようと思う。でもまずはゆっくりと朝食をとろう」


朝食の用意が終わり、二人はゆっくりと食べ始めた。


「これはおいしいねえ。どこで作り方知ったの?」

「全部インターネット」

「なかなかインターネットレシピ見ながら料理するのは大変だな」

「それも練習かな。そもそも良いレシピを探すのも練習が必要だよね」


二人はいつも食事の時間はゆっくり作るようにしている。


さて朝食と藍の歯磨きが終われば、藍は途端に動きをきびきびさせて、後片付けと、ノートとペンの準備を始めた。


「さて、自然数の性質を述べるペアノの公理をとりあえず見てみよう」

二人がちゃぶ台の前に座るや否や、藍は気合の入った声で言った。


0∈ℕ

∀n∈ℕ(S(n)∈ℕ)

∀n∈ℕ(S(n)≠0)

∀n,m∈ℕ(S(n)=S(m)→n=m)

(φ(0)∧(∀n∈ℕ(φ(n)→φ(S(n)))))→∀m∈ℕ(φ(m))

ただし、φは任意の述語とする


「この無限個だ」

「無限個?5つにしか見えないけれど」

「もちろん、5つと数えるのが普通だね。最後の長い式にはどんな述語φに対しても成り立つので、結果的に無限個になってしまう」

「あまり直感的にはわからないな」

「もちろん、これは難しいから具体例で理解していこう。まずは上から見ていくよ」


0∈ℕ


「これは読める?」

「そのまま読めば、"0は自然数に属する"だね」

「そう。まずは0が自然数であるということを言いたい。これで少なくとも1個は自然数があることがわかった」

「何をやりたいのか少し迷子だけど、とりあえずこの式はOKだよ」

「よし、次に行こう」


∀n∈ℕ(S(n)∈ℕ)


「これは読める?」

「素直に読めば、"全ての自然数nに対し、エスエヌは自然数である"かな?」

「そうだね。今エスエヌは "nの後続数"と読むことにしよう」

「ああ、そうだった。 S(n)はn+1を期待するんだっけ」

「そういうこと。でもまだ和の公理…つまりプラス記号を定めていないので、Sという関数を使うよ」

「わかった。次行く?」

「いや、待って、これで今定めたい自然数がどういう姿をしているのか見てみよう」

藍はノートに図を描いた。


求めている自然数の姿

0→S(0)→S(S(0))→S(S(S(0)))→…


現状(二つ目の公理まで)

0→S(0)→S(S(0))→…

A  C→S(C)→S(S(C))→…

     ↑

     B


「これはどういう意味?」

「自然数に求めている性質は0から順番に一列にずらっと並んで、それ以外のものは自然数でない、というものだ。しかし "0は自然数"と"nが自然数ならば後続数も自然数"というだけでは、0が最初の自然数ではないかもしれないし、0以外の最初の数もあるかもしれないし、後続数が同じになる別の自然数があるかもしれない」

「なるほど。ある数の後続数が2つの違う自然数になることはないの?」

「それはない。関数は一つの項に対してただ一つの項を定めるから」

「なるほど。でもその条件ってどこかに論理式で書いてあったっけ?」

「どこにも書いていない。ただ、S(n)と言ったら、これは一つのS(n)というひとつの項を作ることが関数記号へ期待している性質なんだ」

「少しわかりづらい」

「まあね。とにかく関数記号は、入力する項に対してただ一つの項を定めるもの、という理解にしておいておけばよい」

「うん。とりあえず次いこうか」

「そうだね」


∀n∈ℕ(S(n)≠0)


「これは読める?」

「全ての自然数nに対して、nの後続数は0ではない」

「その通り。先ほどの図のABCのうちどれを禁止しているだろうか」


0→S(0)→S(S(0))→…

A  C→S(C)→S(S(C))→…

     ↑

     B


「えっと、Aだね。Aの後続数が0になってしまっている」

「そういうこと。これにより、0が最初の数だ、ということがはっきりする。現状はこうだ」

0→S(0)→S(S(0))→…


C→S(C)→S(S(C))→…

     ↑

     B


「まだ二つのスタートの可能性とか、同じ後続数になる違う自然数、とかが排除できてないね」

「そういうこと。では次の公理を見てみよう」


∀n,m∈ℕ(S(n)=S(m)→n=m)


「これは読める?」

「少し長い、けど頑張れば読めそう。すべての自然数nとmに対し、nの後続数とmの後続数が等しいならば、nとmは等しい」

「その通り。同じ後続数になるような異なる自然数は存在しないと言い換えてもいいね」

「あれ?それはまた別の論理式になりそうな」

「その通り。"ならば"に同値な論理式を作ることができる。が、その説明は後日に回そう。この公理はこの図のどれ修正したといえるだろう?」


0→S(0)→S(S(0))→…


C→S(C)→S(S(C))→…

     ↑

     B


「これはBだね。BとS(C)の後続数がS(S(C))になっているけど、BとS(C)が等しくない」

「そういうこと。つまり、今自然数はこんな姿をしていそうだ」


0→S(0)→S(S(0))→…


C→S(C)→S(S(C))→…


「さっきから少し疑問なんだけど」

「何?」

「公理って制限を与えていくものなの?なんかもともと持っていた公理のイメージと少し違うな」

「今は自然数というものを明確にするために、自然数全体と言える集合を制限しながら作ってるね。逆にいえば記号ℕの性質をたくさん述べることで、ℕを使いやすくしている、とも思えるかも。どちらにしろ記号ℕが表したい自然数全体を一つの解釈に定まる集合として定義したい、ってところかな」

「わかった。そして、最後の公理は?」

「最後の公理は少し難しい。これは数学的帰納法を定める」


(φ(0)∧(∀n∈ℕ(φ(n)→φ(S(n)))))→∀m∈ℕ(φ(m))

ただし、φは任意の述語とする


「あ、ファイが出てきたね」

「うん。よし、これをゆっくり読み解こう」


その瞬間先ほどペアノについて調べていた湾の携帯電話が鳴った。


「電話だ」


普段は藍と話しているときは携帯電話を身に着けず、連絡に邪魔されないようにしていたが、先ほどペアノについて調べていたために、連絡に気づいてしまった。


「いいよ、出なよ」

「うん」


湾は電話を取る。


「はい、もしもし。ああ、和音かずねさん。いつもお世話になってます。なにか進展がありましたか?」


藍は不安そうに湾を見つめている。長い間湾は電話の相手の話に耳を傾ける。


「ええと、これからですか。これからは予定があって少し厳しいんですが」


藍は、ノートに文字を書いた。


緊急の用事なら行っておいで


湾をそれを見て頷く。


「どうしても今日しか先方の予定がつかないんですね。わかりました、これからすぐ伺います。15時に駅集合ですか。わかりました。はい、失礼します」


湾は電話を切る。そして、深呼吸してから言った。


「昨日の仕事の話に急に進展があったらしくて、今日これから行かないといけなくなった。ごめん、本当に」

「大丈夫、出かけるのはまた後日にしよう」

「ありがとう」

「今晩はどうする?」

「予定がわからないから、とりあえず家に帰ることにする」

「そう。じゃあまた今度。でもペアノの公理、次会うときまで覚えておいてよ」

「わかった」

「このノートは渡すから」

「うん、ありがとう」

「お仕事上手くいくようにね」


湾は急いで支度をして家を飛び出た。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る