見出し画像

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になってくれますね。これで計算ができました!

本格的に足し算を作るためには、自然数全体を作らないといけないようですので、ついに次回、無限公理にすすみましょう。

ここから先は

0字

¥ 100

記事のお読みいただきありがとうございます。 即興演奏を通した様々な活動と、これからの執筆活動のために、サポートしていただけたら幸いです。