
HTM講座第15回「ZFCで数を作ってみる(前編)」
前回、ZFCの公理の一部を使って、数学的な「関係」そして「関数」を作ってみました。
今回は数そのものを作ってみます。
ZFCでは、すべての対象(数・関数・空間など)は「集合」として扱います。
したがって、数もすべて集合の形で定義することができます。
ZFCの枠内で自然数や実数を「集合だけ」で定義する方法は、現代数学の「形式的基礎付け」の代表例です。
では、まずどこから手を付ければいいでしょうか?
数の世界のもっとも基本的な要素は「自然数」です。
フォン・ノイマンの定義を利用して、数を作ってみます。
◆ Step 1:自然数 ℕ の構成
0 := ∅
1 := {0} = {∅}
2 := {0,1} = {∅, {∅}}
3 := {0,1,2} = {∅, {∅}, {∅, {∅}}}
一般に:n := {0, 1, ..., n−1}
このように、「集合」を使って、自然数(ℕ := {0,1,2,...} )を作ることができました(各自然数 n は「それ未満の自然数の集合」として定義されます)。
そして、ℕ := {0,1,2,...} の存在は、ZFCの「無限公理」により、存在が保証されます。
◆Step 2:順序対と写像の定義(ツール準備)
ZFCには「順序対」や「関数」がプリミティブには存在しません。
そこで、以下のように定義します:
順序対 (a, b) := {{a}, {a, b}}
⇒この定義により、(a, b) ≠ (b, a) が保証されます。
そして、関数 f ⊆ A × B は、順序対の集合として定義できます。
そこからさらに、「各 a ∈ A に対して、ただ1つの b ∈ B が対応するような集合」を作ることも可能です。
これで「数の対」や「数列」が定義可能になりましたので、次のステップに移ります。
◆ Step 3:整数 ℤ の構成
次は「整数」です。自然数がすでにあるので、これにひと手間加えて「整数」を作ります。
【1】ℕ × ℕ:自然数の順序対の集合を用意する
ℕ × ℕ は、「自然数の組 (a, b)」全体の集合です。これは a − b のような「差」を表すための材料として使えます。
例:
(3, 0) は「+3」
(0, 2) は「−2」
(4, 4) は「0」
➡ まだこの段階では、(2,1) ≠ (3,2) で別物という扱いです(でも数字の間の差は同じなので、区別したくない=同じ「関係」としてすっきりまとめたい)。
【2】同値関係の定義
そこで、ℕ × ℕ の元 (a, b), (c, d) に対して、次のような関係を定義します:
(𝑎,𝑏)∼(𝑐,𝑑)⟺𝑎+𝑑=𝑏+𝑐
「∼」は、「同値関係」を表します。大雑把に説明すると、「同じグループに属するものとして同一に扱う」という意味です。
(正確には、反射律、対称律、推移律を満たす二項関係を同値関係と呼びます。今回の主テーマは数の作り方なので、同値関係の詳しい解説は省きます)
上の定義により、「a − b = c − d」となるような関係を作ることができました。
(両辺に −b − d をすると、 a − b = c − d)
【2】ℕ × ℕ /~:同値関係で割って「同値類」を作る
同値関係によってグルーピングされた「同値類」を作ります。
「/~ 」は「同値関係(∼)で割る」という意味で、これにより、a−bと同じ差をもつペアの集まりを、1つの整数とみなし、まとめます。
例:
1 := [(1, 0)]=[(2,1)] = [(3,2)] = [(4,3)] = … (「+1」を表す同値類をまとめて「1」とする)
0:=[(0,0)] = [(1,1)] = [(2,2)] = … (「0」を表す同値類をまとめて「0」とする)
ー2:=[(0,2)] = [(1,3)] = [(2,4)] = … (「−2」を表す同値類をまとめて「ー2」とする」
これにより、
ℤ := ℕ × ℕ / ~
と整数(ℤ)を作り出すことができました。
・・・と、いうふうに、自然数( ℕ )→(順序対・写像)→整数(ℤ)
という手順で、数を手作りする体験をしていただきました。
ここまできたら、残りの有理数(ℚ)、実数(ℝ)まで行きたいですね。
次回は、この続きの手順をレクチャーします。