数学(2022/6/11):キューネン本2冊についての記事_8.ZFC集合論の公理のリスト_6(中間生成物:形式言語)
(2022/6/15 19:00頃)配置移動にかかる新規作成
(2022/6/18 17:30頃)順序数の和に関する記述一式追加
(2022/6/19 6:30頃)始順序数に関する記述一式追加
1.ZFC集合論の公理のリストから中間生成物を構成する(再開)
1_1(成果物の下準備1).記号論理学の世界
さて、今までずっとZFC集合論の話をしてきましたが、今回はある種の論理学の話をします。いわば「記号論理学の世界」についてです。
あるテクニックにより、はじまりの素朴な論理学を、集合論の世界で事実上模倣できる、「形式化」できるようになります。
これによって、元々の論理学の諸性質について、研究が容易になります。
たとえば、かなり初めに見た「集合論用の論理学の世界」の最大の特徴は、「所属」という述語の変数を使う、ということでした。
「一階述語論理で所属という述語の変数を追加する」という事柄について、集合論の世界での翻訳を使うと、「通常の一階述語論理の『変数等』」と『所属』の和集合をとる、という路線になりそうです。
この話を精緻に行い、集合論用の論理学の世界における論理式を作りたい、というのが今回の目標となります。
(演繹を集合論用の論理学の世界に翻訳した『形式的演繹』については、また後の話にします。)
***
なぜこのようなことをするのか?
それは、『順序数としての自然数全体の集合』から『基数としての自然数全体の集合』を作るためです。
そして、実はこのために、形式言語のみならず、いくつかバラバラの下ごしらえの記事を書かねばなりません。
形式言語
基礎公理
選択公理
集合一般における基数
有限基数より大きい基数
基数としての自然数全体の集合
今のところ、このような流れを考えています。
バラバラな1, 2, 3の下ごしらえをしてから、その総決算としての4の話をして、5を介して6まで到達する、というイメージです。
ということで、長い旅路になりますが、やっていきましょう。
1_1_1(成果物の下準備1_1).記号
1_1_1_0.『記号論理学の世界』は全て自然数から構築される
素朴に言えば、論理学とは
「正しいことを言っている文から、正しい話の展開で、正しいことを言っている文を導き出したい」
というジャンルなのでした。(実際にそういう使われ方をしていますね。)
今ではこれは数学と密接な関係があるため、数学の一分野として扱われていることが多いのです。
近年の論理学の進歩の過程で、論理学は『記号』で扱うものになりました。その結果、論理学はたいへん整理されたので、数学の歴史的にはこれは大きな意義のある話です。
しかし、
「それでは、素晴らしいが、よく考えてみれば正体不明の、この怪しげな『記号』とは、いったい何者だ」
という話が当然出てきます。
1_1_1_1(成果物の下準備1).ゲーデル数
数学者ゲーデルは、ある突飛なテクニックを編み出しました。
***
素朴な論理学は、『変数等』と、『論理式』と、『演繹』でできているものです。
妙なことを言いますが、これらはある意味有限のものです。
演繹とは、
「前提となる論理式の集合を、推論規則に従って適正に変形させたら、結論となる論理式に到達する」
というプロセスです。
結論となる論理式で終わるものなので、ある意味有限の論理式でできているものです。
また、論理式の方も、適正に変形するためには、変形可能でなければなりません。
そのために満たすべき条件一つが「果てしなくは書いていない」ということです。
終わりがない変数等の組み合わせに変形が許されているだろうか?
「ちゃんと最後まで」検証できないのに?
そう言われたら返す言葉もありませんね。
実際には、論理式はある意味有限の変数等でできているものです。
(厳格な)構成主義的数学で扱うのですから、ここで出てくるこれらは、実質的にはある意味有限なものであってほしいのは、まあもっともです。そして実際にそうなっています。
(無限であっても使えるように、素朴でないように拡張できますが、そこの話はかなり後でやることになります)
***
さて。
『自然数』は「順番を数えられる、最も原始的な数」、『順序数』の一種でした。
そして、後日の記事で説明しますが、自然数は(ある種の)有限を定義するのに用いられます。
なので、有限を扱える自然数と、有限な記号を、完全に対応づければ便利なのではないか。
そして、これが実際に可能だったのです。結果的にはこれらは有限の数学的対象同士であり、うまく馴染んだのですね。
そこでゲーデルは「自然数と記号を同一視してしまおう」という思い切った手法を取ります。
この記事では、「記号につけられた番号であり、記号と同一視された、順序数としての自然数」のことを、『ゲーデル数』と呼びます。
(人によってはゲーデル数について
「素数でなければだめ」
「であるからして、ある種の演算ができているべきであり、その場合は単なる順序数ではだめ」
という方もいらっしゃるかもしれません。
が、「この記事では」そこの条件は特に設けないものとします。)
1_1_1_2(成果物の下準備にして中間成果物2).記号
より正確には、記号はこうやって定義されます。
順序数としての自然数のうち、順序数としての0でないものを考えます。
高校までは「1以上の自然数」という考えはおなじみのものでした。「自然数と言えば1以上である」とふつうは思われているはずです。
ある種の流派では、高校までの自然数を、『正の整数』と呼びます。
この呼称にはメリットがあり、「正(プラス)」と言っている以上、0や負(マイナス)でないことが保証される、ということです。
(整数全体の集合、ひいては整数そのものの性質については説明しません。この記事では使う状況がありません。)
また、ここでは特に『順序数としての正の整数』について論じているので、この『順序数としての正の整数』は『後続順序数』と同じものを指している訳です。
(「順序数としての正の整数」について考える時に、わざわざ「順序数としての自然数全体の集合」と「順序数としての0」の「差集合」の「要素」などと考えなくても、「後続順序数全体の集合」の「要素」で足りるので、そう考えて下さい。)
ゲーデル数のうち、順序数としての正の整数に限るものを、記号と呼びます。
***
どういうことか。
なんと、よく考えると得体のしれない『記号』を、『順序数としての自然数』の素朴な利用法である『ゲーデル数』と同一視してよい。ということです。
だから『記号論理学』は『順序数としての自然数』から(正確には『順序数としての正の整数』から)構成できます。
***
驚いた話です。
まず、これは常識に反します。
しかし、そこは実はまあいいのです。
常識に反するが、その方が実態についての説明がより適切である。ということは、学問ではたくさんあります。
学問はふつう、「実態についての説明がより適切である」ことにこそ意味があります。
そうでなければどんなに常識的であっても、正しさのうまみは薄い。
実態をうまく説明できないんだから、しばしば実用的でもない。
「常識に整合的かどうか」など、「実態の説明にならない」「実用的でない」デメリットに比べたら、ふつうはただひたすらどうでもいいことです。
それで実態を説明できないし、証拠も出せないなら、じゃあ説明としてはどうしようもない。
***
さて、そこまで言う以上、この記号の定義が、実際に問題なく運用できることを見なければなりません。
(その際、なぜ0を除くかの説明もします。0を使うと話が通らなくなるところがあるのです。)
1_1_1_3(成果物の下準備にして中間成果物3).アルファベット
「記号論理学の世界」では、記号の集合「を」アルファベットと言います。
これの定義も簡単です。
後続順序数全体の集合は順序数としての正の整数全体の集合なのでした。
この正の整数を全部記号とみなすと、この順序数としての正の整数全体の集合が、すなわちアルファベットです。
***
論理学に詳しい方は、どこかで
「変数全体の記号は可算無限個ある」
という説明を受けたかもしれません。
今の段階では可算無限個、すなわち "aleph-0" の定義がなされていないのですが、
「順序数としての正の整数全体の集合と完全な対応がある」
ということで、
「変数全体の記号は可算無限個ある」
というのと、実用上同じ効果のある説明になります。
1_1_1_4(成果物の下準備にして中間成果物4).文字
アルファベットの要素であることを明言した記号を、文字と言います。
一般的には記号と文字は同一視されますが、特定の限定的なアルファベットのみ扱う場合、その狭い要素であることを言いたいときは、『文字』と呼ぶことになるでしょう。
1_1_2_1(成果物の下準備A_1).添字の集合および添字づけられた列
すぐ後で使うので、別の話をします。
数学をやっていると、時々、変数の右下に、なんらかの自然数の連番が振ってあることがあります。(「x0, x1, x2, ... , xn」という書き方のものです)これは、キューネン集合論では『添字づけられた列』と呼ばれるものです。
『添字づけられた列』の基本的な考え方は、『(広義の)函数』を使えば、基本的にはごく簡単です。
『(広義の)函数』は『(集合論的な)関係』の一種なので、要素である『順序対』のそれぞれの『集合』、『始域』と『終域』があります。
***
そして、(広義の)函数を使う時に、何らかの理由で変数に添字を使いたい場合、この『(広義の)函数』の『始域』を、特別に『添字の集合』と呼ぶことがあります。
(例えば、上で言う 0, 1, 2, ..., n がそうです。
これは後述のように自然数を用いることが多いですが、自然数でなくても構いません。
究極的には何らかの集まりの『要素』くらいに弱めても話は通ります。)
同様に、『(広義の)函数』そのものを、特別に『添字づけられた列』と呼ぶことがあります。
要するに、数学で言う『列』とは、しばしば『(広義の)函数』の言い換えです。
1_1_2_2(成果物の下準備にして中間成果物A_2).文字列または記号列
プログラマの方はよく、あるレベルにおけるデータの形式、型として、文字列という種類を扱うはずです。
とりあえず、 ( 'プ', 'ロ', 'グ', 'ラ', 'マ' ) という文字列を、作ってみたくなります。
さて、文字は記号であり、変数等と対応しているのでした。
変数に何らかの添字を使い、添字の集合や添字づけられた列を作れば、なんか文字列ができるのではないか。
実際には、順序数を始域とする、つまりは添字の集合として順序数の何らかの集合をとる、添字づけられた列、順序数列を考えます。
個々の順序数と文字を対応させると、例えば順序数列 (0, 1, 2, 3, 4) と 文字列 (x0, x1, x2, x3, x4) = ( 'プ', 'ロ', 'グ', 'ラ', 'マ' ) を対応づけることができます。
つまり、順序数列と文字を対応させると、文字列が作れます。
プログラマの方は、「文字列、そうなってるのか」と驚くかもしれません。私も元々はプログラマだった(今は別の職に就いている)身なので、これを呑み込んだ時は、率直に「へえ。びっくりした」となりました。
***
なお、先ほど記号を定義する際に、0を除くことにしたのは、文字と文字列の区別のためです。
0を、つまり空集合を記号、ひいては文字として使うと、空文字 '' になります。
空集合を文字列として使うと、空文字列 () になります。
「0が出てきた。どっちだ? 空文字か? 空文字列か?」
という混乱があると困る訳です。
(おそらく空文字や空文字列をちゃんと扱う方法があるはずですが、ここでは「空文字や空文字列は扱わない」という前提で話を進めます。)
***
ちなみに、この文字列が要請しているのは順序数であり、自然数ではありません。
例えば無限に続く文字列を考えることもできます。
だから文字列全体の集合は無限です。
ただ、それはふつうのやり方では変形も連結もできないので、実用性を欠きます。
後で論じる『連結』の操作のことを考えるならば、連結するための「個々の」文字列を扱う場合、実際には順序数としては自然数を使います。
そうなると、個々の「連結される文字列」の定義には、自然数によって添字づけられた列、『有限列』が必要になります。
その話をしますが、その前に少し寄り道をします。
1_1_3(成果物の下準備B_1).函数集合
始域と終域が分かっている(広義の)函数を、全て集めた『集合』を、キューネン基礎論では『函数空間』、キューネン集合論では『函数集合』と呼びます。
(『空間』と呼ぶと、何らかの幾何学的な話が出てくるように思われますが、しばしば数学では幾何学と関係ないレベルの集合についても『空間』という語を使います。
例えば、数学や物理学でしばしば出てくる『ベクトル空間』は、それそのものは幾何学的なニュアンスを別に持ちません。
ある種の教科書ではイメージしやすいように幾何ベクトルで表現しているのですが、幾何ベクトルは幾何学的なものであっても、ベクトルそのものは幾何学とは関係ありません。)
始域が順序数の何らかの集合であった場合、始域が順序数の函数空間を考えることができます。
ちなみに始域が順序数としての自然数であった場合、『n次元函数空間』というものができます。nには順序数としての自然数が入ります。
また、ある順序数未満の順序数の函数空間全ての和集合をとり、それらの要素である全ての函数を、単一の和集合の要素になるようにします。これを『n未満次元函数空間の総和』と仮に呼ぶことにします。
似たような話ですが、2の8乗は256ですが、2の7乗までの総和は255になります。これがn次元函数空間と、n未満次元函数空間の総和の違いです。
1_1_4(成果物の下準備B_2).有限列
さて、順序数列の話の続きをします。
(広義の)函数で、定義域を『順序数としての自然数』、値域を『集合』としたものを考えます。
これすなわち、『添字集合』に『順序数としての自然数』を使用した『添字づけられた列』ということになります。
この、
「添字集合に順序数としての自然数を使用した、つまりは順序数としての自然数で添字づけられた列」
を、『有限列』と呼びます。
順序数としての自然数を n 、集まりを A とした場合、上記の通り『n次元函数集合』を構成すると、この『n次元函数集合』は A^n と表すことができます。
そして、n次元函数集合 A^n の要素である(広義の)函数は、実は A の要素の長さ n の『有限列』とみなせます。
丁寧に追えば分かりますが、上の段落と下の段落で出てくる『(広義の)函数』は同じものです。
素材は同じで、経路が違うだけです。
***
とはいえ、どうにも意外に聞こえます。本当にそうなるのか? なぜそうなるのか?
具体例を出しましょう。
例えば我々がよく考える、立体や球体のある舞台、3次元ユークリッド空間を考えようと思います。
思い出して戴きたいのですが、ここで、3次元ユークリッド空間の点を指定する座標は、たとえば (x, y, z) などと表すことになっているのでした。
3つの独立の座標を (x, y, z) と表すのは、慣習的な理由に過ぎず、これを (v0, v1, v2) と書くことも可能です。
すると、(v0, v1, v2) は、何の先入観もなく見ると、正に定義域を『順序数としての自然数3』、値域を『座標の集まり』とした(広義の)函数、「座標の長さ3の有限列」に他ならない訳です。
ちなみにこれが(広義の)函数であることもすぐに分かります。
この「座標の長さ3の有限列」の要素は v0, v1, v2 なのですが、これらの要素に確定した値を入れたら、3次元ユークリッド空間における点の位置も確定するのでした。
片方の要素を確定させたら、もう片方の要素も確定する。
これは(ある種の)函数の振る舞いそのものです。
そもそも、座標とはそういう使われ方をするものですから、当たり前と言えば当たり前ですが、意外なつながりであることには変わりありません。
「3次元ユークリッド空間で点の座標を確定するための表記」は、実は「座標の長さ3の有限列」であり、そういう(広義の)函数だったのです。
私が生徒の頃は、そんな発想で考えたことがなかったので、数十年ぶりに今更ながら驚いていました。
1_1_5_1(成果物の下準備B_3_1).非交和
“MECE“という概念があります。
「互いに重複せず、全体として漏れがない。つまりは、漏れなく、ダブりなく」(Mutually Exclusive and Collectively Exhaustive)というものです。
ひょっとしたらある種のソフトウェア開発でシステムエンジニア等をされている方や、ある種のフレームワークを多用するビジネスパーソンは、いわゆる全体部分関係の絡みでよくご存知かもしれません。
何か製品の設計をする際に、漏れがあると、何らかの機能を欠く欠陥製品になります。ここは当たり前ですね。
また、ダブりがあると、何か不具合があったときに二箇所以上直さねばならなくなり、無駄な手間が発生します。しばしば、改修するメーカーの費用は、万円や十万円単位では済まないこともあります。こうなると、そんな金を出費しないように、あらかじめ整えておきたくなる訳です。
こうして“MECE“を徹底して区分けされた全体像は、極めて見やすく、また場合分けも完璧な、有難味のある図になります。
***
今から行う『非交和』の説明は、“MECE“についての、数学的な見地での説明、と考えて下さい。
だから、非交和は、とても大事な概念です。
***
さて、非交和とは要は、集まり同士の和集合か、これを一般化した集合族の要素である全体の集合の和集合の、バリエーションです。
さらに、これは直感的に分かりやすい「きれいな」タイプです。恐るるに足りません。
お菓子の包みを数個大入り袋に入れておいて、中の包みを全部解いて取り除いてお菓子だけにする。ということを考えて下さい。
元々のお菓子の包みを「集まり」とすれば、このようにした大入り袋が「集合族の要素である全体の集合の和集合」ということになります。
ところで、この操作で、あることがしたい、というニーズがあります。それは何か。
お菓子が色とりどりのチョコだったり、飴だったり、クッキーだったり、スポンジケーキだったり、和菓子だったりします。
こうなると、「中身、すなわち要素の全種類が知りたい」というニーズが有り得ます。
このとき、「個々のもの」の違いは無視して、「ある同じもの」として扱うことで、種類を扱っているのと同じことになります。
もちろん、たまたま全ての要素において、それぞれ同じものが全くなかった場合、「集合族の要素である全体の集合の和集合」はそのまま「集合族の要素である全体の集合の全種類」と一致します。直感的に分かりやすいですね。
逆に言うと、要素に同じものがあった場合、和集合と全種類は一致しません。
(もし濃度を取ったら、もちろん個々のものを無視しない和集合の方が、個々のものを全部1つのものとして潰した全種類と比べて、より大きいことになります。)
数学的にはどうすれば一致していることになるか。
集合族の要素である全体の集合で、共通部分を取ったとき、空集合であればよいのです。
なぜか?
要素で同じものがあるなら、この共通部分にその要素が入ります。
この共通部分が空集合である場合、要素で同じものは存在しません。
そして、先ほども述べたように、要素で同じものがないとき、和集合と全種類が一致するのです。
この、「集合族の要素である全体の集合の全種類と等しい、集合族の要素である全体の集合の全和集合」のことを、『非交和』と呼びます。
1_1_5_2(成果物の下準備B_3_2).連結される文字列
さて、ここからが本題です。
文字列は連結できていたいので、たとえば ( 'カ', 'レ', 'ー' ) という文字列と ( 'う', 'ど', 'ん' ) という文字列を連結して ( 'カ', 'レ', 'ー', 'う', 'ど', 'ん' ) という文字列を作れていたいわけです。
これができれば、ぼんやりとイメージされる記号論理学の世界に期待される機能は、ある意味で果たされていると言えます。
先ほどのn未満次元函数空間の総和を使います。
ある集合と、それに対応するn未満次元函数空間の総和が、共通部分を持たないものとします。
(つまり、集合とその何らかの函数空間に、ふつうは共通部分があったりなかったりしますが、今回はない、つまり両者が別物であるような集合を想定します。)
つまり、ある集合と、そのn未満次元函数空間の総和で、非交和が作れます。
これの要素たちを考えてみます。(とはいえ、ある集合の要素と、n未満次元函数空間の総和の要素は、分けて考えます。)
***
ここから、実際に『連結される文字列』として使う、別の数学的対象を考えます。
ある集合の要素に対応する『連結される文字列』は、ある集合の要素そのものです。
これが後述の個々の変数等の記号、つまり文字に対応します。
n未満次元函数空間の総和の要素に対応する『連結される文字列』は、n未満次元函数空間の総和の要素の長さ1の有限列です。
これは、変数等の記号の文字列に対応します。
一見これは単元集合なのですが、連結のためには、これは長さ1の有限列として扱えるようにしたいのです。
変数等の記号だけでなく、変数等の記号の文字列も、連結される文字列として扱えるようでないと、たとえば後で変数等の記号と記号で表された論理式の連結や、記号で表された論理式同士の連結ができなくなります。これではもちろん困ります。
論理式レベルではできていることなので、記号で表された論理式レベルでももちろんできていなければなりません。
ちなみに、最初に言った通りにすると、文字列そのものは順序数列なので、対応するのは順序数で、自然数とは限らないのです。
が、連結を考える場合は、それぞれの文字列は、問題なく操作できるような有限のものであるはずです。
対応する変数等なり、変数等の組み合わせなり(例えば論理式なり)は、有限であるはずなので、対応する記号たちの方が有限でないとしたらおかしいのですね。
有限の順序数とは自然数のことなので、個々の『連結される文字列』そのものは文字か、文字の有限列である文字列かのいずれかとなります。
こうして、『連結される文字列』ができます。
1_1_6(成果物の下準備C).文字列の連結
1_1_6_1(成果物の下準備C_1).制限
個々の「連結される文字列」について行われる、「文字列の連結」という操作の方の話をします。
そのためには函数の制限について論じなければなりません。
関係は実際には順序対の集合であり、「片方の要素の集合」、『定義域』と、「もう片方の要素の集合」、『値域』があるのでした。
さて、定義域のうち、元々の定義域の部分集合のみを扱うことにすると、関係もそれに連動して、部分的なものしか残らなくなります。
関係において定義域の部分集合のみを扱い、それによって残る部分的な関係のみを扱う操作を、『制限』と呼びます。
1_1_6_2(成果物の下準備C_2).制限函数
こうした制限を(広義の)函数に適用すると、始域の部分集合のみを扱い、それによって残る部分的な(広義の)函数のみを扱うことになります。
この制限された(広義の)函数を、『制限函数』と呼びます。
1_1_6_3(成果物の下準備C_3).有限列の連結
制限関数にはある応用があります。
有限列のことを思い出してみましょう。(0, 1, 2) と (3, 4, 5) の連結を行い、(0, 1, 2, 3, 4, 5) が作れそうに思えます。
できるのですが、実はこれをやるために(正確には順序数列の連結のために)、制限函数を使うのです。
(使い方については詳しくは説明しません。)
また、有限列の連結のために(正確には順序数列の連結のために)、他にも順序数の和というものを使います。
(これも使い方については詳しくは説明しませんが、順序数の和の構成だけは以下の通り明記します。)
1_1_6_3_0(成果物の下準備C_3_0).順序数の和
1_1_6_3_0_a(成果物の下準備C_3_0_a).演算
いわゆる足し算や掛け算や累乗を一般化した、何らかの演算を考えます。
順序数の和もそれに基づいて構成されるので、大事な話です。
***
さて、ここでいう演算とは何か。
これからやや妙な話をします。
演算とは、いわば、あるものと別のあるものの組み合わせから、さらに別のあるものが出力されるプロセスです。
単位を考えない場合、「あるもの」の範囲と「別のあるもの」の範囲と「さらに別のあるもの」の範囲は、実は同じです。
例えば、小学校算数では「数と数を演算して数を求めたい」という話が初手からしばらく続きます。
つまり?
「今までの話で言うと、始域を集合 A と集合 A の直積と見立て、終域をやはり集合 A と見立てた(広義の)函数を考えたら、これが演算になるのではないか?」
そういうことなのです。
演算を最も単純化すると、この特殊な(広義の)函数が抽出されるのです。
***
この演算と呼びうる特殊な(広義の)函数そのものの、もう少し具体的なものが、加法、特に順序数の加法です。
(加法とは広義の足し算のことです。)
この像に当たる順序数を順序数の和と呼ぶ訳です。
(和とは足された値のことです。)
1_1_6_3_0_b(成果物の下準備C_3_0_b).辞書式積
それでは、いくつかの下準備をします。まずは辞書式積の話です。
2種類の集合 S と T の直積 S × T を考えます。
その要素は順序対ですので、例えば <s, t> とか <s', t'> とか書けます。
また、ある2種類の関係(同じでもよい)R0 と R1 を想定します。
集合としての直積 S × T 上の、関係としての辞書式積について説明します。
すなわち、
「「s と s' の間に関係 R0 が成り立つ」
か、または
「s と s' は同等であり、かつ、t と t' の間に関係 R1 が成り立つ」
かのいずれかを満たしている場合、直積 S × T の要素である順序対 <s, t> と <s', t'> には関係 R2 すなわち辞書式積が成り立っているとみなす」
という考え方です。
例えば、日常生活で出てくるような行列と前順序関係(以上以下超過未満)で考えると、
「右か下には移動できるが、左にも上にも移動できない」
ことにしておくと、これらの点の間に、ある種の大小が言えそうに思えます。
辞書式積はこの感覚をより数学的に厳密に定義したものです。
ちなみに、面白いことに、整列可能集合同士の辞書式積もまた整列可能集合になります。
上の例の軌跡を取ると、いかなる軌跡であっても、これらは常に整列順序を示しています。
(格子を書いてみて、上の条件の通りに左上から右下まで辿っていくと、全部そうなるということで納得がいくと思います。)
1_1_6_3_0_c(成果物の下準備C_3_0_c).極大要素/極小要素、上に有界/下に有界、上界/下界、最大要素/最小要素、上限/下限
また、後で必要になるので、『上限』と、それにまつわる概念についての説明をします。
(以前にも書いた内容の再掲も含みます。)
***
(再掲ここから)
内部構造として何らかの半順序関係を持つ何らかの集合を考えます。
もちろんこれは集合なので、何らかの部分集合が取れますし、これらに所属する要素たちもまた半順序関係を持ちます。
***
半順序関係は分岐していることがしばしばあります。
そして、それらにおいては
「この部分集合の中でこの要素より小さい要素はない」
と言える要素が取れます。
ただし、これはいわばそれぞれのひげ根の先端になりますので、しばしば1つではなくなります。
これらひげ根の先端を『極小元』、またはキューネン本翻訳にならえば『極小要素』と呼びます。
(同様に、
「この部分集合の中でより大きい要素はない」
と言えるものが取れます。
ただし、それぞれの枝の先端になりますので、しばしば1つではなくなります。
これら枝の先端を『極大元』、またはキューネン本翻訳にならえば『極大要素』と呼びます。)
***
また、別の話として、常にその部分集合の要素たち「以上」と言えるような要素たちが存在したりしなかったりします。
それら「以上」と言えるような要素たちが、もし存在した場合、これらのことを『上界』と呼び、またここでいう部分集合は『上に有界』である、と言います。
(逆に、常にその部分集合の要素たち「以下」と言えるような要素たちのことを『下界』と呼び、ここでいう部分集合は『下に有界』である、と言います。)
***
この部分集合の要素であり、しかも「全ての他の要素より小さい」『下界』と言えるものがあった場合、これを『最小元』または『最小要素』と呼びます。
これは実は『極小要素』の条件を満たしており、だから『極小要素』の一種です。
要は、
「ひげ根ではなく、根が一本だけある場合、単一の『極小要素』、『最小要素』が一意的に存在する」
程度のイメージです。
(同様に、この部分集合の要素であり、しかも「全ての他の要素より大きい」『上界』と言えるものがあった場合、これを『最大元』または『最大要素』と呼びます。
これは実は『極大要素』の条件を満たしており、だから『極大要素』の一種です。
要は、
「枝が一本だけある場合、単一の『極大要素』、『最大要素』が一意的に存在する」
程度のイメージです。)
「最大」や「最小」という言葉を我々はしばしば使いますが、この数学的な定義は、言われてみれば非常に適切に見えます。
(再掲ここまで)
***
ひるがえって、上界たちや下界たちの身になって考えると、やはりこれも『最小要素』や『最大要素』があったりなかったりする訳です。
『上界』の『最小要素』があれば『上限』、『下界』の『最大要素』があれば『下限』と呼びます。
(上界の最大要素や下界の最小要素を考慮すべき事態はあまりありません。
それは結局、その半順序関係を持つ集合そのものの最大要素や最小要素の話になります。
そうなると上界や下界の話はどうでもよくなってしまいます。)
「上限」や「下限」という言葉を我々はしばしば使いますが、この数学的な定義は、言われてみれば非常に適切に見えます。
1_1_6_3_0_d_1(成果物の下準備C_3_0_d_1).ハルトークス数
(広義の)函数は、終域が空集合でない限り、函数の逆を取ることができます。つまり、別の集合からある集合への(広義の)函数です。
((広義の)函数の終域が空集合の場合に函数の逆を取ると、空集合からある集合への、函数の逆というものが出てきてしまいます。
空集合からの(広義の)函数等は、(広義の)函数としてふつうの扱い方ができなくなるため(やると頭がこんがらがることになるでしょう。ぜひお試しください)、この記事では一貫して扱うことを避けます。)
***
さて、函数の逆が単射でない場合を考えます。
ラフな言い方をすると、別の集まりはある集まりと比べて、「それ以下の大きさを持つ訳ではない」と言えます。
(ラフな言い方であり、この話をするためには本当は「濃度」や「基数」の定義が要ります。
しかし、ここではまだやる必要がないのと、循環定義のリスクがあるため、やりません。)
また、このとき、別の集まりが何らかの順序数の集合であったとします。
ハルトークス数とは、正にそのような場合における、別の集まりの要素である順序数のことです。
(なお、ハルトークス数は基数の代替としても使えます。それについては後日説明します。)
1_1_6_3_0_d_2(成果物の下準備C_3_0_d_2).ハルトークスのアレフ函数
ある集合からハルトークス数の集合への函数をハルトークスの函数、またはキューネン本ではハルトークスのアレフ函数と呼びます。
つまり、
「終域が何らかの順序数の集合であり、函数の逆が単射でないような、(広義の)函数」
です。
さしあたり、
「ハルトークスのアレフ函数によるある集まりの要素の像が、すなわちハルトークス数である」
というイメージを持っていただければ結構です。
1_1_6_3_0_d_3(成果物の下準備C_3_0_d_3).始順序数
始順序数についての話は、本当はここでする必要があるとは言えないのです。
しかし、順序数の和の例外処理のために、やはりここに書いた方がよいという判断の下で書きます。
***
順序数としての自然数においては、始順序数とはその自然数自身を指します。
***
極限順序数においてはそう簡単ではありません。
極限順序数には、特別なものがあります。
具体的には順序数としての自然数全体の集合、"omega-0" や、かなり後で扱う、順序数としての実数全体の集合、"omega-1" などがそうです。
(実は、順序数としての自然数全体の集合と、順序数としての実数全体の集合は、同じ無限大とはいえ、超過未満関係にあるのです。
重要なトピックですが、これについてはかなり後になって、『無限基数』の時に、一瞬だけ扱います。)
こうした "omega-n" の定義は、以下の通りです。
nが0の場合は、"omega-0" がそれです。
nが後続順序数の場合は、前の "omega-n" に対し、ハルトークスのアレフ函数を使います。つまり、
「終域が何らかの順序数の集合であり、函数の逆が単射でないような、(広義の)函数」
の始域で、"omega-n" を指定すると、像すなわちハルトークス数として "omega-(n+1)" が指定されます。
nが極限順序数の場合は、その極限順序数未満の順序数 m による "omega-m" の上限が、すなわち "omega-n" です。
***
順序数の和において、この極限順序数における始順序数、"omega-n" は、ある変わった挙動をとります。
ということで、いよいよ順序数の和の話をします。見ていきましょう。
1_1_6_3_0_x(成果物の下準備C_3_0_x).順序数の和(再掲)
さあ、いよいよ順序数の和の話に入っていきます。
とはいえ、我々にとってはおなじみの、"1+1=2" などの自然数の和と、あまり違いはありません。
落ち着いて見ていきましょう。
***
この場合、演算で言う集合 A は、順序数のなんらかの集合です。
最低限、順序数と順序数を足したら順序数が出力されてほしいのですね。
それでは、具体的にはどのような順序数が出力されるのか。
***
また妙な話をします。
和集合と順序数の和に、何か関係がありそうに思えます。
しかし、単純に順序数の和集合を取ると、なじみのないものができます。
2 = {0, 1} で、3 = {0, 1, 2} で、5 = {0, 1, 2, 3, 4} なのでした。
さて、2と3の和集合は {0, 0, 1, 1, 2}になってしまいます。
どう見ても5 = {0, 1, 2, 3, 4} と一致するようには見えませんね。
特に、同じ要素が複数あるのは困ります。
順序数はそういう構造ではなかったはずです。
要素は全部異なっていてほしい。
さて困った。
一体何がいけないのか?
***
ここでテクニックが出てきます。
何を使うのかというと、直積と、そして単元集合です。
具体的には、「0 の単元集合」と「1 の単元集合」の2つを使います。
どうするのか?
{0} と 2 = {0, 1} の直積を取ります。
{<0, 0>, <0, 1>} ができます。
{1} と 3 = {0, 1, 2} の直積を取ります。
{<1, 0>, <1, 1>, <1, 2>} ができます。
そしてこれらの和集合を取ると、{<0, 0>, <0, 1>, <1, 0>, <1, 1>, <1, 2>} となります。
ある意味で「ずらす」ことで、同じ要素のない集合が作れるという寸法です。
***
実はこれは、 S の要素が {0} と {1} になっている、辞書式積の一種であることが分かります。
***
また、{<0, 0>, <0, 1>} や、{<1, 0>, <1, 1>, <1, 2>} は、順序数とは言えないのですが、一里塚のある狭義の全順序関係、整列順序における、整列可能集合であることは確かです。
***
さて、整列可能集合と同型である順序数が、一意的に存在するのでした。
整列可能集合の要素が全て異なるなら、これに順番の番号、つまりは順序数が対応づけられるのでした。
この場合、0, 1, 2, 3, 4 という番号を添字集合の要素とみなし、これらをラベルとする。
そして、同じ要素のない集合、<0, 0>, <0, 1>, <1, 0>, <1, 1>, <1, 2> に添数づけられた列を使って割り振ってよい。
という対応をします。
「<0, 0> は 0 とは異なるし、<1, 1> は 3 とも異なるのではないか?」
と言いたくなるかもしれません。
しかし、ここで大事なのは添字集合と添数づけられた列で「ラベルが貼れる」ことです。
ある集合において同じ要素があると、順序数の要素たち(より小さい順序数たち)のような、異なるラベルを貼ることは許されません。完全に対応しないラベルは、当然ながらラベルとしては無意味です。
逆に言えば、「順序数の要素たちをラベルとして使っても問題ない集合」を考えた時に、「整列可能集合」であることが必要になってくるのでした。
「整列可能集合と同型である順序数が、一意的に存在する」ので、これが通るのです。
つまり、5 = {0, 1, 2, 3, 4} と、{<0, 0>, <0, 1>, <1, 0>, <1, 1>, <1, 2>} の完全な対応があるので、"2 + 3 = 5" とやっているのと事実上同じ効果がもたらされます。
***
ということで、今までの話を言い表すと、
「0の単元集合と順序数 α の直積をとる。
1の単元集合と順序数 β の直積をとる。
これらの和集合をとる。
するとこれは、辞書式積における整列順序に従う、整列可能集合である。
整列可能集合と同型である、一意的に存在する順序数がとれる。
この順序数 γ を、α と β の和とみなす」
ということになります。
厳密に言い表すと、面倒なのですが、疑いの余地はなくなります。
***
なお、順序数は、
「0」
「ある通常の順序数とその後続順序数」
「極限順序数」
で、その在り方が微妙に異なるのでした。
よって、順序数の和についても、順序数 α に対して
「α+0の場合」
「α+通常の順序数の場合」
「α+後続順序数の場合」
「α+極限順序数の場合」
で挙動が異ならないか確認するのは大事なことです。
具体的には以下の通りになります。
「α+0の場合」は、順序数の和は α と等しくなります。
これを最も初歩的な「α+通常の順序数の場合」の順序数の和とします。
「α+後続順序数の場合」は、α に対し、その後続順序数と等しい回数、後者函数を反復的に適用したものが、順序数の和となります。
「α+極限順序数の場合」は、「α+後続順序数の場合」の要領で、α とその極限順序数未満の順序数を足したものたちの中で『上限』であるものが、順序数の和です。
これらを合わせて考えると、具体的でかつ申し分のない、順序数の和ができます。
***
ただ、これはやはり自然数の和とは微妙に違うところがあります。
順序数としての自然数全体の集合、"omega-0" から始まる、極限順序数における始順序数、"omega-n" の話をしました。
とりあえず "omega-0" を例に取ると、
"omega-0" + 1 = "omega-0" + 1
です。ここは我々にもなじんだ演算結果です。しかし、
1 + "omega-0" = "omega-0"
なのでした。
非常に奇妙ですが、自然数すなわち有限順序数に、極限順序数における始順序数を足すと、和の値が極限順序数における始順序数と区別できなくなってしまうんですね。
こういうことがあるので、順序数の和においては、2変数の交換律が常に成り立つとは限らない、ということです。
1_1_6_3_x(成果物の下準備C_3_x).有限列の連結(再掲)
先ほども述べましたが、有限列の連結のために(正確には順序数列の連結のために)、順序数の和を使います。
(これも使い方については詳しくは説明しません。)
1_1_6_4(成果物の下準備C_4).文字列の連結(再掲)
有限列の連結が、ただの有限列でなく、連結される文字列に対して行われるものだったとします。
そうなると、ここでなされていることこそが、文字列の連結に他なりません。
こうやって ( 'カ', 'レ', 'ー' ) という文字列と ( 'う', 'ど', 'ん' ) という文字列を連結して ( 'カ', 'レ', 'ー', 'う', 'ど', 'ん' ) という文字列が、問題なく作れるようになるわけです。
1_1_7_1(成果物の下準備D_1).変数等の記号
さて、話をまたゲーデル数に戻します。
今までの話の通り、変数等とゲーデル数を対応づけて、変数等の記号を作れると言うのなら、実際にはどうするのか、と当然訊きたくなるところです。
流派によっては順序対とかを使うのかもしれませんが、キューネン集合論では、変数等に左上鉤括弧と右上鉤括弧を書いて、
「こうした加工した変数等はこのゲーデル数と等しい」
という等式も書いて、この「左上鉤括弧と右上鉤括弧を書いた変数等」を『変数等の記号』とします。
なお、この左上鉤括弧と右上鉤括弧の記法は『クワインの擬似引用』(キューネン本では『クワインのかぎカッコ記法』)と呼びます。論理学者クワインが使ったものです。
変数等の記号には、元々の変数等の種類と同様、多数の記号があり得ます。
1_1_7_2(成果物の下準備D_2).述語記号、函数記号、定数記号
通常の変数等の記号に加えて、『述語記号』と『函数記号』を追加しても良いことになっています。
『述語記号』とは、平たく言うと「述語の記号」のことです。読んで字の通りですね。「~は走る」とかがそうです。
(国語で言うと、主語だけを考えればいい場合は1元述語記号ですし、主語と目的語が要る場合は2元述語記号になります。
なお、必要な変数の個数をアリティと呼びます。
まだ個数(基数)は定義されていないので、本当は記号論理学の時点ではアリティを扱うことができないのです。
が、記号論理学では2元述語記号を例えばxRyのような「関係を表す述語記号」とみなすことで、実際にはアリティを無視して扱えます。
それより高度な3元述語記号等については、アリティは無視できなくなるので、このはるか先の「数理論理学」の世界でなければ扱えなくなります。)
『函数記号』とは、ある変数等の記号を入れて、別の変数等の記号を返せる記号です。函数のような振る舞いですね。「~の靴」とかがそうです。
(これもアリティの問題が関わってきます。処理の仕方も同じです。2元函数記号は例えばP(x,y)や+(x,y)(x+yと同義)のように「(順序数の和等の)演算を扱う函数記号」として使えるので、そうみなせば実際にはアリティを無視して扱えます。
それより高度な3元函数記号等については、アリティは無視できなくなるので、このはるか先の「数理論理学」の世界でなければ扱えなくなります。)
特に、函数記号であるはずだが、引数がない、いわば0元函数記号のことを、『定数記号』と呼びます。
「彼」とかがそうです。「彼の靴」も「彼」もなんらかの名詞を指していますが、「彼」というときに、何らかの別の記号は必要とされていない。ということです。
1_1_7_3(成果物).形式言語
さて、「記号論理学の世界」において、「集合論用の論理学の世界」を翻訳して実現したいのでした。
「集合論用の論理学の世界」の特徴は、述語の変数として所属を特別扱いとして認める、ということでした。
これに限らず、何らかの用途の論理学の世界を考えたい場合、その特徴はふつう、特殊な述語記号または函数記号または定数記号(またはそれら複数、または全部)を認めることで確定します。
だから、その何らかの用途の論理学の世界における、全ての変数等の記号と、全ての特殊な述語記号と函数記号と定数記号文字を網羅する、何らかの数学的対象を、当然考えたくなります。
これを『形式言語』と呼びます。
この後、どういう記号論理学的対象を構成するにせよ、全て『形式言語』に所属するか、包含されるかのいずれかになります。
単純に考えると、変数等の記号や、追加した特殊な述語記号と函数記号と定数記号文字を、全て集めた集合を考えればいいのです。
が、これは言葉なので、文字列の連結ができていてほしいところです。そういう操作の可能な、ある意味で高度な集合が欲しい訳です。
やり方については、文字列の連結のところで書いた通りです。
この条件を満たした場合、この集合こそが『形式言語』です。
これこそが、「記号論理学の世界」の、最初の基盤と言えるでしょう。
1_1_7_4(成果物の発展形A).拡大された形式言語
例えば、述語記号と、一階述語論理の変数等の記号だけでできた最もシンプルな形式言語の和集合をとると、述語記号で拡大された形式言語が作れるのです。
あるいは、函数記号と、一階述語論理の変数等の記号だけでできた最もシンプルな形式言語の和集合をとると、函数記号で拡大された形式言語が作れる訳です。
述語記号で拡大された形式言語はこの後すぐに使いますが、函数記号で拡大された形式言語には、後の記事で、意外な応用があります。
一応
「函数記号で拡大された形式言語というものがあり、後で出てくる」
程度には、頭の片隅にでも置いておいてください。
1_1_8_1(成果物の発展形B).記号で表された論理式
さて、形式言語が作れた今、その形式言語を使って、記号で表される論理式というものを、作れそうに思えます。
『記号』で表される「前の」『論理式』は、
「『変数』等による、後で特定の機能を発揮する、特定の組み合わせ」
であるのでした。
当然、これも『記号』で表せるのです。
実は、『記号で表される論理式』は、『ゲーデル数』の『有限列』です。
文字列の連結の結果、連結された文字列は有限列になるのでした。このため、結果的には正にこういうことになる訳です。
1_1_8_2(成果物の発展形の発展形).記号で表された集合論用の論理学の世界の論理式
また、当然、「集合論用の論理学の世界の論理式」も、『記号』で表せます。
ただし、これは前述の述語記号で拡大された形式言語を使わなければなりません。こんなところで応用があるのです。
そうでないと、
「所属の記号は、通常の一階述語論理の形式言語の中には存在しないので、表現できる記号がない」
という話になってしまいます。
こうしてようやく、集合論用の論理学の世界の論理式が、記号化できます。
2.次回予告
さて、不思議に思うかもしれません。
「こんな手間をかけて、記号化して、何が嬉しいのか?」
2つあります。
***
まずは、形式的演繹を構成できることです。
形式的演繹とは、演繹を記号化したものです。
演繹の果てに記号が作れて、記号の果てに形式的演繹を作れたとしたら、
「記号論理学上でも問題なく動作する演繹を、演繹によって作れた」
という意味になります。
自分で自分と同じ性質の、ちゃんと動作する、より高度な模倣を、作れる。
そのような演繹は、出鱈目でなく、信頼できる。
そしてこの高度な模倣でなされた証明も、やはり正当であろう。
これは絶大な安心をもたらします。
最初の方からずっとあった演繹は、本当に問題なく使えるのです。
「それでは何か、今までは、演繹は、そう言う構成はできても、実は信頼できなかったのか?」
実はそうだったのですね。ホラーです。
ちなみにこの話は本格的にはだいぶ後でします。当面使いません。
***
もう一つは、実は基数としての自然数全体の集合、"aleph-0" の定義に効いてくることです。
それどころか、もっと早く、ZFC集合論の公理の1つ、『基礎公理』のバリエーションの一つ、『万有クラス上の超限再帰』というものにも効いてきます。(ちなみにこちらは函数記号によって拡大された形式言語をも使います。)
どういうことか? それは次の記事で行います。
ということで、次回は『基礎公理』とそのバリエーションの話になります。よろしく。
(続く)