このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

コンパクト空間と論理/モデル論

[前置き]だいぶ前に(だいたいは)書いてあったものだけど、今が“あげどき(time to upload)”かな、と思うので、長いけど日記エントリにします。[/前置き]

ハウスドルフ空間のコンパクト性は、解析で重要な概念だが、論理や代数幾何でも(解析とはまた違った感じで)コンパクト性は大事。こっち(解析じゃない)方面では、非ハウスドルフなコンパクト空間も出てくる。

ブルバキ流の用語法だと、コンパクト空間といえばハウスドルフであることも含めていて、ある種の有限性を満たすだけの空間は準コンパクト空間と(ブルバキは)呼んでいた。かつては、ハウスドルフじゃないとコンパクト性(有限性条件)にあまり意味がないと考えられていたのかもしれない。が、ハウスドルフじゃないコンパクト空間でも役に立つ例が増えたせいか(よくは知らんけど)ハウスドルフとコンパクトを切り離す傾向だと思う。

ブルバキ 最近の傾向(たぶん)
準コンパクト コンパクト
コンパクト コンパクト・ハウスドルフ

論理/モデル論(logic and/or model theory)でコンパクト空間が登場する例で、僕が面白いと思うのはモデル(の同値類)の空間のコンパクト性だ。これは、ずばり「コンパクト性定理」として知られている内容だが、どんな空間がコンパクトになるのかはなぜか言及されないことが多い。で、コンパクト性定理の成立している位相空間を紹介してみたい。

[追記 date="12-08"]閉集合の和に関する記述を忘れていたので追加。)[/追記]

内容:

モデルの空間

命題とか主張とかを表現するための人工言語を考えて固定する。この人工言語(論理的な言語)において、文に相当する記号列を論理式(formula)と呼ぶ。論理式の真偽を定めるには、解釈の場となるモデル(領域と構造)が必要。解釈の方法も決めたとして、モデルMに対して論理式fが真なら M |= f と書いて、M satisfies f と読む。(トリビア: 縦棒とイコールをくっつけた記号はダブルターンスタイル;double turnstile って呼ぶ。)

当該の論理系(言語+解釈)に対するモデルの全体をModとする。Mがモデルだとは、M∈Mod のこと。Modはとりとめもない集まりで、実際とてつもなく大きな集まりになったりするのだが、次のようにして同値関係を入れれば、十分に小さくなる。

  • M≡N とは、どんなfに対しても、M |= f ⇔ N |= f

ようするに、論理式の真偽値の違いで区別しようとしてもできないなら、同じ(≡)とみなす。この同値関係でModを割った集合Mod/≡をXとする。Mが属する同値類を対応する小文字mで表す(普通は[M]という書き方が多いが)。m, nなどがXのメンバーである。

ここで、m, n などをと考えて、Xは空間だと思いましょう。もともとは、構造を持ったM、さらにMと同値な(区別つかない)構造達をかき集めた対象がmだから、これを“点”とみなすのは心理的に抵抗感があるかもしれないが、集合のメンバーだから、まー“点”だと思ってくださいよ、だまされたと思ってさぁ。ここで、点とか空間とか呼ぶのは、Xに位相を入れる心づもりがあるから。

まだ位相が入ってないけど、Xのことをモデルの空間と呼んでしまおう。モデルの空間は、正確には“モデルの同値類”を点とする空間であり、論理的言語(論理式の集合)と解釈に対して定義されるものだ。

[蛇足] もし、インスティチューション(institution)を知っているなら、指標(signature)Σを1つ固定してモデル圏Mod=ModΣと文集合Sen=SenΣを考えれば、M、N∈Obj(Mod)に対して同値関係≡を定義できることを確認できるだろう。つまり、空間X=XΣはインスティチューションに対して定義できる。Σ |→ XΣ は関手に拡張できて、これは指標圏から位相空間の圏への関手になる。(細部をチェックしてないから、まちがっていたらゴメンね。)

論理式が定義する関数

論理式fとm∈Xに対して、m |= f は意味がある、つうか、これがうまく定義できるように m = [M] を決めているのだ(M≡N ならば M |= f ⇔ N |= f なのだから、m = [M] = [N] に対して m |= f が well-definedだ)。

fに対して、X上の関数f*を次のように定義する。

  • m |= f ならば f*(m) = 1
  • m |= f じゃないならば f*(m) = 0

