準備2 公理的集合論を用いる理由

Last-modified: Sat, 13 May 2017 20:06:54 JST (1666d)
Top > 準備2 公理的集合論を用いる理由

Encyclopedia of \( P \)-adic Numbersでは諸概念の定義に公理的集合論を用います。ここでは、何故わざわざ公理的集合論を用いるのかについて説明します。

そもそも、近代数学に現れる概念はほぼ全て「集合」を用いて記述されます。例えば\( 0{} \)\( 1 \)\( 2 \)、……のような自然数はもちろん、有理数も、実数も、ベクトルも、行列も、2次関数\( f(x) = x^2 +3x +1 \)も、指数関数\( e^x \)も、全て「集合」として定義されます。数や関数は何かの集まりではないのでそれらが「集合」として扱われるのは間違っているのではないか、と思うかもしれませんが、それは定義の問題です。数や関数を「集合」でないものとして最初から定義しているのであれば確かにそれらを「集合」として扱うのは間違っていますが、数や関数を最初から「集合」として定式化してしまうこと自体に問題はありません。そしてそのような定式化を可能とするのが、公理的集合論です。

素朴にはイメージのある「数」や「関数」と言った概念を、改めて「集合」として定式化することにはどのような意味があるのでしょうか? まず、素朴なイメージは定義でないことが1つのポイントです。「集合」を用いるにしろ用いないにしろ、厳密にそれらを定義しない限り、それらの性質を数学で議論することが出来ません。例えば自然数や実数の定義を思い浮かべてみて下さい。それらの具体例ならたくさん知っているでしょうが、数学を専門としているのでない限り定義までサラッと言える人は少数派ではないでしょうか? そんな素朴な概念にも厳密な定義を与える方法の1つが、公理的集合論です。

もちろん、公理的集合論以外にも自然数や実数の定義を与える方法はあります。それでは何故、数ある道具の中で、「集合」という概念を用いると良いのでしょうか? これには色々な理由がありますが、次の2つが最も大きな要素だと思います。

(1) 数学的概念を定義するには、その概念を直接定義するより、「その概念の全体のなす集合を定義する」か「その概念の理論体系を定義する」方が比較的に簡単であることが多い。
(2) 既に公理的集合論が数学の基礎付けとして確固たる立場を築いており、公理的集合論の上で記述される他の理論との整合性や関係を述べる上でも新たな数学的概念は公理的集合論の上で記述した方が便利である。

(2)の方は数学行為そのもののメタな側面なのでここでは置いておくことにして、(1)の説明をします。例えば「自然数とは何か」や「実数とは何か」を定義するとしましょう。

それらの数学的概念を直接定義するとは、「\( x \)が自然数であるとは~」とか「\( x \)実数であるとは~」というような定義を与えるということです。しかし、ではそのような定義をする上で\( x \)とは何の全体を動かして良いものでしょうか? \( x \)実数全体を最初から動くと考えると、「\( x \)が自然数であるとは~」のような定義をすることは出来るでしょうが、「\( x \)実数であるとは~」のような文章に意味がなくなっています。前提から\( x \)実数なのですから。

ところで、最初は数と言ったら無条件に「自然数」を指していたのに、分数を習って「正の有理数」も数と呼ぶようになり、更には「実数」という広い数のクラスが導入されるという経験はないでしょうか? そうした後で初めて「自然数とは\( 0{} \)\( 1 \)\( 2 \)、……、のような実数のことで、整数とは~、有理数とは~、無理数とは~」みたいに狭いクラスの用語を定義していくのはまさに、この\( x \)実数全体を動くように約束をするパターンです。数という言葉の意味を無定義に臨機応変に広げていって、数がいつの間にか未定義な「実数」を表す言葉に置き換わり、そうした上で「自然数」を特別な実数として特徴付けるわけです。この方法は「実数」の中での「自然数」を相対的に理解する上では有意義ですが、「実数」の定義がブラックボックスになったままになってしまいます。素朴なイメージを掴む上ではとても良い方法だと思いますが、やはり近代数学的な厳密な議論を行う上ではあまり優れていません。未定義な概念を使っていては、その概念より広いクラスで常に成り立つような弱い命題しか証明が出来ないのです。

では実数より広く、\( x \)は複素数全体を動くと思えばよいでしょうか? それならば確かに「\( x \)実数であるとは~」のような定義が可能になるでしょうが、今度は複素数を定義することが出来ません。通常複素数は実数を使って定義されるものですので、最初から所与の概念にすること自体、少々実用性が薄れてしまうわけです。このような直接定義は多くの場合、今定義したい概念より広い概念が予め定義されていて初めて機能することが多く、例えば実数という概念があることを認めた上で自然数を定義することは出来ますが、無から初めて自然数や実数を厳密に定義することが難しくなってしまいます*1

