ZFCで遊ぼう No.4
ついに自然数を作ることができたので、ちょっと足し算でも考えてみましょう。
たとえば、2+3をしてみたいとします。足し算をいつもどのようにやっていたかを思い出してみましょう。
●● + ●●●
は2+3を視覚的にとらえていますね。右の●を左に持ってくることによって、足し算ができそうです。
●●● + ●●
●●●● + ●
●●●●●
2個玉が入った袋に、3個玉が入った袋から一個ずつとりだして移していく、というイメージです。これをZFCで作りましょう・・・、とその前に、やりたいことを明確に式にしておきます。
+:
n+0 = n
a+S(b) = S(a)+b
ただし、S(n)は後者関数
もうちょっとわかりやすく読み解きます。
+: 足し算は次のように定義します。
n+0 = n 0を足しても変わりません。
a+S(b) = S(a)+b a+(bの次の数)=(aの次の数)+b という計算をします。
S(n)とはnの次の数という意味です。
具体的に2+3をやってみます。
2=S(S(0))
3=S(S(S(0)))
なので、
2+3
=S(S(0))+S( S(S(0)) )
=S( S(S(0)) )+S(S(0))
=S(S(S(S(0))))+S(0)
=S(S(S(S(S(0)))))+0
=S(S(S(S(S(0)))))
=5
となります。ZFCでこれらをするためには、上手い感じに後者関数を作れば良いことになりますね。やってみましょう。
後者関数S(n)の定義
∀x(x∊S(n)⇔(x∊n∨x=n))
読んでみましょう。
∀x( 全てのS(n)の要素候補xに対し、
x∊S(n) xがS(n)に属しているとは次のようなもの全てでそれのみである。
⇔(x∊n∨x=n)) nに属している、またはn自身である。
S(n)は4文字の記号列ではなく、1文字の変数記号だと思って読んでください。
どのような集合に対しても後者関数の値が存在するという文
∀n∃S(n)∀x(x∊S(n)⇔(x∊n∨x=n))
は、和集合の公理から証明可能です。(自然数以外にも後者関数が定義されてしまっています)
たとえば3={0,1,2}を考えます。この後者の要素は、
3に属している
0 1 2
と、3自身である
3
全てでそれのみであるので、3の後者は
{0,1,2,3}
となりました。
ところで、S(n)をn+1と書くことにすれば、+1は計算できるようになりました。(「+1」で一つの記号のように見る)
1+1を計算してみましょう。
∀A(∀x(x∈A⇔∀y¬(y∈x))⇒∀z(x∈B⇔(x∊A∨x=A)))
∀A( すべての数の候補に対しAとは次の数のような数である
∀x(x∈A⇔∀y¬(y∈x) Aの要素は空集合のみである
)⇒ つまり、Aが1ならば
∀z(x∈B⇔(x∊A∨x=A))) BはAの後続数である。
そして、Aを1とするとBは1の後続数で2になってくれますね。これで計算ができました!
本格的に足し算を作るためには、自然数全体を作らないといけないようですので、ついに次回、無限公理にすすみましょう。
ここから先は
¥ 100
記事のお読みいただきありがとうございます。 即興演奏を通した様々な活動と、これからの執筆活動のために、サポートしていただけたら幸いです。