数とは何か
数学は読んで字のごとく数についての学問です.読み方は”かず”じゃなくて”すう”です.小学生一年生のころから何の疑問も持たずに使ってきました.今一度僕らが使ってる数はいったい何者なのか考えてみたいと思います!数を0から作ってみましょう!(0も数のはずなのに...僕はこの文好きです(笑))
自然数を作ろう
自然数の作り方として,
ペアノの公理で有名なペアノシステム.
コンピュータの生みの親ノイマンによる定義.
の二つを紹介したいと思います!
ペアノシステム
まずは定義から
\begin{align}
& 自然数1が存在する.\tag{p-0} \\
& 任意の自然数aにはその後者inc(a)が存在する.(ペアノの公理)\tag{p-1} \\
& inc(a)=1なるaは存在しない.\tag{p-2} \\
& 関数inc()は単射である.\tag{p-3} \\
& 1がある性質を満たしaがある性質を満たせばその後者inc(a)の性質 \\
&を満たすとき, 任意の自然数はその性質を満たす. \tag{p-4}
\end{align}
これがペアノシステムの条件です.この条件さえすべて真ならそれはすべて自然数なのです!!!
耳慣れない言葉として単射という単語がありますね.ある関数の値域について値の被りがないときにその関数のことを単射だといいます.例として
$f(x)=\tan(x)$
$f(x)=ax+b$
等がありますね!
自然数については5の後者は6だけど5以外では後者が6になるような数は存在しない.ということを説明しているわけです.
つまり
- 始まりが存在して
- すべてに次が存在して
- 次が始まりとなるものはなく
- すべての次は被らず
- 数学的帰納法が適用される
ならば,それは自然数だといえるわけです.
いくつか例を見てみましょう.
unsigned intは自然数?
C言語いうunsigned int型の数は自然数なのでしょうか?
まず始まり0が存在します.
ここまではいいです.
すべてに次が存在して,...
ここに引っかかります.unsined int型には終わりがあるからです!!
65535の次は存在しません!!!よってunsined int型は自然数ではありません.(実はそれ以外は適応されています.引っかかってるのは有限であるというところだけですね)
この方法によるとdouble型が実はint型と同じ性質の数であることが分かります.
二進数は自然数!?
ペアノシステムで見ていきましょう.
まず.始まり$(0\cdots0)_2$が存在します.(p-1)
次にすべてに次が存在することを示してみます.(p-2)
ここで$inc()$を次のように定義します.
- $inc()$は一の桁の0を1に変換する関数である.$\tag{a}$
- ただし,すでに1である場合0に変換し次の桁に対して(a)と同様の操作を行う.ただし,1である場合(b)と同様の操作を行う$\tag{b}$
要は二進数の1を足す操作を機械的に計算する方法を述べただけです.これですべての二進数に対して次を定義することができました.
そして,後者が$0\cdots0$となる数を考えてみます.(p-3)
そのようなものがあると仮定して矛盾を導きましょう.
$0\cdots0$はすべてが0なので(a)をすることはできません.
残るは(b)ですが一の桁が1であったとしても(a)より二の桁が1になります.この操作を$n$回繰り返して$n$の桁が1であったとしても$n+1$の桁が1になります.よって矛盾.よって,そのような後者は存在しません.
次にこれが単射であることを示します.(p-4)
単射の定義は次のようなものでした.
$$(\forall a_1,a_2 \in A)[a_1 \neq a_2 \Rightarrow f(a_1) \neq f(a_2)]$$
まず,$a_1,a_2$をビット列で表します.
a_1 = b_n \cdots b_2 b_1 \\
a_2 = b_n' \cdots b_2' b_1'
仮定より,任意の$a_1,a_2$に対して$a_1 \neq a_2$なので
$b_j \neq b_j'$となる$j$が一つ以上存在します.そのような
$j$で最小のものについて考える.
$inc$の定義より$\bar{b_j} \neq \bar{b_j'}$.
よって,$inc(a_1) \neq inc(a_2)$なので単射であることが分かりました!
(p-5)に関しては明らか(そうでないなら少し難しい)ので省きます.よって,二進数も立派な自然数でした!!
(p-1)~(p-5)まですべて満たすならば実はすべて自然数でそれらはすべて同値であると考えてよいでしょう!
ノイマンによる定義
次にノイマンによる定義を見てみましょう.
- $0:=\{ \}$
- $1:=inc(0)= \{ 0 \} = \{ \{ \} \}$
- $2:=inc(1)=\{ 0,1 \} = \{ \{ \} , \{ \{ \} \} \}$
すなわち,空集合が存在し,(最初の数)次の数は今までの集合をすべて要素に持つ集合であるということです.
空集合が存在することはZFC公理系で保障されてますし,
次の数が存在することもペアノの公理で保障されています.
例として3を見てみましょう!
$3:=inc(2) = \{0,1,2 \} = \{ \{ \} , \{ \{ \} \} , \{ \{ \} , \{ \{ \} \} \} \}$
複雑ですね・・・(笑)
要は今まで出てきた集合を要素とする新しい集合が新しい数であるということです.
では,ノイマンの定義はペアノシステムと何が違うのでしょう.
ペアノシステムでノイマンの定義の裏付けを行ってみましょう.
まず,空集合を最初の自然数として定義しています.(p-1)
次に$inc$に関しては上記のとおりであり存在性は明らかでしょう.(p-2)
次に(p-3)を示します.
$inc(a)=0$なる$a$は存在しない,でしたね.
ノイマンの定義で$inc()$は今までの集合を要素とする集合をつくる関数でした.もし,前者が存在するなら0は一つ以上の要素をもつ集合であるはずです.
しかしながら,空集合は何も要素を持たない数なのでこれは矛盾.よって,そのような,$a$は存在しません.
次は(p-4)ですね.inc()が単射であることを示します.
単射の定義を少し見やすくしてみましょう.
$$(\forall a_1,a_2 \in A)[a_1 \neq a_2 \Rightarrow f(a_1) \neq f(a_2)]$$
でしたが,この対偶をとって,
$$(\forall a_1,a_2 \in A)[f(a_1) = f(a_2) \Rightarrow a_1 = a_2]$$
これから,$(\forall a_1,a_2 \in A)[inc(a_1) = inc(a_2)$を仮定とします.
さて,集合の等式について次のような定理があります.
$$集合A,Bについて,A=B \Leftrightarrow A \subseteq B かつ A \supseteq B $$
なので,仮定より,$inc(a_1) \subseteq inc(a_2) かつ inc(a_1) \supseteq inc(a_2)$.
$inc(a_1) \subseteq inc(a_2)$について,ノイマンの定義では$inc()$は今までの集合を要素とする集合でした.仮定から$inc(a_2)$は$inc(a_1)$にとって,今までの集合となるのでしょう.そのひとつ前の集合についても同様です.このことから
$a_1 \subseteq a_2$が示せました.
$a_1 \supseteq a_2$も同様に示すことができます.
このことから,$a_1=a_2$であることが示せました!!
(p-5)は,省略します!
よって,ペアノシステムから見てもノイマンの定義は正しいことが分かりました!!
いかがでしたでしょうか.高校レベルの知識で自然数が何たるか分かったでしょうか?
とりあえず,ここまでとして整数と有理数の作り方について話したいと思います.
整数の作り方は結構知らない人も多いと思います.僕もマイナス付ければいいだけじゃん!と思ってました(笑)
間違ってるところ等あればご指摘お願いします.