f*は、X上で定義され{0, 1}に値をとる関数。fとf*は別物(論理式と関数)だけど、面倒だからどちらもfと書くことにして、必要に応じて論理式または関数と解釈する。

ベキ等元と連結性のときと同じに、次のように定義する。

  • W(f) = {m∈X | f(m) = 1} = {fを満たすモデルの全体}

さらに、論理式の集合Aに対して:

  • W(A) = {m∈X | すべてのf∈Aに対して f(m) = 1} = {Aに属するすべての条件を満たすモデルの全体}

こうすると、W(f)はW({f})の略記ということになる。ついでに、W(f1, ..., fn)はW({f1, ..., fn})の略記だとする。つまり:

  • W(f1, ..., fn) = {m∈X | f1(m) = 1 かつ ... かつ fn(m) = 1} = {f1, ..., fn すべての条件を満たすモデルの全体}

W(A)に関して、W(A) = ∩f∈AW(f) が成立する(自明だが確認してね)。特に、A={f1, ..., fn}のときは:

  • W(f1, ..., fn) = W(f1)∩...∩W(fn)

これは定義の言い換えに過ぎないから、すぐに確認できる(確認してね)。

位相空間としてのモデル空間

モデルの同値類の集まりとしてXを定義した。そして、論理式fをX上の関数とみなした。念のため注意しておくと、fとgが異なる論理式でも、fとgが同じ関数を定義することはある。先ほどの上付きアスタを使って書けば: f≠g でも f* = g* となることはある。同じ機能に対してその表現は多様だってことだね。

さてと、Xに位相を入れるのだが、Aを論理式の集合としてW(A)の形の集合を閉集合だと定義する。次のことはすぐに確認できる。

  1. W({1}) = X
  2. W({0}) = 空
  3. W(A1∪A2∪...∪An) = W(A1)∩W(A2)∩...∩W(An)

おっと、10はなんじゃい? というと: X上で“定数1を値にとる関数”と“定数0を値にとる関数”に対応する論理式。そんなものが最初からあると仮定する。これはご都合主義的だが、論理式のなかにはそういう論理定数(真偽値)が通常含まれているから大丈夫。3番目は、W(A)の定義をしばらくじっと見てると納得できるでしょう。納得できないなら、W(A∪B) = W(A)∩W(B)を明示的に示してみて。

実は3番目を一般化した次も成立する。

  • W(∪iAi) = ∩iW(Ai)

これについては次節に補足がある。

以上で、W(A)の形をした集合を閉集合とする位相が定義できた。

[追記 date="12-08"]

ウガッ、忘れていた。 閉集合族として位相を定義するには、閉集合の和(合併)が再び閉集合であることを確認しないといけないのだけど、一言もいってなかった。

AとBが論理式の集合だとして、W(A)∪W(B) = W(C) となるようなCの存在は一般には保証できない(実際に出てくる例ではまずOKだが)。しかし、W(A)達は、位相(閉集合族)の基底だとするなら、単に、W(A)∪W(B)のような集合も閉集合として認めればいいだけの話。

基底としては、W(f)(fは論理式)という形だけを採用してもいい。W(A) = ∩f∈AW(f)なのだから、W(A)はW(f)達の共通部分で書ける。つまり、問題の位相は、W(f)達を閉集合とするような最小(最弱)の位相。

論理式の定義が具体的に与えられているケースでは、その具体的な性質を使って、もっと別な位相を入れられるかもしれない。

[/追記]

補足または蛇足 -- 推論の練習

W(∪iAi) = ∩iW(Ai) を納得するために、ちょっと推論の話をしておく。

P, Q, Rなどが命題だとして、次の推論ができる。

(P→R)∧(Q→R)
--------------
 (P∨Q)→R

この図の意味は、横線の上の命題(複合命題)から、横線の下の命題を推論していい、ということ。日常感覚では、条件をPの場合とQの場合に分けて、結論Rが言えたなら、“PまたはQ”の条件からRが言えるだろう、ってこと。

あるいは、(P→R) = ¬P∨R という“定義”を使って計算すると、上は (¬P∨R)∧(¬Q∨R)となり、下は ¬(P∨Q)∨R = (¬P∧¬Q)∨R = (¬P∨R = )∧(¬Q∨R) となり一致する。

この推論の一般化として、次がある(たくさんの場合分け)。

(P1→R)∧(P2→R)∧ ... ∧(Pn→R)
--------------------------------
 (P1∨P2∨ ... ∨Pn)→R

