[PDF版
]
はじめに
この発表では,数理論理学の初歩的な知識から始まって,構造の濃度に関する
Löwenheim-Skolem の定理や,超積に関する Ł oś の定理と選択公理の関係について述べます.これらは,数理論理学と呼ばれる分野の初歩的な結果です.数理論理学は集合論やモデル理論,証明論,計算理論など幾つもの分野に別れていますが,ここで扱うのはややモデル理論よりの結果です.数理論理学は数学という営為じたいを数学的に分析してみよう!という分野ですので,はじめて見るぜ!という人に関しても,普段自分達がやっている数学がどのように形式化され扱われるのかを鑑賞して頂ければと思います.また,以下では本質に関わらない記号の選び方云々に関しては,意図的に適当に書いて目を瞑ったところがあります.また,この発表ではモデル理論的な側面を強調して,証明論的な側面は殆んど触れられていません.しっかりとした数理論理学の導入をするのであれば,形式的証明の概念をしっかりと定義して,完全性定理によって意味と構文の関係を確立するという事をするべきですが,発表の都合上省略せざるを得ませんでした.数理論理学の入門には田中 [1] や新井
[2] ,江田 [3] ,古森・小野 [4]
などを,モデル理論の発展的な内容については坪井
[5] を読むと良いでしょう.
最初の内は無関係に見えるかもしれませんが,後程 @alg_d
さんの発表との関係も判然としてくる予定です.
論理式と言語
数学を記述するのに我々は数式を使う.特に,定理や証明で条件を書き下したりするのに,しばしば論理式 を使う.これから「数学」を数学的に記述するに当って,この数学で使われている言葉を,数学的に厳密に定義するところから始めよう.
それでは早速論理式の定義を……といきたいところだが,その前に幾つか定義しておかなくてはならない事がある.それは,今我々が考えている言語 は何か?ということだ.つまり,どんな述語や関数,定数などを使うのか,ということを明らかにしておかなくてはならない.例えば,環の理論を考える時は,二つの演算 + , ⋅ +, \cdot + , ⋅ と定数 0 , 1 0, 1 0 , 1
を使うし,集合論を考える時は原理的には所属関係を表す ∈ \in ∈
だけを使って議論することになる.このように,予め議論する対象をはっきりさせておかなければならないのだ.
言語 L \mathcal{L} L
とは,述語記号列 ⟨ P i | i ∈ I ⟩ \left\langle\: P_i \;
\middle|\; i \in I \:\right\rangle ⟨ P i ∣ i ∈ I ⟩ ,関数記号列 ⟨ f j | j ∈ J ⟩ \left\langle\: f_j \; \middle|\; j \in J
\:\right\rangle ⟨ f j ∣ j ∈ J ⟩ ,定数記号列 ⟨ c k | k ∈ K ⟩ \left\langle\: c_k \; \middle|\; k \in K
\:\right\rangle ⟨ c k ∣ k ∈ K ⟩ の組の事である.また,各述語記号と関数記号には
arity と呼ばれる自然数 n i , n j n_i, n_j n i , n j
が各々対応しており,P i P_i P i は n i n_i n i -変数述語記号であるとか,f j f_j f j は n j n_j n j -変数述語関数であるなどと云う.
このように,言語は述語記号だけであったり,関数記号だけであったりしてもよい.一般に,言語の記号を増やせば増やすほど記述出来る内容は増えるが,集合論のように
∈ \in ∈
だけで全てを表現したりも出来るので,一概にはいえない.
次に,sin x \sin x sin x とか x 2 x^2 x 2 ,1 + 1 1+1 1 + 1
といった論理式ではない「数式」に当るものとして,L \mathcal{L} L -項 を定義しよう.
次のようにして,言語 L \mathcal{L} L
の項 を定める:
定数記号 c c c
は項である.
変数記号 x i x_i x i
は項である.
f f f が n n n -変数関数記号で,τ 1 , … , τ n \tau_1, \dots, \tau_n τ 1 , … , τ n が項ならば,f ( τ 1 , … , τ n ) f(\tau_1, \dots, \tau_n) f ( τ 1 , … , τ n )
も項である.
以上で作られるものだけが項である.
特に,変数記号の出現しない項を閉項 と呼ぶ.
上の最後の「以上で作られるものだけが項である」という約束により,論理式の構成に関する帰納法を使うことが出来る.以後,こうした帰納的定義の最後に一々書くのも面倒なので,最後には「以上で作られるものだけが〜」と書かれていると読んで欲しい.
ここまで準備すれば,論理式を定義することが出来る.
言語 L \mathcal{L} L
の論理式 を次のように定義する:
τ 1 , τ 2 \tau_1, \tau_2 τ 1 , τ 2
が項の時,τ 1 = τ 2 \tau_1 = \tau_2 τ 1 = τ 2
は論理式である.
P P P が n n n -変数述語記号 で τ 1 , … , τ n \tau_1, \dots, \tau_n τ 1 , … , τ n が項の時,P τ 1 … τ n P \tau_1 \dots \tau_n P τ 1 … τ n
は論理式である.
以上の二つを特に原子論理式 と云う.
φ , ψ \varphi, \psi φ , ψ
が論理式の時,¬ φ \neg \varphi ¬ φ および
φ ∨ ψ \varphi \vee \psi φ ∨ ψ
も論理式である.
x x x が変数記号,φ \varphi φ が論理式の時,∃ x φ \exists x \varphi ∃ x φ
も論理式である.
記号はあくまで記号であって,意味はないのだが,それでも一応意図された意味というものがあるのでそれを説明しよう.φ ∨ ψ \varphi \vee \psi φ ∨ ψ は 「φ \varphi φ または ψ \psi ψ 」を,¬ φ \neg \varphi ¬ φ は 「φ \varphi φ でない」を,∃ x φ \exists x \varphi ∃ x φ は 「ϕ \phi ϕ を満たすような x x x
が存在する」という意味を意図している.「かつ」とか「ならば」とか「任意の」などが抜けているが,これらの論理結合子は,上の三つの組合せで「定義」できることが知られているので,それぞれに対応する「略記」を次のように導入しておく:
φ ∧ ψ . ≡ . ¬ ( ¬ φ ∨ ¬ ψ ) , φ → ψ . ≡ . ¬ φ ∨ ψ , ∀ x φ . ≡ . ¬ ∃ x ¬ φ \varphi \wedge \psi \mathrel{.{\equiv}.}
\neg (\neg \varphi \vee \neg \psi), \qquad \varphi \rightarrow \psi
\mathrel{.{\equiv}.} \neg \varphi \vee \psi, \qquad
\forall x \varphi \mathrel{.{\equiv}.} \neg \exists x \neg
\varphi φ ∧ ψ . ≡ . ¬ ( ¬ φ ∨ ¬ ψ ) , φ → ψ . ≡ . ¬ φ ∨ ψ , ∀ x φ . ≡ . ¬∃ x ¬ φ ∧ , → , ∀ \wedge, \rightarrow,
\forall ∧ , → , ∀
なども予め定義にいれておいたほうが分かり易いかもしれないが,記号が多いと後々の証明が大変になるので必要最低限に限ったのである.
論理式の解釈と初等拡大
上では論理式を定義したが,あくまで文字列の構成法として定義しただけである.論理式は何らかの数学的な内容を意味するのだから,その解釈 を定めてやらなければ意味がない.
L \mathcal{L} L -構造 A = ⟨ A , P i A , f j A , c k A | i ∈ I , j ∈ J , k ∈ K ⟩ \mathfrak{A} = \left\langle\: A,
P_i^\mathfrak{A}, f_j^\mathfrak{A}, c_k^\mathfrak{A} \; \middle|\; i
\in I, j \in J, k \in K \:\right\rangle A = ⟨ A , P i A , f j A , c k A ∣ ∣ i ∈ I , j ∈ J , k ∈ K ⟩
とは,次を満たすものである:
A A A
は空でない集合である.A = ∣ A ∣ A =
|\mathfrak{A}| A = ∣ A ∣ などと表し,A \mathfrak{A} A
の議論領域などと呼んだりする.
P i P_i P i が n i n_i n i -変数述語記号の時,P i A P_i^\mathfrak{A} P i A は A A A 上の n n n -項関係である.つまり P i A ⊆ A n P_i^\mathfrak{A} \subseteq A^n P i A ⊆ A n .
f j f_j f j が n j n_j n j -変数関数記号の時,f j A : A n → A f_j^\mathfrak{A}: A^n \rightarrow A f j A : A n → A
である.
c k c_k c k が定数記号の時,c k A ∈ A c_k^\mathfrak{A} \in A c k A ∈ A である.
上で定めた P i A , f j A , c k A P_i^\mathfrak{A},
f_j^\mathfrak{A}, c_k^\mathfrak{A} P i A , f j A , c k A などを,L \mathcal{L} L の記号の A \mathfrak{A} A での解釈と呼ぶ.
また,L \mathcal{L} L の一般の閉項
τ \tau τ
に対し,関数記号とその「引数」となる項に対して繰り返し解釈を取ることにより,τ \tau τ の A \mathfrak{A} A での解釈 τ A \tau^\mathfrak{A} τ A
を帰納的に定義する.
ここで,L \mathcal{L} L -構造 A \mathfrak{A} A に対し,A \mathfrak{A} A 自身を写し取ったような言語
L ( A ) L(\mathfrak{A}) L ( A )
を考えることが出来る.
L \mathcal{L} L -構造 A \mathfrak{A} A に対し,言語 L ( A ) L(\mathfrak{A}) L ( A ) を L ( A ) = L ∪ { c a | a ∈ A } \mathcal{L}(\mathfrak{A}) = \mathcal{L}
\cup \left\{\: c_a \;\middle|\; a \in A \:\right\} L ( A ) = L ∪ { c a ∣ a ∈ A }
で定義する. ここで c a c_a c a は L \mathcal{L} L に含まれないような,各 a ∈ A a \in A a ∈ A
ごとに異なる新しい定数記号であり,a ∈ A a \in
A a ∈ A の名前 と呼ばれる.c a A = a c_a^\mathfrak{A} = a c a A = a
として解釈を定めてやることにより,A \mathfrak{A} A は自然に L ( A ) \mathcal{L}(\mathfrak{A}) L ( A ) -構造と見ることが出来る.
さて,L \mathcal{L} L -構造というのを考えるのは,論理式の「意味」を与えてやるためであった.そこで,次のようにして論理式の解釈を定めてやろう:
L \mathcal{L} L -構造 A \mathfrak{A} A と L ( A ) \mathcal{L}(\mathfrak{A}) L ( A ) -論理式 φ \varphi φ に対し,関係 A ⊨ φ \mathfrak{A} \models \varphi A ⊨ φ (A \mathfrak{A} A は φ \varphi φ
を満たすと読む)を次のように帰納的に定める:
A ⊨ τ 1 = τ 2 ⟺ τ 1 A = τ 2 A \mathfrak{A} \models \tau_1 = \tau_2
\Longleftrightarrow \tau_1^\mathfrak{A} =
\tau_2^\mathfrak{A} A ⊨ τ 1 = τ 2 ⟺ τ 1 A = τ 2 A
A ⊨ P τ 1 … τ n ⟺ ( τ 1 A , … , τ n A ) ∈ P A \mathfrak{A} \models P\tau_1 \dots
\tau_n \Longleftrightarrow (\tau_1^\mathfrak{A}, \dots,
\tau_n^\mathfrak{A}) \in P^\mathfrak{A} A ⊨ P τ 1 … τ n ⟺ ( τ 1 A , … , τ n A ) ∈ P A
A ⊨ φ ∨ ψ ⟺ A ⊨ φ \mathfrak{A} \models \varphi \vee
\psi \Longleftrightarrow \mathfrak{A} \models \varphi A ⊨ φ ∨ ψ ⟺ A ⊨ φ または
A ⊨ ψ \mathfrak{A} \models \psi A ⊨ ψ
の少なくとも一方が成立する.
A ⊨ ¬ φ ⟺ A ⊨ φ \mathfrak{A} \models \neg \varphi
\Longleftrightarrow \mathfrak{A} \models \varphi A ⊨ ¬ φ ⟺ A ⊨ φ
でない
A ⊨ ∃ x φ ⟺ \mathfrak{A} \models \exists x
\varphi \Longleftrightarrow A ⊨ ∃ x φ ⟺ ある a ∈ A a
\in A a ∈ A が存在して,A ⊨ φ [ x c a ] \mathfrak{A}
\models \varphi[\begin{smallmatrix}x\\c_a\end{smallmatrix}] A ⊨ φ [ x c a ]
となる.
ただし,ここで φ [ x τ ] \varphi[\begin{smallmatrix}x\\\tau\end{smallmatrix}] φ [ x τ ]
は,φ \varphi φ
の中に自由に出現する変数 x x x を項
τ \tau τ で置き換えたものである.
読み方通り,A ⊨ φ \mathfrak{A} \models
\varphi A ⊨ φ は構造 A \mathfrak{A} A で φ \varphi φ
が成立することを示す物である.たとえば,群の公理を G r p \mathrm{Grp} Grp と置くと,( Z , + ) ⊨ G r p , ( R × , ⋅ ) ⊨ G r p (\mathbb{Z}, +) \models \mathrm{Grp},
(\mathbb{R}^\times, \cdot) \models \mathrm{Grp} ( Z , + ) ⊨ Grp , ( R × , ⋅ ) ⊨ Grp だが,( N , + ) ⊭ G r p (\mathbb{N}, +) \not\models \mathrm{Grp} ( N , + ) ⊨ Grp
である.こういったことをもっと通り良く述べるために,次のように定義をする.
L \mathcal{L} L -閉論理式の集合
T \mathcal{T} T の事を L \mathcal{L} L -公理系 とかL \mathcal{L} L -理論 などと呼ぶ
L \mathcal{L} L -構造 A , B \mathfrak{A}, \mathfrak{B} A , B
が初等的同値 (記号:A ≡ B \mathfrak{A} \equiv
\mathfrak{B} A ≡ B )であるとは,T h L ( A ) = T h L ( B ) \mathrm{Th}_\mathcal{L}(\mathfrak{A}) =
\mathrm{Th}_\mathcal{L}(\mathfrak{B}) Th L ( A ) = Th L ( B )
となることである.
T \mathcal{T} T をL \mathcal{L} L -理論とする.L \mathcal{L} L -構造 A \mathfrak{A} A が,任意の φ ∈ T \varphi \in \mathcal{T} φ ∈ T に対し A ⊨ φ \mathfrak{A} \models \varphi A ⊨ φ
を満たすとき,A \mathfrak{A} A は T \mathcal{T} T
のモデル であると云う.このとき,A ⊨ T \mathfrak{A} \models \mathcal{T} A ⊨ T
と書く.
論理式 φ \varphi φ
について,理論 T \mathcal{T} T
の任意のモデル A \mathfrak{A} A で
A ⊨ φ \mathfrak{A} \models \varphi A ⊨ φ
となる時,T ⊨ φ \mathcal{T} \models
\varphi T ⊨ φ と書く.
T h L ( A ) : = { φ : L -閉論理式 | A ⊨ φ } \mathrm{Th}_\mathcal{L}(\mathfrak{A})
\mathrel{:=} \left\{\: \varphi :
\mathcal{L}\text{-閉論理式} \;\middle|\; \mathfrak{A} \models \varphi
\:\right\} Th L ( A ) := { φ : L - 閉論理式 ∣ A ⊨ φ } を言語 L \mathcal{L} L についての A \mathfrak{A} A
の公理系 と云う.
D i a g ( A ) : = T h L ( A ) = { φ : L ( A ) -閉論理式 | A ⊨ φ } \mathrm{Diag}(\mathfrak{A})
\mathrel{:=} \mathrm{Th}_{\mathcal{L}(\mathfrak{A})} =
\left\{\: \varphi :
\mathcal{L}(\mathfrak{A})\text{-閉論理式} \;\middle|\; \mathfrak{A}
\models \varphi \:\right\} Diag ( A ) := Th L ( A ) = { φ : L ( A ) - 閉論理式 ∣ A ⊨ φ } を,A \mathfrak{A} A
の初等設計図 と呼ぶ.
構造 A , B \mathfrak{A},
\mathfrak{B} A , B
が同型 であるとは,全単射 σ : A → B \sigma: A \rightarrow B σ : A → B が存在して,
σ ( c A ) = c B σ ( f A ( u 1 , … , u n ) ) = f B ( σ ( u 1 ) , … , σ ( u n ) ) ( u 1 , … , u n ) ∈ P A ⟺ ( σ ( u 1 ) , … , σ ( u n ) ) ∈ P B \begin{gathered}
\sigma(c^\mathfrak{A}) = c^\mathfrak{B}\qquad\sigma(f^\mathfrak{A}(u_1,
\dots, u_n)) = f^{\mathfrak{B}}(\sigma(u_1), \dots, \sigma(u_n))\\
(u_1, \dots, u_n) \in P^\mathfrak{A} \Longleftrightarrow (\sigma(u_1),
\dots, \sigma(u_n)) \in P^\mathfrak{B}
\end{gathered} σ ( c A ) = c B σ ( f A ( u 1 , … , u n )) = f B ( σ ( u 1 ) , … , σ ( u n )) ( u 1 , … , u n ) ∈ P A ⟺ ( σ ( u 1 ) , … , σ ( u n )) ∈ P B を満たすことである.このとき A ≅ B \mathfrak{A} \cong \mathfrak{B} A ≅ B
と書く.
構造と解釈に関する定義を幾つか済ませた所で,こんどは部分構造について定義しておこう.
L \mathcal{L} L -構造 A , B \mathfrak{A}, \mathfrak{B} A , B
について,A \mathfrak{A} A が B \mathfrak{B} B
の部分構造 であるとは,A ⊆ B A \subseteq B A ⊆ B
であり,以下の三つの条件が成立することである:
定数記号 c c c について,c A = c B c^\mathfrak{A} = c^\mathfrak{B} c A = c B
n n n -変数述語記号 P P P について,P A = P B ∩ A n P^\mathfrak{A} = P^\mathfrak{B} \cap
A^n P A = P B ∩ A n
n n n -変数関数記号 f f f について,f B ↾ A n = f A f^\mathfrak{B} \upharpoonright A^n =
f^\mathfrak{A} f B ↾ A n = f A
A \mathfrak{A} A が B \mathfrak{B} B
の部分構造であるとする.任意の L ( A ) \mathcal{L}(\mathfrak{A}) L ( A ) -論理式 φ \varphi φ が A ⊨ φ ⟺ B ⊨ φ \mathfrak{A} \models \varphi \Longleftrightarrow
\mathfrak{B} \models \varphi A ⊨ φ ⟺ B ⊨ φ を満たすとき,A \mathfrak{A} A は B \mathfrak{B} B
の初等部分構造 である,または B \mathfrak{B} B は A \mathfrak{A} A
の初等拡大 であると云い,A ≺ B \mathfrak{A} \prec \mathfrak{B} A ≺ B
と書く.先程の記号を使えば,A ≺ B ⇔ D i a g ( A ) = T h L ( A ) ( B ) \mathfrak{A}
\prec \mathfrak{B} \Leftrightarrow \mathrm{Diag}(\mathfrak{A}) =
\mathrm{Th}_{\mathcal{L}(\mathfrak{A})}(\mathfrak{B}) A ≺ B ⇔ Diag ( A ) = Th L ( A ) ( B )
である.
例えば,N = ( N , + ) \mathfrak{N} = (\mathbb{N},
+) N = ( N , + ) は Z = ( Z , + ) \mathfrak{Z} = (\mathbb{Z},
+) Z = ( Z , + ) の部分構造であるが,N ≺ Z \mathcal{N}
\prec \mathcal{Z} N ≺ Z ではない.Z \mathbb{Z} Z には逆元が存在するが,N \mathbb{N} N
はそもそも群ではないからである.また,M 2 ( R ) M_2(\mathbb{R}) M 2 ( R ) と H = { ( a 0 0 0 ) | a ∈ R × } H = \left\{\: (\begin{smallmatrix}a & 0 \\ 0
& 0 \end{smallmatrix}) \;\middle|\; a \in \mathbb{R}^\times
\:\right\} H = { ( a 0 0 0 ) ∣ ∣ a ∈ R × } を考えると,⟨ H , + , ⋅ ⟩ \left\langle
H, +, \cdot \right\rangle ⟨ H , + , ⋅ ⟩ は ⟨ M 2 ( R ) , + , ⋅ ⟩ \left\langle M_2(\mathbb{R}), +, \cdot
\right\rangle ⟨ M 2 ( R ) , + , ⋅ ⟩ の部分構造となり,乗法単位元はそれぞれ ( 1 0 0 1 ) (\begin{smallmatrix}1&0 \\
0&1\end{smallmatrix}) ( 1 0 0 1 ) と ( 1 0 0 0 ) (\begin{smallmatrix}1&0 \\
0&0\end{smallmatrix}) ( 1 0 0 0 ) である.部分環の定義に 0 , 1 0, 1 0 , 1
を含めるかは流儀による.含めない場合は ⟨ + , ⋅ ⟩ \left\langle +, \cdot
\right\rangle ⟨ + , ⋅ ⟩ -部分構造が,含める場合は ⟨ 1 , ⋅ , + ⟩ \left\langle 1, \cdot, +
\right\rangle ⟨ 1 , ⋅ , + ⟩ -部分構造が部分環と一致する.
また,言語 L = ⟨ + , < ⟩ \mathcal{L} = \left\langle +,
< \right\rangle L = ⟨ + , < ⟩ について,A = ( N , + , < ) \mathfrak{A} = (\mathbb{N}, +, <) A = ( N , + , < ) と
B = ( N ∖ { 0 } , + , < ) \mathfrak{B} = (\mathbb{N} \setminus \{0\},
+, <) B = ( N ∖ { 0 } , + , < ) は同型になる.しかし,L ( B ) \mathcal{L}(\mathfrak{B}) L ( B ) -論理式 ψ ≡ ∀ x ¬ ( x < 1 ) \psi \equiv \forall x \neg (x < 1) ψ ≡ ∀ x ¬ ( x < 1 )
を考えると,B ⊨ ψ \mathfrak{B} \models
\psi B ⊨ ψ だが A ⊭ ψ \mathfrak{A} \not\models
\psi A ⊨ ψ なので,B ≺ A \mathfrak{B} \prec
\mathfrak{A} B ≺ A ではない.
初等部分構造となる例としては,( Q , ≤ ) ≺ ( R , ≤ ) (\mathbb{Q}, \leq) \prec (\mathbb{R},
\leq) ( Q , ≤ ) ≺ ( R , ≤ ) や,( Q ˉ , + , ⋅ ) ≺ ( C , + , ⋅ ) (\bar{\mathbb{Q}}, +,
\cdot) \prec (\mathbb{C}, +, \cdot) ( Q ˉ , + , ⋅ ) ≺ ( C , + , ⋅ ) などが知られている.
より一般に,何らかの構造が与えられた際に,その非自明な初等拡大を構成する方法はあるのだろうか?
その例の一つが,次節で扱う超積 の特殊な場合である超冪 である.
超積の定義と Ł oś の定理,そして選択公理
L \mathcal{L} L -構造の族が与えられた時に,その「殆んど至るところ」で成立する性質を取り出したものが超積である.午前中の発表でもあったように,フィルターの例として
[ 0 , 1 ] [0,1] [ 0 , 1 ] 上の測度 1 1 1 の集合全体の成すフィルターがある.測度
1 1 1
の集合は明らかに「大きな」集合である.ウルトラフィルターはその中でも更にキメが細かいフィルターであり,ウルトラフィルターに属する集合は「大きな集合」全体であると見做せる.そこで,族の「大部分」で成り立つ性質を取り出すのに,ウルトラフィルターを使ってみよう,という訳である.
{ A i } i ∈ I \{\mathfrak{A}_i\}_{i\in
I} { A i } i ∈ I をL \mathcal{L} L -構造の族(I ≠ 0 I \neq 0 I = 0 ),F \mathcal{F} F を I I I 上のフィルターとする.この時,∏ i ∈ I ∣ A i ∣ \prod_{i \in I} |\mathfrak{A}_i| ∏ i ∈ I ∣ A i ∣
上の二項関係 ∼ F \sim_\mathcal{F} ∼ F
を次で定義する. u ∼ F v ⇔ d e f { i ∈ I | u ( i ) = v ( i ) } ∈ F ( u , v ∈ ∏ i ∈ I ∣ A i ∣ ) u \sim_\mathcal{F} v
\xLeftrightarrow{\mathrm{def}} \left\{\: i \in I \;\middle|\; u(i) =
v(i) \:\right\} \in \mathcal{F}\ \ \ \left(u, v \in \prod_{i \in I}
|\mathfrak{A}_i|\right) u ∼ F v def { i ∈ I ∣ u ( i ) = v ( i ) } ∈ F ( u , v ∈ i ∈ I ∏ ∣ A i ∣ ) このとき,∼ F \sim_\mathcal{F} ∼ F
は同値関係となっている.u , v u, v u , v
が「大きい集合で一致すれば」,つまり殆んど至るところで一致すれば,u , v u, v u , v を等しいと見做すのが,関係 ∼ F \sim_\mathcal{F} ∼ F である.
{ A i } i ∈ I \{\mathfrak{A}_i\}_{i \in I} { A i } i ∈ I の
F \mathcal{F} F
による縮積 (reduce
product )C = ∏ i ∈ I A i / F \mathfrak{C} = \prod_{i
\in I} \mathfrak{A}_i/\mathcal{F} C = ∏ i ∈ I A i / F とは,∏ i ∈ I ∣ A i ∣ \prod_{i\in I} |\mathfrak{A}_i| ∏ i ∈ I ∣ A i ∣ の ∼ F \sim_\mathcal{F} ∼ F
による商集合のことである.即ち,u u u
の ∼ F \sim_{\mathcal{F}} ∼ F
による同値類を [ u ] F [u]_{\mathcal{F}} [ u ] F
と書けば, ∏ i ∈ I A i / F = { [ u ] F | u ∈ ∏ i ∈ I ∣ A i ∣ } \prod_{i\in I}
\mathfrak{A}_i/\mathcal{F} = \left\{\: [u]_\mathcal{F} \;\middle|\; u
\in \prod_{i\in I} \left|\mathfrak{A}_i\right| \:\right\} i ∈ I ∏ A i / F = { [ u ] F ∣ ∣ u ∈ i ∈ I ∏ ∣ A i ∣ }
のことである.このとき,C \mathfrak{C} C の L \mathcal{L} L -構造としての述語記号,関数記号に関する解釈は次により定める.
( [ u 1 ] , … , [ u n ] ) ∈ P C ⇔ { i ∈ I | ( u 1 ( i ) , … , u n ( i ) ) ∈ P A i } ∈ F f C ( [ u 1 ] , … , [ u n ] ) = [ u ] ( ただし u ( i ) = f A i ( u 1 ( i ) , … , u n ( i ) ) ) c C = [ c A i ] \begin{gathered}
([u_1], \dots, [u_n]) \in P^\mathfrak{C} \Leftrightarrow \left\{\: i
\in I \;\middle|\; (u_1(i), \dots, u_n(i)) \in P^{\mathfrak{A}_i}
\:\right\} \in \mathcal{F}\\
f^\mathfrak{C}([u_1], \dots, [u_n]) = [u] \quad (\text{ただし} u(i) =
f^{\mathfrak{A}_i}(u_1(i), \dots, u_n(i)))\\
c^\mathfrak{C} = [c^{\mathfrak{A}_i}]
\end{gathered} ([ u 1 ] , … , [ u n ]) ∈ P C ⇔ { i ∈ I ∣ ∣ ( u 1 ( i ) , … , u n ( i )) ∈ P A i } ∈ F f C ([ u 1 ] , … , [ u n ]) = [ u ] ( ただし u ( i ) = f A i ( u 1 ( i ) , … , u n ( i ))) c C = [ c A i ]
特に,ウルトラフィルター U \mathcal{U} U
に関する縮積を超積 (ultraproduct )と云う.
上の ∼ F \sim_\mathcal{F} ∼ F
が実際に同値関係となることはすぐに判る.また,上の縮積の定義が
well-defined
であることは本来ならば示すべきだが,面倒なので各自の演習問題とする.
超積が「殆んど至るところで成立する性質を取り出したもの」ということを定式化したのが次の定理である.
U : I 上のウルトラフィルター , C = ∏ i ∈ I A i / U \mathcal{U}:
I\text{上のウルトラフィルター},\quad \mathfrak{C} = \prod_{i \in
I}\mathfrak{A}_i/\mathcal{U} U : I 上のウルトラフィルター , C = ∏ i ∈ I A i / U
φ ( a 1 , … , a n ) : L -論理式 , [ u 1 ] , … , [ u n ] ∈ ∣ C ∣ \varphi(a_1, \dots, a_n):
\mathcal{L}\text{-論理式},\quad [u_1], \dots, [u_n] \in
|\mathfrak{C}| φ ( a 1 , … , a n ) : L - 論理式 , [ u 1 ] , … , [ u n ] ∈ ∣ C ∣ とすると,次が成立.
C ⊨ φ ( [ u 1 ] , … , [ u n ] ) ⇔ { i ∈ I | A i ⊨ φ ( u 1 ( i ) , … , u n ( i ) ) } ∈ U \mathfrak{C} \models \varphi([u_1],
\dots, [u_n])
\Leftrightarrow \left\{\: i \in I \;\middle|\; \mathfrak{A}_i \models
\varphi(u_1(i), \dots, u_n(i)) \:\right\} \in \mathcal{U} C ⊨ φ ([ u 1 ] , … , [ u n ]) ⇔ { i ∈ I ∣ A i ⊨ φ ( u 1 ( i ) , … , u n ( i )) } ∈ U
定理の証明の為に,次の補題を使う.
t ( a 1 , … , a n ) t(a_1, \dots, a_n) t ( a 1 , … , a n ) を L \mathcal{L} L -項, τ ( i ) = ( t ( u 1 ( i ) , … , u n ( i ) ) ) A i \tau(i) = (t(u_1(i), \dots,
u_n(i)))^\mathfrak{A_i} τ ( i ) = ( t ( u 1 ( i ) , … , u n ( i )) ) A i とする.このとき, ( t ( [ u 1 ] , … , [ u n ] ) ) C = [ τ ] (t([u_1], \dots, [u_n]))^{\mathfrak{C}} =
[\tau] ( t ([ u 1 ] , … , [ u n ]) ) C = [ τ ]
これは当然成り立つべき命題であるし,証明も単に帰納法で示せるのでここでは省略し,Ł oś
の定理を示す.
Ł oś の定理の証明. L ( C ) L(\mathfrak{C}) L ( C )
の論理式の構造帰納法で示す.以下,∣ C ∣ |\mathfrak{C}| ∣ C ∣ の元と L ( C ) L(\mathfrak{C}) L ( C )
での名前を同一視する.
φ ≡ P t 1 … t n \varphi \equiv P t_1 \dots
t_n φ ≡ P t 1 … t n (原子論理式)のとき.P P P を m m m -変数述語記号,t 1 , … , t m t_1, \dots, t_m t 1 , … , t m を L ( C ) L(\mathfrak{C}) L ( C ) の項とすると,
C ⊨ ( P t 1 … t m ) ( [ u 1 ] , … , [ u n ] ) ⇔ C ⊨ P t 1 ( [ u 1 ] , … , [ u n ] ) … t m ( [ u 1 ] , … , [ u n ] ) ⇔ ( t 1 ( [ u 1 ] , … , [ u n ] ) C , … , t m ( [ u 1 ] , … , [ u n ] ) C ) ∈ P C ( ⊨ の定義 ) ⇔ ( [ τ 1 ] , … , [ τ m ] ) ∈ P C ( 補題 1 ;但し補題の記号を用いた ) ⇔ { i ∈ I | ( τ 1 ( i ) , … , τ m ( i ) ) ∈ P A i } ∈ U ( 超積の定義 ) ⇔ { i ∈ I | A i ⊨ P ( t 1 ( u 1 ( i ) , … , u n ( i ) ) ) … ( t m ( u 1 ( i ) , … , u n ( i ) ) ) } ∈ U ( ⊨ の定義 ) ⇔ { i ∈ I | A i ⊨ ( P t 1 … t m ) ( u 1 ( i ) , … , u n ( i ) ) } ∈ U ( ⊨ の定義 ) \begin{alignedat}{2}
& \mathfrak{C} \models (P t_1 \dots t_m)([u_1], \dots, [u_n])\\
& \Leftrightarrow \mathfrak{C} \models P t_1([u_1], \dots,
[u_n])\dots t_m([u_1], \dots, [u_n])\\
& \Leftrightarrow (t_1([u_1], \dots, [u_n])^{\mathfrak{C}}, \dots,
t_m([u_1], \dots, [u_n])^{\mathfrak{C}}) \in P^\mathfrak{C} & \quad
(\models \text{の定義})\\
& \Leftrightarrow ([\tau_1], \dots, [\tau_m]) \in P^\mathfrak{C}
&
(\text{補題}\href{\#ultraproduct-term}{1}\text{;但し補題の記号を用いた})\\
& \Leftrightarrow \left\{\: i \in I \;\middle|\; (\tau_1(i),
\dots, \tau_m(i)) \in P^{\mathfrak{A}_i} \:\right\} \in \mathcal{U}&
(\text{超積の定義})\\
& \Leftrightarrow \left\{\: i \in I \;\middle|\; \mathfrak{A}_i
\models P(t_1(u_1(i), \dots, u_n(i)))\dots(t_m(u_1(i), \dots, u_n(i)))
\:\right\} \in \mathcal{U} & (\models \text{の定義})\\
& \Leftrightarrow \left\{\: i \in I \;\middle|\; \mathfrak{A}_i
\models (P t_1 \dots t_m)(u_1(i), \dots, u_n(i)) \:\right\} \in
\mathcal{U} & (\models \text{の定義})
\end{alignedat} C ⊨ ( P t 1 … t m ) ([ u 1 ] , … , [ u n ]) ⇔ C ⊨ P t 1 ([ u 1 ] , … , [ u n ]) … t m ([ u 1 ] , … , [ u n ]) ⇔ ( t 1 ([ u 1 ] , … , [ u n ] ) C , … , t m ([ u 1 ] , … , [ u n ] ) C ) ∈ P C ⇔ ([ τ 1 ] , … , [ τ m ]) ∈ P C ⇔ { i ∈ I ∣ ∣ ( τ 1 ( i ) , … , τ m ( i )) ∈ P A i } ∈ U ⇔ { i ∈ I ∣ A i ⊨ P ( t 1 ( u 1 ( i ) , … , u n ( i ))) … ( t m ( u 1 ( i ) , … , u n ( i ))) } ∈ U ⇔ { i ∈ I ∣ A i ⊨ ( P t 1 … t m ) ( u 1 ( i ) , … , u n ( i )) } ∈ U ( ⊨ の定義 ) ( 補題 1 ;但し補題の記号を用いた ) ( 超積の定義 ) ( ⊨ の定義 ) ( ⊨ の定義 )
φ ≡ ψ ∨ ϑ \varphi \equiv \psi \vee
\vartheta φ ≡ ψ ∨ ϑ の時.ψ , ϑ \psi,
\vartheta ψ , ϑ は命題を満たす論理式であるとする(帰納法の仮定).
C ⊨ ( ψ ∨ ϑ ) ( [ u 1 ] , … , [ u n ] ) ⇔ C ⊨ ψ ( [ u 1 ] , … , [ u n ] ) ∨ ϑ ( [ u 1 ] , … , [ u n ] ) ⇔ C ⊨ ψ ( [ u 1 ] , … , [ u n ] ) または C ⊨ ϑ ( [ u 1 ] , … , [ u n ] ) ( ⊨ の定義 ) ⇔ { i ∈ I | A i ⊨ ψ ( u 1 ( i ) , … , u n ( i ) ) } ∈ U または { i ∈ I | A i ⊨ ϑ ( u 1 ( i ) , … , u n ( i ) ) } ∈ U ( 帰納法の仮定 ) ⇔ { i ∈ I | A i ⊨ ψ ( u 1 ( i ) , … , u n ( i ) ) } ∪ { i ∈ I | A i ⊨ ϑ ( u 1 ( i ) , … , u n ( i ) ) } ∈ U ( ⋆ ) ⇔ { i ∈ I | A i ⊨ ψ ( u 1 ( i ) , … , u n ( i ) ) または A i ⊨ ϑ ( u 1 ( i ) , … , u n ( i ) ) } ∈ U ⇔ { i ∈ I | A i ⊨ ψ ( u 1 ( i ) , … , u n ( i ) ) ∨ ϑ ( u 1 ( i ) , … , u n ( i ) ) } ∈ U ( ⊨ の定義 ) ⇔ { i ∈ I | A i ⊨ ( ψ ∨ ϑ ) ( u 1 ( i ) , … , u n ( i ) ) } ∈ U \begin{alignedat}{2}
&\mathfrak{C} \models (\psi \vee \vartheta)([u_1], \dots, [u_n])\\
&\Leftrightarrow \mathfrak{C} \models \psi([u_1], \dots, [u_n]) \vee
\vartheta([u_1], \dots, [u_n])\\
&\Leftrightarrow \mathfrak{C} \models \psi([u_1], \dots, [u_n])
\mathbin{\text{または}} \mathfrak{C} \models \vartheta([u_1], \dots,
[u_n]) &\quad(\models \text{の定義})\\
&\Leftrightarrow \left\{\: i \in I \;\middle|\; \mathfrak{A}_i
\models \psi(u_1(i), \dots, u_n(i)) \:\right\} \in \mathcal{U}
\text{または} \left\{\: i \in I \;\middle|\; \mathfrak{A}_i \models
\vartheta (u_1(i), \dots, u_n(i)) \:\right\} \in \mathcal{U} &\quad
(\text{帰納法の仮定})\\
& \Leftrightarrow \left\{\: i \in I \;\middle|\; \mathfrak{A}_i
\models \psi(u_1(i), \dots, u_n(i)) \:\right\} \cup \left\{\: i \in
I \;\middle|\; \mathfrak{A}_i \models \vartheta (u_1(i), \dots,
u_n(i)) \:\right\} \in \mathcal{U}& (\star)\\
& \Leftrightarrow \left\{\: i \in I \;\middle|\; \mathfrak{A}_i
\models \psi(u_1(i), \dots, u_n(i)) \text{または} \mathfrak{A}_i \models
\vartheta(u_1(i), \dots, u_n(i)) \:\right\} \in \mathcal{U}\\
& \Leftrightarrow \left\{\: i \in I \;\middle|\; \mathfrak{A}_i
\models \psi(u_1(i), \dots, u_n(i)) \vee \vartheta(u_1(i), \dots,
u_n(i)) \:\right\} \in \mathcal{U} & (\models \text{の定義})\\
& \Leftrightarrow \left\{\: i \in I \;\middle|\; \mathfrak{A}_i
\models (\psi \vee \vartheta)(u_1(i), \dots, u_n(i)) \:\right\} \in
\mathcal{U}
\end{alignedat} C ⊨ ( ψ ∨ ϑ ) ([ u 1 ] , … , [ u n ]) ⇔ C ⊨ ψ ([ u 1 ] , … , [ u n ]) ∨ ϑ ([ u 1 ] , … , [ u n ]) ⇔ C ⊨ ψ ([ u 1 ] , … , [ u n ]) または C ⊨ ϑ ([ u 1 ] , … , [ u n ]) ⇔ { i ∈ I ∣ A i ⊨ ψ ( u 1 ( i ) , … , u n ( i )) } ∈ U または { i ∈ I ∣ A i ⊨ ϑ ( u 1 ( i ) , … , u n ( i )) } ∈ U ⇔ { i ∈ I ∣ A i ⊨ ψ ( u 1 ( i ) , … , u n ( i )) } ∪ { i ∈ I ∣ A i ⊨ ϑ ( u 1 ( i ) , … , u n ( i )) } ∈ U ⇔ { i ∈ I ∣ A i ⊨ ψ ( u 1 ( i ) , … , u n ( i )) または A i ⊨ ϑ ( u 1 ( i ) , … , u n ( i )) } ∈ U ⇔ { i ∈ I ∣ A i ⊨ ψ ( u 1 ( i ) , … , u n ( i )) ∨ ϑ ( u 1 ( i ) , … , u n ( i )) } ∈ U ⇔ { i ∈ I ∣ A i ⊨ ( ψ ∨ ϑ ) ( u 1 ( i ) , … , u n ( i )) } ∈ U ( ⊨ の定義 ) ( 帰納法の仮定 ) ( ⋆ ) ( ⊨ の定義 ) ただし,( ⋆ ) (\star) ( ⋆ ) では,U \mathcal{U} U
がウルトラフィルターの時,A ∪ B ∈ U → A ∈ U ∨ B ∈ U A \cup B \in
\mathcal{U} \rightarrow A \in \mathcal{U} \vee B \in
\mathcal{U} A ∪ B ∈ U → A ∈ U ∨ B ∈ U となることを使った.
φ ≡ ¬ ψ \varphi \equiv \neg \psi φ ≡ ¬ ψ
の時. C ⊨ ( ¬ ψ ) ( [ u 1 ] , … , [ u n ] ) ⇔ C ⊨ ψ ( [ u 1 ] , … , [ u n ] ) でない ⇔ { i ∈ I | A i ⊨ ψ ( u 1 ( i ) , … , u n ( i ) ) } ∉ U ( 帰納法の仮定 ) ⇔ I ∖ { i ∈ I | A i ⊨ ψ ( u 1 ( i ) , … , u n ( i ) ) } ∈ U ( U : ウルトラフィルター ) ⇔ { i ∈ I | A i ⊭ ψ ( u 1 ( i ) , … , u n ( i ) ) } ∈ U ⇔ { i ∈ I | A i ⊨ ¬ ψ ( u 1 ( i ) , … , u n ( i ) ) } ∈ U \begin{alignedat}{2}
\mathfrak{C} \models (\neg \psi)([u_1], \dots, [u_n])
&\Leftrightarrow \mathfrak{C} \models \psi([u_1], \dots, [u_n])
\text{でない}\\
&\Leftrightarrow \left\{\: i \in I \;\middle|\; \mathfrak{A}_i
\models \psi(u_1(i), \dots, u_n(i)) \:\right\} \notin \mathcal{U}
&\quad (\text{帰納法の仮定})\\
&\Leftrightarrow I \setminus \left\{\: i \in
I \;\middle|\; \mathfrak{A}_i \models \psi(u_1(i), \dots, u_n(i))
\:\right\} \in \mathcal{U} & \quad
(\mathcal{U}:\text{ウルトラフィルター})\\
&\Leftrightarrow \left\{\: i \in I \;\middle|\; \mathfrak{A}_i
\not\models \psi(u_1(i), \dots, u_n(i)) \:\right\} \in \mathcal{U}\\
&\Leftrightarrow \left\{\: i \in I \;\middle|\; \mathfrak{A}_i
\models \neg \psi(u_1(i), \dots, u_n(i)) \:\right\} \in \mathcal{U}
\end{alignedat} C ⊨ ( ¬ ψ ) ([ u 1 ] , … , [ u n ]) ⇔ C ⊨ ψ ([ u 1 ] , … , [ u n ]) でない ⇔ { i ∈ I ∣ A i ⊨ ψ ( u 1 ( i ) , … , u n ( i )) } ∈ / U ⇔ I ∖ { i ∈ I ∣ A i ⊨ ψ ( u 1 ( i ) , … , u n ( i )) } ∈ U ⇔ { i ∈ I ∣ A i ⊨ ψ ( u 1 ( i ) , … , u n ( i )) } ∈ U ⇔ { i ∈ I ∣ A i ⊨ ¬ ψ ( u 1 ( i ) , … , u n ( i )) } ∈ U ( 帰納法の仮定 ) ( U : ウルトラフィルター )
φ ≡ ∃ x ψ ( x , [ u 1 ] , … , [ u n ] ) \varphi \equiv \exists x \psi(x,
[u_1], \dots, [u_n]) φ ≡ ∃ x ψ ( x , [ u 1 ] , … , [ u n ]) の時.この証明に選択公理を使う.( ⇐ ) (\Leftarrow) ( ⇐ )
の方向について述べれば十分.
S : = { i ∈ I | A i ⊨ ∃ x ψ ( x , u 1 ( i ) , … , u n ( i ) ) } S \mathrel{:=} \left\{\: i \in
I \;\middle|\; \mathfrak{A}_i \models \exists x \psi(x, u_1(i), \dots,
u_n(i)) \:\right\} S := { i ∈ I ∣ A i ⊨ ∃ x ψ ( x , u 1 ( i ) , … , u n ( i )) } とおく.u ∈ ∏ i ∈ I ∣ A i ∣ u \in
\prod_{i \in I} |\mathfrak{A}_i| u ∈ ∏ i ∈ I ∣ A i ∣ を次のように構成する.まず,
i ∈ S i \in S i ∈ S
に対しては,選択公理により A i ⊨ ψ ( u ( i ) , u 1 ( i ) , … , u n ( i ) ) \mathfrak{A}_i \models \psi(u(i), u_1(i), \dots,
u_n(i)) A i ⊨ ψ ( u ( i ) , u 1 ( i ) , … , u n ( i )) となるように適当な u ( i ) ∈ ∣ A i ∣ u(i) \in
|\mathfrak{A}_i| u ( i ) ∈ ∣ A i ∣ を取れる.i ∉ S i\notin
S i ∈ / S の場合は適当に何でもよいから ∣ A i ∣ |\mathfrak{A}_i| ∣ A i ∣
の元を取る(選択公理!!! ).すると,[ u ] [u] [ u ] が ψ ( [ u ] , [ u 1 ] , … , [ u n ] ) \psi([u], [u_1], \dots, [u_n]) ψ ([ u ] , [ u 1 ] , … , [ u n ])
を満足する.
以上より示された.
Ł oś の定理の系として,次が得られる.
φ : L -閉論理式 \varphi: L\text{-閉論理式} φ : L - 閉論理式
とするとき, ∏ i ∈ I A i / U ⊨ φ ⇔ { i ∈ I | A i ⊨ φ } ∈ U \prod_{i \in
I}\mathfrak{A}_i/\mathcal{U} \models \varphi \Leftrightarrow \left\{\: i
\in I \;\middle|\; \mathfrak{A}_i \models \varphi \:\right\} \in
\mathcal{U} i ∈ I ∏ A i / U ⊨ φ ⇔ { i ∈ I ∣ A i ⊨ φ } ∈ U
特に A i = A \mathfrak{A}_i = \mathfrak{A} A i = A
とする.このように,各 A i \mathfrak{A}_i A i
が等しい場合の超積を,特に超冪 (ウルトラパワー;ultrapower)と呼ぶ.このとき,u ∈ ∣ A ∣ u \in |\mathfrak{A}| u ∈ ∣ A ∣ について c u ( i ) = u ( i ∈ I ) c_u(i) = u \quad (i \in I) c u ( i ) = u ( i ∈ I ) により定数関数
c u ∈ I A c_u \in {}^{I} {\mathfrak{A}} c u ∈ I A
を定めれれば,写像 u ↦ [ c u ] u \mapsto [c_u] u ↦ [ c u ]
により A \mathfrak{A} A は ∏ i ∈ I A / U = I A / U \prod_{i \in I} \mathfrak{A} / \mathcal{U} =
{}^{I} {\mathfrak{A}}/\mathcal{U} ∏ i ∈ I A / U = I A / U
の部分構造と見做すことが出来る.
このとき,L \mathcal{L} L -論理式
φ ( x 1 , … , x n ) \varphi(x_1, \dots, x_n) φ ( x 1 , … , x n )
に対し次が成立する: I A / U ⊨ φ ( [ c u 1 ] , … , [ c u n ] ) ⇔ A ⊨ φ ( u 1 , … , u n ) {}^{I}
{\mathfrak{A}}/\mathcal{U} \models \varphi([c_{u_1}], \dots, [c_{u_n}])
\Leftrightarrow \mathfrak{A} \models \varphi(u_1, \dots, u_n) I A / U ⊨ φ ([ c u 1 ] , … , [ c u n ]) ⇔ A ⊨ φ ( u 1 , … , u n )
よって,A ≺ I A / U \mathfrak{A} \prec {}^{I}
{\mathfrak{A}}/\mathcal{U} A ≺ I A / U (初等拡大)である.特に,φ \varphi φ が L \mathcal{L} L -閉論理式のとき次が成立.
I A / U ⊨ φ ⇔ A ⊨ φ {}^{I} {\mathfrak{A}}/\mathcal{U} \models
\varphi \Leftrightarrow \mathfrak{A} \models \varphi I A / U ⊨ φ ⇔ A ⊨ φ
即ち,I A / U ≡ A {}^{I} {\mathfrak{A}}/\mathcal{U}
\equiv \mathfrak{A} I A / U ≡ A (初等的同値)である.
実は,「Ł oś の定理 +
ウルトラフィルターの補題」と選択公理は同値であることが知られている:
A C ⟺ \mathrm{AC} \Longleftrightarrow AC ⟺
Ł oś + ウルトラフィルターの補題
Proof. 証明から ⇒ \Rightarrow ⇒ は明らかなので,⇐ \Leftarrow ⇐ を示す.
{ X i } i ∈ I \{X_i\}_{i \in I} { X i } i ∈ I
を互いに交わらない非空集合の族とし,X = ⋃ i ∈ I X i X =
\bigcup_{i \in I} X_i X = ⋃ i ∈ I X i
とする.適当に添字を付け替えることで,X ∩ I = ∅ X \cap
I = \emptyset X ∩ I = ∅ として良い.そこで A : = X ⊔ I A
\mathrel{:=} X \sqcup I A := X ⊔ I と置く.この時,二項関係 ϵ ~ \mathrel{\tilde{\epsilon}} ϵ ~ を a ϵ ~ b ⇔ d e f ( a ∈ X ∧ b ∈ I ∧ a ∈ X b ) ∨ a = b ∈ X a \mathrel{\tilde{\epsilon}} b
\xLeftrightarrow{\mathrm{def}} (a \in X \wedge b \in I \wedge a \in X_b)
\vee a = b \in X a ϵ ~ b def ( a ∈ X ∧ b ∈ I ∧ a ∈ X b ) ∨ a = b ∈ X により定め,構造 A = ⟨ A , ϵ ~ ⟩ \mathfrak{A} = \left\langle A,
\mathrel{\tilde{\epsilon}} \right\rangle A = ⟨ A , ϵ ~ ⟩ を考える.族 { X i } i ∈ I \{X_i\}_{i \in I} { X i } i ∈ I
が選択関数を持たないと仮定する.このとき, I : = { J ⊆ I | { X j } j ∈ J は選択関数を持つ } \mathcal{I} \mathrel{:=} \left\{\: J \subseteq
I \;\middle|\; \{X_j\}_{j \in J} \text{は選択関数を持つ}
\:\right\} I := { J ⊆ I ∣ { X j } j ∈ J は選択関数を持つ } は I I I
上のイデアルとなる.イデアル I ⊆ P ( I ) \mathcal{I}
\subseteq
\mathop{\mathcal{P}}(I) I ⊆ P ( I ) とは次を満たす部分集合族のことである:
∅ ∈ I , I ∉ I \emptyset \in \mathcal{I}, I \notin
\mathcal{I} ∅ ∈ I , I ∈ / I
A ∈ I ∧ B ⊆ A ⇒ B ∈ I A \in \mathcal{I} \wedge B \subseteq
A \Rightarrow B \in \mathcal{I} A ∈ I ∧ B ⊆ A ⇒ B ∈ I
A , B ∈ I ⇒ A ∪ B ∈ I A, B \in \mathcal{I} \Rightarrow A
\cup B \in \mathcal{I} A , B ∈ I ⇒ A ∪ B ∈ I
定義を見ても判る通り,イデアルはフィルターの双対概念であり,「小さな集合」の集まりになっている.{ X i } i ∈ I \{X_i\}_{i \in I} { X i } i ∈ I
は選択関数を持たないので,I ∉ I I \notin
\mathcal{I} I ∈ / I
であり,選択関数を持つ族の部分族はやはり選択関数を持つので最初の二つの条件は大丈夫である.また,各々の選択関数の和を考えれば,I \mathcal{I} I
の二つの元に対応する和も再び選択関数を持つことがわかる.
ここで,I \mathcal{I} I
がイデアルの時,F = { X c ⊆ I | X ∈ I } \mathcal{F} = \left\{\: X^c
\subseteq I \;\middle|\; X \in \mathcal{I} \:\right\} F = { X c ⊆ I ∣ X ∈ I }
と置けば F \mathcal{F} F は I I I
上のフィルターとなる.よって,対応する族が選択関数を持たない J ⊆ I J \subseteq I J ⊆ I の全体は I I I
上のフィルターとなる.そこで,ウルトラフィルターの補題により
F ⊆ U \mathcal{F} \subseteq \mathcal{U} F ⊆ U
となるウルトラフィルター U \mathcal{U} U を取ろう.
この時,超冪 I A / U {}^{I}
{\mathfrak{A}}/\mathcal{U} I A / U を考えよう.今,A A A および ϵ ~ \mathrel{\tilde{\epsilon}} ϵ ~ の定義より
A ⊨ ∀ u ∃ v ( v ϵ ~ u ) \mathfrak{A} \models \forall u \exists v(v
\mathrel{\tilde{\epsilon}} u) A ⊨ ∀ u ∃ v ( v ϵ ~ u )
が成立している.Ł oś
の定理より ,A ≡ I A / U \mathfrak{A}
\equiv {}^{I} {\mathfrak{A}}/\mathcal{U} A ≡ I A / U であるので,I A / U ⊨ ∀ u ∃ v ( v ϵ ~ u ) {}^{I} {\mathfrak{A}}/\mathcal{U} \models \forall
u \exists v(v \mathrel{\tilde{\epsilon}} u) I A / U ⊨ ∀ u ∃ v ( v ϵ ~ u )
となる.そこで,特に u = [ i d I ] u =
[\mathrm{id}_I] u = [ id I ] と置けば,ある v ∈ I A v
\in {}^{I} {\mathfrak{A}} v ∈ I A が存在して [ v ] ϵ ~ [ i d I ] [v] \mathrel{\tilde{\epsilon}}
[\mathrm{id}_I] [ v ] ϵ ~ [ id I ] となる.すると,超積の定義から, J : = { i ∈ I | v ( i ) ϵ ~ i d I ( i ) } ∈ U J \mathrel{:=} \left\{\: i \in
I \;\middle|\; v(i) \mathrel{\tilde{\epsilon}} \mathrm{id}_I(i)
\:\right\} \in \mathcal{U} J := { i ∈ I ∣ v ( i ) ϵ ~ id I ( i ) } ∈ U となる.すると,ϵ ~ \mathrel{\tilde{\epsilon}} ϵ ~ の定義より
v ( i ) ϵ ~ i ⇔ v ( i ) ∈ X i v(i) \mathrel{\tilde{\epsilon}} i
\Leftrightarrow v(i) \in X_i v ( i ) ϵ ~ i ⇔ v ( i ) ∈ X i であるので,J = { i ∈ I | v ( i ) ∈ X i } ∈ U J = \left\{\: i \in I \;\middle|\; v(i) \in X_i
\:\right\} \in \mathcal{U} J = { i ∈ I ∣ v ( i ) ∈ X i } ∈ U となる.よって,f ↾ J f \upharpoonright J f ↾ J は { X j } j ∈ J \{X_j\}_{j \in J} { X j } j ∈ J の選択関数である.従って J ∈ I J \in \mathcal{I} J ∈ I であり,I ∖ J ∈ F ⊆ U I \setminus J \in \mathcal{F} \subseteq
\mathcal{U} I ∖ J ∈ F ⊆ U となる.すると ( 1 ) (1) ( 1 ) と合わせて ∅ = J ∩ ( I ∖ J ) ∈ U \emptyset = J \cap (I \setminus J) \in
\mathcal{U} ∅ = J ∩ ( I ∖ J ) ∈ U となり,U \mathcal{U} U
がフィルターであることに矛盾する.
自然数の超準モデルと超準解析
ここでは,超冪を用いて自然数の超準モデルを構成する.超準モデル (non-standard
model )というのは,通常期待されるような物と異なるモデルでありながら,一階述語論理の範囲内では全く同じ性質を持つようなモデルのことである.また,「超準」という言葉からもわかるように,午前中に扱った超準解析とも関係のある話題である.
まず,午前中 [6] にも出て来た
N \mathbb{N} N 上の Fréchet
フィルターを考える. F 0 : = { X ⊆ N | N ∖ X は有限集合 } \mathcal{F}_0
\mathrel{:=} \left\{\: X \subseteq \mathbb{N} \;\middle|\; \mathbb{N}
\setminus X \text{は有限集合} \:\right\} F 0 := { X ⊆ N ∣ N ∖ X は有限集合 }
ウルトラフィルターの補題により,この F 0 \mathcal{F}_0 F 0
を含むようなウルトラフィルター U \mathcal{U} U
を取ることが出来る.このウルトラフィルターはウルトラフィルターの補題によって取り,その証明には選択公理が使われるので,一意なものではなく複数のものがありうることを注意しておく.
以下では,順序環の言語 L O R = ⟨ + , ⋅ , ≤ ⟩ \mathcal{L}_{\mathrm{OR}} = \left\langle +, \cdot,
\leq \right\rangle L OR = ⟨ + , ⋅ , ≤ ⟩ を考えて,順序環 Z = ⟨ Z , + , ⋅ , ≤ ⟩ \mathfrak{Z} = \left\langle \mathbb{Z}, +, \cdot,
\leq \right\rangle Z = ⟨ Z , + , ⋅ , ≤ ⟩ の U \mathcal{U} U による超冪 ∗ Z = N Z / U {}^{*} {\mathfrak{Z}} = {}^{\mathbb{N}}
{\mathfrak{Z}}/\mathcal{U} ∗ Z = N Z / U を考える. Ł oś
の定理の系より Z ≺ ∗ Z \mathfrak{Z} \prec {}^{*}
{\mathfrak{Z}} Z ≺ ∗ Z であった.即ち,φ \varphi φ を L O R ( Z ) \mathcal{L}_{\mathrm{OR}}(\mathfrak{Z}) L OR ( Z ) -論理式とすると,
N Z / U ⊨ φ ⇔ Z ⊨ φ {}^{\mathbb{N}} {\mathfrak{Z}}/\mathcal{U}
\models \varphi
\Leftrightarrow \mathfrak{Z} \models \varphi N Z / U ⊨ φ ⇔ Z ⊨ φ
が成立するのだった.N \mathbb{N} N
上の恒等写像 i d N id_\mathbb{N} i d N
を考えると,午前中の議論と同様にして ω : = [ i d N ] \omega
\mathrel{:=} [id_\mathbb{N}] ω := [ i d N ]
は無限大の自然数となっていることがわかり,他にも [ i d − 1 ] [id - 1] [ i d − 1 ] や [ i d 2 ] [id^2] [ i d 2 ]
などを考えれば,こうした無限大の自然数は無数に存在するのだった.このような無限大の自然数のことを,超有限自然数 と呼ぶ.また,
− [ i d ] < − n -[id] < -n − [ i d ] < − n となるので,Z \mathfrak{Z} Z
は負の無限大の整数も持つことになる.午前中の超準解析の導入においては,ここでの
Z \mathfrak{Z} Z の代わりに R = ⟨ R , N , Z , Q , < , ≤ , + , ⋅ , ∣ ⋅ ∣ , sin , … ⟩ \mathbb{R} = \left\langle \mathbb{R}, \mathbb{N},
\mathbb{Z}, \mathbb{Q}, <, \leq, +, \cdot , |\cdot|, \sin, \dots
\right\rangle R = ⟨ R , N , Z , Q , < , ≤ , + , ⋅ , ∣ ⋅ ∣ , sin , … ⟩ というような構造の超冪 ∗ R {}^{*} {\mathbb{R}} ∗ R
を取ったと考えることが出来る.ここで,N , Z , Q \mathbb{N}, \mathbb{Z}, \mathbb{Q} N , Z , Q
はそれぞれ自然数,整数,有理数を表す一変数述語記号であり,sin \sin sin
以降は必要な「関数」に対応する記号を列挙していると思えばよい.
すると,例えば最大値の原理の証明の部分は次のように考えることが出来る.午前中では,まず連続であるということの超実数を使った特徴付けを行い,それを用いた超準的な議論により最大値の原理が
∗ R {}^{*} {\mathbb{R}} ∗ R
で成立する事を証明した.より詳しく述べよう.まず,Ł oś
の定理の系より R ≺ ∗ R \mathbb{R} \prec {}^{*}
{\mathbb{R}} R ≺ ∗ R なので,L ( R ) \mathcal{L}(\mathbb{R}) L ( R ) -論理式が R \mathbb{R} R で成り立つことと ∗ R {}^{*} {\mathbb{R}} ∗ R
で成り立つことは同値である.数列を自然数以外では値 0 0 0 を取る関数だと思えば,各数列 a a a に対して「有限列 a a a は最大値を持つ」という事を L ( R ) \mathcal{L}(\mathbb{R}) L ( R ) -論理式で書ける.これは
R \mathbb{R} R
で明らかに成立するので,∗ R {}^{*}
{\mathbb{R}} ∗ R にもっていっても真である.特に,∗ R {}^{*} {\mathbb{R}} ∗ R
での超有限の長さの有限列も最大値を持つことになる.この事を使うと,各関数記号
f f f について,f f f が ∗ [ 0 , 1 ] {}^{*}
{[0,1]} ∗ [ 0 , 1 ] で連続関数ならばある点で最大値を持つことが(∗ R {}^{*} {\mathbb{R}} ∗ R で)示せる.
ここで,各々の関数 f f f
が「連続である」「最大値を取る」といった事も言語 L ( R ) \mathcal{L}(\mathbb{R}) L ( R )
で書ける条件式であるので,今度は同じことが R \mathbb{R} R
でも成り立つ.このように,通常の実数や関数に関する命題である限り,超実数を使って
∗ R {}^{*} {\mathbb{R}} ∗ R
でその命題を証明したとしても,R \mathbb{R} R
でもその定理が成立するのだ.『《ある意味》で R \mathbb{R} R で成り立つことは ∗ R {}^{*} {\mathbb{R}} ∗ R で成り立ち,∗ R {}^{*} {\mathbb{R}} ∗ R で成り立つことは
R \mathbb{R} R
で成り立つ』の「ある意味」というのはこういう意味である.
ところで,このような無限大の自然数が存在するような体系では面白いことが起こる.再び
Z \mathfrak{Z} Z
とその超冪で考えよう.今,任意の整数 n n n について,n n n か n − 1 n-1 n − 1 のいずれかは偶数である.即ち, Z ⊨ ∀ n ∃ m ( n = 2 ⋅ m ∨ n − 1 = 2 ⋅ m ) \mathfrak{Z} \models \forall n \exists m (n = 2
\cdot m \vee n - 1 = 2\cdot m) Z ⊨ ∀ n ∃ m ( n = 2 ⋅ m ∨ n − 1 = 2 ⋅ m )
が成立するのであった.すると,Ł oś の定理の系 2 \href{\#los-power}{2} 2 から ∗ Z ⊨ ∀ n ∃ m ( n = 2 ⋅ m ∨ n − 1 = 2 ⋅ m ) {}^{*} {\mathfrak{Z}} \models \forall n \exists m
(n = 2 \cdot m \vee n - 1 = 2\cdot m) ∗ Z ⊨ ∀ n ∃ m ( n = 2 ⋅ m ∨ n − 1 = 2 ⋅ m ) である.よって [ i d ] [id] [ i d ] か [ i d ] − 1 [id]-1 [ i d ] − 1 のいずれかが 2 2 2 で割れることになる.割れる方を 2 2 2
で割ってやると,これも超有限の自然数になっている.この手続を繰り返して,∗ Z {}^{*} {\mathfrak{Z}} ∗ Z の元の狭義減少列
α 0 > α 1 > ⋯ > α n > ⋯ \alpha_0 > \alpha_1 > \dots >
\alpha_n > \cdots α 0 > α 1 > ⋯ > α n > ⋯ が得られる.これらはいずれも 0 0 0
より大きい.よって自然数の狭義減少列が得られたことになる.
しかし,自然数の整列性から狭義減少列は存在しない筈だ.どういうことか?今我々が考えているのは,「一階述語論理」で書ける範囲の理論であった.つまり,「狭義減少列が存在しない」とか「自然数は整列する」といった概念は,言語
L O R \mathcal{L}_{\mathrm{OR}} L OR
を使った一階述語論理では書けないと云うことが,この事実の伝える事なのである.自然数の整列性は,「任意の自然数からなる部分集合に最小値が存在する」という形で述べられるが,この「部分集合」に対する量化が一階述語論理では行えないのである.このことは,「自然数の部分集合」全体は非可算無限個存在するが,自然数の理論自体は可算言語で記述されるため,高々可算個の部分集合しか扱えない,ということを考えるとちょっと分かり易いのではないだろうか.
そうはいっても,「集合と位相」などの講義でそういったことを証明したぞ,と思われるかもしれない.それに,部分集合も扱えないのであればイデアルなどを考えることも出来ず,一階述語論理など考えても仕方がないのではないか?と云う疑問も出て来るだろう.それにもかかわらず数理論理学が主に一階述語論理を対象としているのは概ね次のような事情による.
環や群の公理といったものは,対応する一階述語論理上の理論を定める.こうした理論をZFC集合論の中で解釈して,その内部で様々な操作や議論を行う,というのが普段我々が「数学」でやっていることなのである.その意味で,現代数学は実質的に一階述語論理とその上のZFC集合論の内部で展開出来るということが知られている.「選択公理より極大イデアルが存在するので〜」というような言明の意味は,そういったことである.論理学的にも,一階述語論理は完全性やコンパクト性など扱い易い性質を持っているため,モデル理論や集合論は一階述語論理を使って展開されているのである.また,一階述語論理でその「部分集合」を直に扱うことが出来ないとしても,上の超準解析の議論でやったように,必要な定数や関数などを予め言語に付け加えてしまえば大体おなじようなことが出来る場合が多い.
Löwenheim-Skolem の定理
最後に,モデルの濃度に関わる Löwenheim-Skolem
の定理を紹介して終わりにしよう.いきなり主張を述べてしまおう.
L \mathcal{L} L を可算言語,B \mathfrak{B} B を無限 L \mathcal{L} L -構造とする.
無限基数 κ ≤ c a r d ( B ) \kappa \leq
\mathop{\mathrm{card}}(\mathfrak{B}) κ ≤ card ( B ) と c a r d ( S ) ≤ κ \mathop{\mathrm{card}}(S) \leq \kappa card ( S ) ≤ κ
となる S ⊆ ∣ B ∣ S \subseteq |\mathfrak{B}| S ⊆ ∣ B ∣
に対し,S S S を含み濃度 κ \kappa κ となるような初等部分構造 A ≺ B \mathfrak{A} \prec \mathfrak{B} A ≺ B
が存在する.
c a r d ( B ) ≤ κ \mathop{\mathrm{card}}(\mathfrak{B})
\leq \kappa card ( B ) ≤ κ ならば,濃度 κ \kappa κ となるような初等拡大 A ≻ B \mathfrak{A} \succ \mathfrak{B} A ≻ B
が存在する.
証明のため,次の初等部分構造の判定条件をまず証明しておく:
B : L \mathfrak{B}:
\mathcal{L} B : L -構造,A ⊆ B A \subseteq
B A ⊆ B とする.この時,次は同値:
A A A に自然な構造を入れることで
A ≺ B \mathfrak{A} \prec \mathfrak{B} A ≺ B
となる.
任意の L ( A ) \mathcal{L}(\mathfrak{A}) L ( A ) -論理式 φ ( x ) \varphi(x) φ ( x ) に関して, B ⊨ ∃ x φ ( x ) ⟹ \mathfrak{B} \models \exists x \varphi(x)
\Longrightarrow B ⊨ ∃ x φ ( x ) ⟹ ある a ∈ A a \in
A a ∈ A があって B ⊨ φ ( a ) \mathfrak{B} \models
\varphi(a) B ⊨ φ ( a )
Proof. 1 ⟹ 2 1 \Longrightarrow
2 1 ⟹ 2 は自明なので,2 ⟹ 1 2 \Longrightarrow
1 2 ⟹ 1 を示す.まずは部分構造となることを示す.
B \mathfrak{B} B は L \mathcal{L} L -論理式なので,定数記号 c c c に対し,B ⊨ ∃ x ( x = c ) \mathfrak{B} \models \exists x (x = c) B ⊨ ∃ x ( x = c )
となる.すると 2 2 2 よりある a ∈ A a \in A a ∈ A が存在して B ⊨ a = c \mathfrak{B} \models a = c B ⊨ a = c となる.よって
c A = a ∈ A c^\mathfrak{A} = a \in A c A = a ∈ A
である.関数記号の場合についても同様である.
そこで,初等部分構造となる事を示す.φ \varphi φ を L ( A ) \mathcal{L}(\mathfrak{A}) L ( A ) -論理式として,
A ⊨ φ ⇔ B ⊨ φ \label e q n : e l e m e n t a r y \mathfrak{A} \models \varphi
\Leftrightarrow \mathfrak{B} \models
\varphi\label{eqn:elementary} A ⊨ φ ⇔ B ⊨ φ \label e q n : e l e m e n t a ry を示せばよい.φ \varphi φ の構成に関する帰納法で証明する.
φ \varphi φ が原子論理式であれば,A \mathfrak{A} A が B \mathfrak{B} B の部分構造であることから
( 2 ) (2) ( 2 ) は成立する.また,φ \varphi φ が Boole
結合の形になっているときも明らかである.φ ≡ ∃ x ψ ( x ) \varphi \equiv \exists x \psi(x) φ ≡ ∃ x ψ ( x ) の時は,
B ⊨ ∃ x ψ ( x ) ⇔ ある a ∈ A があって B ⊨ ψ ( a ) ( 仮定 ) ⇔ ある a ∈ A があって A ⊨ ψ ( a ) ( 帰納法の仮定 ) ⇔ A ⊨ ∃ x ψ ( x ) \begin{alignedat}{2}
\mathfrak{B} \models \exists x \psi(x) &\Leftrightarrow
\text{ある} a \in A \text{があって} \mathfrak{B} \models \psi(a)
&\qquad& (\text{仮定})\\
& \Leftrightarrow \text{ある} a \in A \text{があって} \mathfrak{A}
\models \psi(a) && (\text{帰納法の仮定}) \\
& \Leftrightarrow \mathfrak{A} \models \exists x \psi(x)
\end{alignedat} B ⊨ ∃ x ψ ( x ) ⇔ ある a ∈ A があって B ⊨ ψ ( a ) ⇔ ある a ∈ A があって A ⊨ ψ ( a ) ⇔ A ⊨ ∃ x ψ ( x ) ( 仮定 ) ( 帰納法の仮定 )
よって示された
この条件が述べているのは,「部分構造が初等部分構造になれないのは,論理式を満たす『解』が足りないからである」ということである.そこで,元となる
S S S
に足りない解を付け足していくことで Löwenheim-Skolem
の定理を証明しよう.
Löwenheim-Skolem の定理の証明.
これは特に下方 Löwenheim-Skolem
の定理 と呼ばれる.また,単に Löwenheim-Skolem
の定理と云った場合こちらだけを指すことも多い.
先の宣言通り,S S S
に足りない元を付け加えていって,それが高々 κ \kappa κ 個で足りることを示す. B B B の部分集合の上昇列 A i ( i ≤ ω ) A_i (i \leq \omega) A i ( i ≤ ω )
を次のようにして構成する.
まず,A 0 = S A_0 = S A 0 = S とする.今,L ( A n ) \mathcal{L}(A_n) L ( A n ) 論理式は L \mathcal{L} L の記号と A n A_n A n
の元の有限列で書けるので,その個数は高々 ( c a r d ( L ) + c a r d ( A n ) + ℵ 0 ) < ω ≤ κ < ω = κ (\mathop{\mathrm{card}}(L) +
\mathop{\mathrm{card}}(A_n) + \aleph_0)^{<\omega} \leq
\kappa^{<\omega} = \kappa ( card ( L ) + card ( A n ) + ℵ 0 ) < ω ≤ κ < ω = κ
となる.ここで選択公理を使っている .任意の無限基数
κ \kappa κ に対し,その有限列全体の濃度
κ < ω \kappa^{<\omega} κ < ω が κ \kappa κ
と一致することは選択公理と同値である.
そこで,L ( A n ) \mathcal{L}(A_n) L ( A n ) -論理式
φ ( x ) \varphi(x) φ ( x ) について,a φ ∈ B a_\varphi \in B a φ ∈ B を次のように定める:
a φ = { B ⊨ φ ( a ) となるような a ∈ B ( B ⊨ ∃ x φ ( x ) ) 適当な B の元 ( otherwise ) a_\varphi = \begin{cases}
\mathfrak{B} \models \varphi(a) \text{となるような} a \in B &
(\mathfrak{B} \models \exists x \varphi(x))\\
\text{適当な} B \text{の元} & (\text{otherwise})
\end{cases} a φ = { B ⊨ φ ( a ) となるような a ∈ B 適当な B の元 ( B ⊨ ∃ x φ ( x )) ( otherwise ) 再び,ここでa φ a_\varphi a φ
を取るときにも選択公理を使っている .これを用いて,
A n + 1 = A n ∪ { a φ | φ ( x ) : L ( A n ) -論理式 } A_{n+1} = A_n \cup
\left\{\: a_\varphi \;\middle|\; \varphi(x):
\mathcal{L}(A_n)\text{-論理式} \:\right\} A n + 1 = A n ∪ { a φ ∣ φ ( x ) : L ( A n ) - 論理式 } と定め,A = ⋃ n < ω A n A = \bigcup_{n < \omega} A_n A = ⋃ n < ω A n
と置く.明らかに,c a r d ( A ) ≤ κ \mathop{\mathrm{card}}(A)
\leq \kappa card ( A ) ≤ κ である.後は,A ⊆ B A
\subseteq \mathfrak{B} A ⊆ B が Tarski-Vaught
の判定条件を満たすことを云えばよい.φ ( x ) \varphi(x) φ ( x ) を L ( A ) \mathcal{L}({\mathfrak{A}}) L ( A ) -論理式として,B ⊨ ∃ x φ ( x ) \mathfrak{B} \models \exists x \varphi(x) B ⊨ ∃ x φ ( x )
とする.この時,A A A の作り方よりある
n < ω n < \omega n < ω が存在し,φ ( x ) \varphi(x) φ ( x ) は L ( A n ) \mathcal{L}(\mathfrak{A}_n) L ( A n ) -論理式となる.A n A_n A n の構成の仕方より,φ ( x ) \varphi(x) φ ( x ) は A n + 1 A_{n+1} A n + 1 に解 a φ ∈ A n + 1 ⊆ A a_\varphi \in A_{n+1} \subseteq A a φ ∈ A n + 1 ⊆ A
を持つ.よって B ⊨ φ ( a φ ) \mathfrak{B} \models
\varphi(a_\varphi) B ⊨ φ ( a φ ) となるので,A ≺ B \mathfrak{A} \prec \mathfrak{B} A ≺ B
である.特に,c a r d ( S ) = κ \mathop{\mathrm{card}}(S) =
\kappa card ( S ) = κ とすれば,A \mathfrak{A} A の濃度は κ \kappa κ となる.
こちらは上昇 Löwenheim-Skolem
の定理 と呼ばれ.証明には次のコンパクト性定理を使う:
理論 T \mathcal{T} T
の任意の有限部分集合がモデルを持つなら,T \mathcal{T} T もモデルを持つ.
この事の証明は Ł oś
の定理を使うととても鮮かに出来るので,各自で証明してみて欲しい(ここではやらない).これさえ認めれば,次のようにして示せる.
c α ( α < κ ) c_\alpha \, (\alpha < \kappa) c α ( α < κ )
を L ( B ) \mathcal{L}(\mathfrak{B}) L ( B )
に含まれない互いに異なる定数記号とし,L ′ = L ( B ) ∪ { c α | α < κ } \mathcal{L}' = \mathcal{L}(\mathfrak{B}) \cup
\left\{\: c_\alpha \;\middle|\; \alpha <
\kappa \:\right\} L ′ = L ( B ) ∪ { c α ∣ α < κ } とする.ここで,T = D i a g ( B ) ∪ { c α ≠ c β | α < β < κ } \mathcal{T} = \mathrm{Diag}(\mathfrak{B}) \cup
\left\{\: c_\alpha \neq c_\beta \;\middle|\; \alpha < \beta <
\kappa \:\right\} T = Diag ( B ) ∪ { c α = c β ∣ α < β < κ } と置く.T \mathcal{T} T の任意の有限部分集合 T ⊆ T T \subseteq \mathcal{T} T ⊆ T
がモデルを持つことを示す.
まず,初等設計図の定義から B ⊨ T ∩ D i a g ( B ) \mathfrak{B}
\models T \cap \mathrm{Diag}(\mathfrak{B}) B ⊨ T ∩ Diag ( B ) である.T T T の残りは { c α 0 ≠ c β 0 , … , c α n ≠ c β n } \{c_{\alpha_0} \neq c_{\beta_0}, \dots,
c_{\alpha_n} \neq c_{\beta_n}\} { c α 0 = c β 0 , … , c α n = c β n } の形である.今,B \mathfrak{B} B は無限構造であるので,各
c α k , c β k c_{\alpha_k}, c_{\beta_k} c α k , c β k
が異なるように上手く元を取ってくることが出来る.よって B ⊨ T \mathfrak{B} \models T B ⊨ T .従って T \mathcal{T} T
の任意の有限部分集合がモデルを持つので,A ⊨ T \mathfrak{A} \models \mathcal{T} A ⊨ T
となるような L ′ \mathcal{L}' L ′ -構造
C \mathfrak{C} C が得られる.a ∈ B a \in B a ∈ B と,C \mathfrak{C} C での名前の解釈 c a C c_a^\mathfrak{C} c a C
を同一視してやることにより B ≺ C \mathfrak{B}
\prec \mathfrak{C} B ≺ C となり,更に T \mathcal{T} T のモデルである事から C \mathfrak{C} C は κ \kappa κ 個の異なる元を持つので,κ ≤ c a r d ( C ) \kappa \leq\mathop{\mathrm{card}}(C) κ ≤ card ( C )
である.そこで,下方 Löwenheim-Skolem を適用して濃度 κ \kappa κ となるモデル A \mathfrak{A} A
を取れば,これが求めるものとなる.
実は,Löwenheim-Skolem
の定理は選択公理と同値 である.詳しい証明は第一回選択公理オフの際に非公式にやったらしいので,今から
@alg_d氏が一分で証明してくれます .
Löwenheim-Skolem
の定理は,一階述語論理ではモデルの濃度を限定出来ないという主張である.これは単なる選択公理にまつわる不思議現象ではなく,
しっかりとした応用がある.
ZF が無矛盾だとすると,Gödel の完全性定理により V ⊨ Z F V \models \mathrm{ZF} V ⊨ ZF となるようなモデル
V V V
が存在する.無限公理があるので,特に V V V
は無限モデルである.よって,Löwenheim-Skolem
の定理より,集合論の可算モデル U ⊆ V U \subseteq V U ⊆ V
を取ることが出来る.えっ,でも Cantor の対角線論法によれば,ℵ 0 < 2 ℵ 0 \aleph_0 < 2^{\aleph_0} ℵ 0 < 2 ℵ 0
だよね?モデルが可算だったら,実数のような連続体濃度の集合は存在しなくなっちゃうんじゃないの??矛盾だ!!!という声が聞こえてきそうだ.しかし,これは矛盾ではない.そもそも「可算」などの濃度の概念がどのようにして定義されたか思い出そう.集合
X X X と Y Y Y の濃度が等しいというのは,X X X と Y Y Y
の間に全単射が存在するということであった.つまり,集合の濃度はその濃度の証拠となる関数の存在に依存する のだ.この場合,U U U が可算であることを保証する全単射は
V V V には属するが,U U U には存在しないのだ.よって,V V V から見れば U U U は可算集合だが,U U U
の中から見れば全体は可算ではないし,それどころか「集合」ですらない,ということになる.
こんな可算モデルを取って何が嬉しいのだろうか.集合論ではある命題が ZF
から独立であることを示す為に強制法 という手法が良く使われる.選択公理も,この強制法を用いて独立性が示される重要な例である.強制法で用いられる道具の存在を示すために,ZF
の可算モデルが取れるという事は非常に重要な前提条件になっているのである.
参考文献
[1]
田中一之, 坪井明人, and 野本和幸,
ゲーデルと20世紀の論理学(ロジック)2 完全性定理とモデル理論 ,
vol. 2. 東京大学出版会, 2011.
[2]
新井敏康, 数学基礎論 . 岩波書店,
2011.
[4]
古森雄一 and 小野寛晰,
現代数理論理学序説 . 日本評論社, 2010.
[5]
坪井明人, モデルの理論 . 河合出版,
1997.
[8]
R.
Goldblatt, Lectures on the hyperreals: An introduction to
nonstandard analysis . 1998.
[9]
齋藤正彦, 〔増補新版〕超積と超準解析
ノンスタンダード・アナリシス . 東京図書株式会社, 1992.
[10]
田中尚夫,
選択公理と数学【増訂版】──発生と論争,そして確立への道 . 遊星社,
2005.
[11]
K.
Kunen, Set theory , vol. 34. College Publications, 2011.
[13]
竹内外史, 新装版 集合とはなにか .
講談社ブルーバックス, 2001.
[14]
S.
Awodey, Category theory , vol. 52. Oxford University Press,
2010.