集合とは対象の集まり(という対象)であるという素朴集合論の集合の定義は、対象を集めることによってそれまでになかった集合と言う対象を創り出す。外延的定義であれ、内包的定義であれ、この定義によって、対象の集まりである集合 {a1, a2, a3, ..., an} という対象が出現する。 例えば a1, a2, ... , an という対象があったとする。そのうち a2, a3, を取って A という集合を作ったとする。 A = {a1, a2} このとき、今までには a1, a2, ... , an という対象しかなかったのに、その対象の中に {a2, a3} という対象が新たに仲間入りすることになる。すなわち、対象の世界が a1, a2, ... , an から a1, a2, ... , an, {a2, a3} に変化する。新しい対象の発生は、集合が定義されるたびにおきるので、集合の定義に伴って、対象の世界のメンバーはどんどん増殖していくことになる。 集合の定義が外延的に行われる限り、ラッセルのパラドックスのような不都合は生じない。集合の定義は完全に対象に依存しているからだ。 問題は、集合の定義が内包的に行われる場合だ。述語 P(x) は対象に関数適用することによって真または偽の値をとる関数である。したがって、P(x) が真の値を取る対象のみを集めるとそれは集合を定義するのは当然と思われる。a1, a2, ... , an にそれぞれ P(x) を適用することで、P(a2) と P(a3) のみが真だったとしよう。そこで、外延的に a2 と a3 からなる集合 {x | P(x)} = {a2, a3} を作る。当然対象の世界は a1, a2, ... , an と {a2, a3} という対象から構成されることになる。しかし、ここに問題が発生する。 なぜなら、内包的定義は外延的定義と異なって、集合を定義するのに、対象の世界の全ての対象に述語 P(x) を適用する必要があるからだ。つまり、対象の世界の対象が a1, a2, ..., a3, {a2,a3} であるからには、P({a2, a3}) の値も検討しない限り内包的定義で、集合を定めることができない。 P({a2, a3}) が偽のときは問題はなさそうだこの場合は {x | P(x)} = {a2, a3} が確定する。 問題は P({a2, a3}) が真の時だ。この場合は当然、 {x | P(x)} = {a2, a3, {a2,a3}} と考えなくてはならない。ところで {a2, a3, {a2, a3}} は {a2, a3} とも異なる新しい対象である。したがって対象の世界は a1, a2, ... , an, {a2, a3}, {a2, a3, {a2, a3}} と対象のメンバーが増えることになるそこで、今度は P({a2, a3, {a2, a3}}) についても検討しなくてはならない ... 。 この操作は P(x) が偽になるときに終了するが、ずっと真であるとこの手続きは無限に終了せず、述語 P(x) の内包的定義で定義できる集合は確定できないことになる。 ラッセルの集合の述語 R(x) は「自分自身を要素として含まない集合」である。ここで、自分自身を要素として含まない集合が b1, b2 しかなかったとする。すると、 {x | R(x)} = {b1, b2} = R1 と考えられるが、まだ R(x) が適用されていない対象 R1 = {b1, b2} が存在する。R1 は b1, b2 とは異なっているように見えるので R1 は R1 の要素ではない。この場合 R(R1) は真である。したがって、 {x | R(x)} = {b1, b2, {b1,b2}} としなければならない。上の例と同じような理由でこの操作は無限に終わらないから R(x) による内包的定義では集合を確定することができない。 それでは R1 が R1 の要素である場合は考えられないだろうか。この場合はたとえば b1 = R1 の場合が考えられる。すなわち、 R1 = {R1, b2} である。この場合は R(R1) が偽となるから、集合は確定する。すなわち、 {x | R(x)} = R1 = {R1, b2} である。しかし、この場合は R1 は自分自身を要素として含むため、{x | R(x)} の要素としては不適格になるので {x | R(x)} = {R1, b2} はありえない。すなわち、どの段階でも R1 が自分自身の要素となることはありえない。したがって、{x | R(x)} は自分自身を要素として含まない集合を次々に創り出して取り込んでいくが、永久に集合としては確定できない対象の集まりとなる。 述語に自己言及を許可すると、内包的定義では集合を定義できないことがあることが分かる。これを避けて内包的定義で必ず集合を定義するためには、内包的定義を次のように定義する必要がある。 {x ∈ D | P(x)} これは領域 D の要素について、述語P(x) で集合を定義することができることを示している。この内包的定義で定義できる集合は、領域 D の部分集合のみである。すなわち、領域 D のべき集合 D* を考えるとき、内包的定義で定義できる集合は必ず D* の要素となる。内包的定義が領域 D にも D* にも含まれない新しい集合を定義することはない。これは、公理的集合論の分出公理と同じものであるが、非常に安全な内包的定義だ。また、P(x) についての全ての論理演算の真理集合は D* で完結している。つまり、論理的にも安全な述語を提供することになる。 領域 D とDのべき集合 D* および内包的定義 {x ∈ D | P(x)} は様々な数学的対象に素朴集合論を適用するときの強力な武器となるような気がする。 ところで、内包的定義で述語の自己言及を許すと、上で述べたような無限の再帰が発生してしまう。しかし、このような述語の自己言及は全く捨て去るべきものではなく、プログラムにループや、関数の再帰的定義を導入するための必須の仕組みでもある。述語の自己言及を積極的に活用する方法も考えることができるのではないだろうか。
by tnomura9
| 2019-03-04 19:15
| ラッセルのパラドックス
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||