これに対して、数学的概念を直接定義するのではなく、それらの全体のなす集合を定義するとは、「自然数全体の集合は何か」や「実数全体の集合は何か」を定義するということです。つまり、「\( \mathbb{N} \)\( \mathbb{R} \)という集合を~によって定義する」というように、「集合」という一番広い概念の特別な例として\( \mathbb{N} \)\( \mathbb{R} \)を定義して、それらの要素を自然数や実数と呼ぶようにするということです。そのためにはもちろん、\( \mathbb{N} \)\( \mathbb{R} \)という集合を自然数や実数を用いずに直接定義しないと循環論法になってしまうのですが、それらの直接的な定義は公理的集合論によって難なく行うことが出来ます。その説明をするために、公理的集合論を用いた定義とは別の定義方法である、理論体系を用いた定義について説明します。

数学的概念の理論体系を定義するというのは、その概念が満たす性質を公理として与えるということです。例えば自然数が何かは置いておいて、自然数の四則演算が満たす性質*2を十分多くの具体例*3や現実世界で観測される現象との比較*4で確認して証明の代わりとする、という経験はないでしょうか? それはもちろん証明にはなりません。それでもそれらの性質を認めるというのは、ある意味で公理とみなしていることになるのではないでしょうか*5。実は、自然数の四則演算の性質と数学的帰納法を公理として与えておけば、自然数に関する真なる命題*6は全てそれらの公理から証明することが出来るので、公理を与えさえすれば自然数そのものが何者なのかを定義する必要がないわけです。実際、形式的な論理体系における公理や証明というのは単なる文字列に過ぎず、公理から命題を証明するという行為も「公理である文字列を演繹規則という規則だけを用いて並べていって末尾に命題を記述する」という文字列作成の操作として厳密に定義されるので、公理を満たす集合の実在を問わずして意味を持ち、それが何者であるかをそもそも定義する必要がないのです。

実数も同様に、四則演算が満たす同様の性質に加えて、「実数の連続性」と呼ばれる公理を用いて特徴付けることが出来ます。例えば高校までの数学では中間値の定理等の厳密な証明をしないと思いますが、これは実数の連続性があって初めて成り立つ定理なので、実数の連続性を紹介していない以上そもそも厳密には証明できないわけです。実際、実数の公理から実数の連続性を除くと、例えば有理数全体がその公理を満たしてしまいますが、有理数全体に対しては中間値の定理が成り立たない*7ので、実数の連続性が実際に中間値の定理の証明に必要であることが分かります。つまり高校までの数学では、実数の連続性という公理を導入する代わりに、それから導かれる典型的な定理たちを公理のように導入して、それらを使って実数の理論を展開していることになるのかもしれません*8

公理的集合論で行うことの一部は、そういった理論体系を実現する集合を具体的に定義するという実装行為です。例えば自然数の公理を満たすような集合\( \mathbb{N} \)と演算\( +, \times \)の組を具体的に与えますし、実数の公理を満たすような集合\( \mathbb{R} \)と演算\( +, \times \)*9の組を具体的に与えます。理論体系そのものには公理を満たす対象を集合として実装する必要がありませんが、集合として定義しておくことはもちろん理解の助けになりますし、部分集合のような集合として実装して初めて意味を持つ概念に対する命題を考えることも出来、そして何より他の集合概念との関係も記述しやすくなるのでとても便利になります。




*1 難しいだけで、それが不可能であるとは言っていません。
*2 例えば分配法則&mathjax{x \times (y + z) = (x \times y) + (x \times z)};です。
*3 例えば&mathjax{2 \times (1 + 3) = 2 \times 4 = 8};かつ&mathjax{(2 \times 1) + (2 \times 3) = 2 + 6 = 8};なので分配法則の具体例&mathjax{2 \times (1 + 3) = (2 \times 1) + (2 \times 3)};を得ますが、いくら具体例を集めても分配法則そのものの証明にはなりません。
*4 例えば&mathjax{1 + 1 = 2};について「1個のリンゴがあって、更にもう1個のリンゴを用意すると、合わせて2個のリンゴになる」という説明がありますが、リンゴの個数以外だったらどうなのか、ものすごい年月が経ってリンゴが自発的に崩壊したらその思考実験は正しくなくなるのではないか、といった反論が出来、やはり証明にはなっていません。そもそも数式はあくまで数学世界の中にあり、現実世界の現象は数学世界の命題の証明可能性を保証しないのです。例えば&mathjax{1};g分の素粒子があって更にそこに&mathjax{1};g分の素粒子を用意すると&mathjax{2};g分より少ない素粒子が残ったりします。質量の一部が光エネルギーとして欠損されるからです。
*5 編集者は数学教育に詳しくないため、実際にそう解釈されるのかどうかについては分かりません。
*6 ここでの「真なる」とは恒真性と呼ばれるもので、「自然数の公理を満たす任意の集合と演算の組に対して成立する」という意味だと思って下さい。
*7 例えば有理数を代入して有理数を返す2次関数&mathjax{f(x) = x^2 - 2};は&mathjax{f(1) = -1 < 0 < 2 = f(2)};を満たしますが、&mathjax{1 < x < 2};の範囲に&mathjax{f(x) = 0};を満たす有理数&mathjax{x};は存在しません。
*8 編集者は数学教育に詳しくないため、実際にそう解釈されるのかどうかについては分かりません。
*9 順序&mathjax{\leq};も必要ですが、順序は他の公理と合わせて演算から定義できます。