さらに、番号を任意のパラメータに一般化して、次も妥当な推論になる。

∀i∈I.(P(i)→R)
----------------
 (∃i∈I.P(i))→R

この推論を使って、W(∪iAi) = ∩iW(Ai) を示してみる。ただし、見やすくするために、変数fに対する全称記号(∀)は一番外側に移動した上で適宜省略する。

m∈∩W(Ai)
----------
∀i∈I.(m∈W(Ai))
----------
∀i∈I.(∀f∈Ai.(f(m) = 1))
----------
∀i∈I.(f∈Ai → f(m) = 1)  ---[式A]


m∈W(∪Ai)
----------
∀f∈∪Ai.(f(m) = 1)
----------
f∈∪Ai → f(m) = 1
----------
(∃i∈I.(f∈Ai)) → f(m) = 1  ---[式B]

式Aと式Bが同値であることが先の推論規則から従うから、m∈∩W(Ai) と m∈W(∪Ai) が同値となり、W(∪Ai) = ∩W(Ai) が言えた。

コンパクト性定理

モデル論の「コンパクト性定理」とは、論理式の集合Aがモデルを持つかどうかに関する主張である。

  • Aの任意の有限部分集合がモデルを持つ ⇔ Aがモデルを持つ

これは、Aが有限のときは面白くない。論理式の無限集合に対して成立するのがすごいところだ。

論理式の集合が「矛盾する」とはモデルを持たないことだと“定義”すれば、コンパクト性定理は次のことを言っている。

  • Aが矛盾する ⇔ Aの有限部分集合で矛盾するものがある

つまり、矛盾が生じる原因が「公理が無限個だから」ということではなくて、無限のなかの有限個で既に矛盾が生じているのである。矛盾の原因を有限個の論理式として(超越的/原理的には)特定できることになる。

応用としては、例えば、普通の自然数に加えて無限大自然数をたくさん(ものすごくたくさん)入れても、矛盾なく自然数概念が定義できる(モデルが存在する)、とかを示せる。こうしてできるモデルは、超準自然数系だが、実際に構成するにはウルトラフィルター/ウルトラ積を使う。

コンパクト性定理そのものを示すにもウルトラフィルターを使ったと思う。チコノフの定理も確かウルトラフィルターを使う証明があったような気がする(記憶が曖昧)。コンパクト性はウルトラフィルターで表現するのが自然なのかもしれない。

モデル空間のコンパクト性

モデル空間Xは、論理式の集合AによってW(A)と書ける部分集合を閉集合とする位相を持つ。これは、W(f)の形の集合を閉集合の基底とした位相でもある。実は、W(f)は開集合でもあるから、閉かつ開な位相基底を取れることになる(0次元的空間と呼ぶ)。

コンパクト性の標準的な定義は開集合族に関する言明だが、閉集合族を使った形の定義もあって、次が「Xがコンパクトである」条件となる。

  • X上の任意の閉集合族に対して、有限交差する ⇔ 交差する

「有限交差する」は、任意の有限部分族の共通部分が空でないことである。「交差(完全交差)する」は、どんな部分族(特に全体)の共通部分も空でないこと。

さて、モデル空間Xがコンパクトであることが何らかの方法で示せたとする。すると、Xの位相的コンパクト性から直ちにモデル論的コンパクト性定理が従う。

論理式の集合Aがあるとき、{W(f) | f∈A}は閉集合族となる。Aの任意の有限部分集合{f1, f2, ..., fn}にモデルがあるとは、W(f1)∩W(f2)∩... ∩W(fn)が空でないことだから、結局{W(f) | f∈A}は有限交差する閉集合族である。Xがコンパクトなら、この族全体の共通部分∩fW(f) が空でないから、∩fW(f) = W(A) が空でない。つまり、Aはモデルを持つことになる。これは、コンパクト性定理の主張に他ならない。

以上のことから、コンパクト性定理は、モデル空間のコンパクト性とほぼ同じ内容であることがわかったろう。

ところで、今までの議論ではハウスドルフ性を使ってない。古典論理以外の論理を考えたりすると、モデル空間Xがハウスドルフであることは保証できない気がするが、僕はよくわかってない。一般的なモデル空間としては、必ずしもハウスドルフとは限らない局所コンパクト空間が出現するような気がするのだけど、気がするだけで、確証も確信もない。