数学の作り方 How to make Mathematics

第3章 健全性と完全性(命題論理)

「導ける」と「正しい」は一致するのか

ここまでで2つの正しさを手にしました。意味論の φ\models\varphi(全付値で真)と、構文の φ\vdash\varphi (規則で導ける)。定義はまったく無関係です。片方は無限の付値を見渡し、もう片方は有限の記号操作。 この2つがぴったり一致するなら、それは驚くべきことです。

φ    φ.\vdash\varphi \iff \models\varphi.

左向き(\vdash\Rightarrow\models)を健全性、右向き(\models\Rightarrow\vdash)を完全性といいます。 健全性は「導けたものは本当に正しい」(体系が嘘をつかない)、完全性は「正しいものは必ず導ける」 (体系に穴が無い)。この章では両方を完全に証明します。とくに完全性の証明で編み出す 「無矛盾なら充足可能」という技法(極大無矛盾集合)は、次章以降の述語論理の完全性 (ゲーデル、第7章)の縮小版であり、この分野で最も重要な証明技術です。

健全性=導けたものは正しい。完全性=正しいものは導ける。両者で \vdash\models が一致する。

健全性

定理 健全性定理

ΓφΓφ\Gamma\vdash\varphi \Rightarrow \Gamma\models\varphi。特に φφ\vdash\varphi\Rightarrow\models\varphi

証明

Γφ\Gamma\vdash\varphi の証明 θ1,,θn=φ\theta_1,\dots,\theta_n=\varphi の各 θk\theta_k について 「Γ\Gamma を真にする任意の付値 vvvˉ(θk)=T\bar v(\theta_k)=\mathrm T」を kk に関する帰納法で示す。

まず公理はすべてトートロジーである(真理値表で確認できる。例:(A1) φ(ψφ)\varphi\to(\psi\to\varphi)vˉ(φ)=F\bar v(\varphi)=\mathrm F なら前件が偽で真、vˉ(φ)=T\bar v(\varphi)=\mathrm T なら後件 ψφ\psi\to\varphi が真で真。(A2),(A3) も同様)。

  • θk\theta_k が公理なら、トートロジーゆえ全付値で真、特に vv で真。
  • θkΓ\theta_k\in\Gamma なら、vvΓ\Gamma を真にするので真。
  • θk\theta_kθi, θj=θiθk\theta_i,\ \theta_j=\theta_i\to\theta_k からの MP なら、帰納法の仮定で vˉ(θi)=vˉ(θiθk)=T\bar v(\theta_i)=\bar v(\theta_i\to\theta_k)=\mathrm T\to の真理値規則より vˉ(θk)=T\bar v(\theta_k)=\mathrm T

よって vˉ(φ)=T\bar v(\varphi)=\mathrm Tvv は任意だったから Γφ\Gamma\models\varphi。∎

健全性の証明は素直です。公理が真で、MP が真を保つ——この2点だけで、導出のどの段も真だと言える。 逆の完全性は、はるかに深い議論を要します。

無矛盾性と充足可能性

完全性を「\models\Rightarrow\vdash」の形で直接示すのは難しいので、対偶と、意味論・構文の橋になる次の言葉を使います。

定義 無矛盾

論理式の集合 Γ\Gamma無矛盾(consistent)とは、ある論理式 φ\varphi について Γφ\Gamma\vdash\varphiΓ¬φ\Gamma\vdash\lnot\varphi が同時には成り立たないこと。 (同値:Γ⊬\Gamma\not\vdash\bot。矛盾した集合からは任意の式が導ける=爆発律による。)

完全性の核心は次のモデル存在定理に凝縮されます。「証明で矛盾しないもの(構文)は、必ず現実のモデルをもつ(意味論)」。

定理 モデル存在定理(命題論理)

Γ\Gamma が無矛盾ならば、Γ\Gamma は充足可能(Γ\Gamma の全要素を真にする付値が存在)。

これさえ言えれば完全性は一瞬で出ます(後述)。証明は2段構え:(1) 無矛盾な Γ\Gamma を、 これ以上式を足せない極限まで膨らませ(極大無矛盾集合)、(2) その極大集合から付値を読み取る、という流れです。

完全性の証明

段階1:リンデンバウムの補題(極大無矛盾集合への拡大)

定義 極大無矛盾集合

Δ\Delta極大無矛盾とは、無矛盾であって、かつ Δ\Delta に属さないどの論理式を加えても矛盾すること。

補題 リンデンバウムの補題

任意の無矛盾集合 Γ\Gamma は、ある極大無矛盾集合 ΔΓ\Delta\supseteq\Gamma に拡大できる。

証明

論理式は可算個なので φ0,φ1,φ2,\varphi_0,\varphi_1,\varphi_2,\dots と一列に並べられる。Δ0=Γ\Delta_0=\Gamma とし、 Δn+1={Δn{φn}(Δn{φn} が無矛盾)Δn(そうでない)\Delta_{n+1}=\begin{cases}\Delta_n\cup\{\varphi_n\} & (\Delta_n\cup\{\varphi_n\}\ \text{が無矛盾})\\ \Delta_n & (\text{そうでない})\end{cases} と定める。各 Δn\Delta_n は無矛盾(帰納的に)。Δ=nΔn\Delta=\bigcup_n\Delta_n とおく。

Δ\Delta は無矛盾:もし Δ\Delta\vdash\bot なら、その証明は有限個の式しか使わないので、ある Δn\Delta_n で すでに Δn\Delta_n\vdash\bot となり無矛盾性に反する。

Δ\Delta は極大:φnΔ\varphi_n\notin\Delta とすると、Δn+1\Delta_{n+1} の定め方から Δn{φn}\Delta_n\cup\{\varphi_n\} は矛盾していた。 よって Δ{φn}Δn{φn}\Delta\cup\{\varphi_n\}\supseteq\Delta_n\cup\{\varphi_n\} も矛盾する。∎

「式を一つずつ吟味し、足しても矛盾しないなら足す」を全論理式について行う。有限性(証明は有限個しか使わない)が、 無限回の操作の後でも無矛盾性を保証する要です。可算だから番号づけできましたが、非可算な言語では ここでツォルンの補題(選択公理)を使います——次章以降の伏線です。

段階2:極大無矛盾集合の性質

補題 極大無矛盾集合の完全性

Δ\Delta が極大無矛盾なら、任意の論理式 φ,ψ\varphi,\psi について: (a)Δφ    φΔ\Delta\vdash\varphi \iff \varphi\in\Delta(演繹で閉じている)。 (b)φΔ\varphi\in\Delta または ¬φΔ\lnot\varphi\in\Delta のちょうど一方が成り立つ。 (c)(φψ)Δ    (φΔ(\varphi\to\psi)\in\Delta \iff (\varphi\notin\Delta または ψΔ)\psi\in\Delta)

証明

(a)\Leftarrow は自明。\RightarrowΔφ\Delta\vdash\varphi かつ φΔ\varphi\notin\Delta とすると、極大性より Δ{φ}\Delta\cup\{\varphi\} は矛盾、演繹定理から Δ¬φ\Delta\vdash\lnot\varphi。これと Δφ\Delta\vdash\varphiΔ\Delta が矛盾し不合理。

(b)両方属すれば Δ\Delta が矛盾するので、多くて一方。少なくとも一方:φΔ\varphi\notin\Delta なら極大性で Δ{φ}\Delta\cup\{\varphi\} は矛盾、演繹定理で Δ¬φ\Delta\vdash\lnot\varphi、(a) より ¬φΔ\lnot\varphi\in\Delta

(c)\Rightarrow(φψ)Δ(\varphi\to\psi)\in\Delta かつ φΔ\varphi\in\Delta なら MP で Δψ\Delta\vdash\psi、(a) で ψΔ\psi\in\Delta\LeftarrowφΔ\varphi\notin\Delta なら (b) で ¬φΔ\lnot\varphi\in\Delta¬φφψ\lnot\varphi\vdash\varphi\to\psi(爆発律的に導ける)ゆえ (φψ)Δ(\varphi\to\psi)\in\DeltaψΔ\psi\in\Delta なら (A1) と MP で (φψ)Δ(\varphi\to\psi)\in\Delta。∎

(b)(c) が言っているのは、極大無矛盾集合が真理値表の規則そのものを満たすということ。 「Δ\Delta に属する = 真」とみなせば、¬\lnot\to も付値の規則どおりに振る舞う。これで付値が作れます。

段階3:真理補題とモデル存在定理

証明

ΔΓ\Delta\supseteq\Gamma を極大無矛盾集合(リンデンバウム)とし、付値を v(p):=T    pΔv(p):=\mathrm T \iff p\in\Delta で定める。真理補題「任意の論理式 φ\varphi について vˉ(φ)=T    φΔ\bar v(\varphi)=\mathrm T \iff \varphi\in\Delta」を 構造的帰納法で示す。原子式は vv の定義そのもの。¬φ\lnot\varphivˉ(¬φ)=T    vˉ(φ)=F    φΔ    ¬φΔ\bar v(\lnot\varphi)=\mathrm T \iff \bar v(\varphi)=\mathrm F \iff \varphi\notin\Delta \iff \lnot\varphi\in\Delta(最後は補題(b))。φψ\varphi\to\psi:真理値規則と補題(c) が そのまま対応する。

よって ΔΓ\Delta\supseteq\Gamma の全要素が vv で真、すなわち Γ\Gamma は充足可能。モデル存在定理が示せた。∎

定理 完全性定理(命題論理)

ΓφΓφ\Gamma\models\varphi \Rightarrow \Gamma\vdash\varphi

証明

対偶を示す。Γ⊬φ\Gamma\not\vdash\varphi と仮定する。すると Γ{¬φ}\Gamma\cup\{\lnot\varphi\} は無矛盾 (もし矛盾すれば演繹定理から Γ¬¬φ\Gamma\vdash\lnot\lnot\varphi、二重否定除去で Γφ\Gamma\vdash\varphi となり仮定に反する)。 モデル存在定理より Γ{¬φ}\Gamma\cup\{\lnot\varphi\} は充足可能——Γ\Gamma を真にし φ\varphi を偽にする付値がある。 これは Γφ\Gamma\models\varphi を否定する。ゆえに Γ⊭φ\Gamma\not\models\varphi。∎

健全性とあわせ、\vdash\models は完全に一致します。有限の記号操作で、無限の付値にわたる真理を 過不足なく捉えられる——論理学最初の到達点です。

コンパクト性

完全性の“ご褒美”として、意味論だけを見ていては非自明な定理が転がり出ます。

定理 コンパクト性定理(命題論理)

論理式の集合 Γ\Gamma が充足可能     \iff Γ\Gammaすべての有限部分集合が充足可能。

証明

\Rightarrow は自明。\Leftarrow:対偶で、Γ\Gamma が充足不能なら有限部分が充足不能、を示す。 Γ\Gamma が充足不能なら(モデル存在定理の対偶で)Γ\Gamma は矛盾、すなわち Γ\Gamma\vdash\bot。 この証明は有限個Γ\Gamma の要素しか使わない。その有限部分 Γ0\Gamma_0Γ0\Gamma_0\vdash\bot、 健全性より Γ0\Gamma_0 は充足不能。∎

証明の心臓は「\vdash の証明は有限」という一点。無限の条件(Γ\Gamma 全体の充足可能性)が、 有限の条件(各有限部分)に還元される。この「無限を有限に落とす」構図は、名前のとおり 位相空間のコンパクト性と深く通じており、実際 {T,F}変数\{\mathrm T,\mathrm F\}^{\text{変数}} に 積位相を入れてチコノフの定理から証明することもできます。次章以降、述語論理でもコンパクト性は 「無限の情報を有限で操る」最強の道具になります。

つまずきポイント

注意 よくある誤解

  • 健全性と完全性は別の主張。 健全性(導ける⇒正しい)は易しく、完全性(正しい⇒導ける)は難しい。「完全」は体系に穴が無いこと(第13章の不完全性とは別概念)。
  • 完全性 vs 不完全性。 ゲーデルの完全性定理(第7章)は「妥当な式は導ける」、不完全性定理(第13章)は「算術には決定できない命題がある」。矛盾せず、対象が違う。
  • モデル存在定理が完全性の本体。 「無矛盾⇒充足可能」を示せば、完全性もコンパクト性も系として出る。この技法を身につけるのが最重要。

この章のまとめ

  • 健全性\vdash\Rightarrow\models)は「公理が真・MP が真を保つ」で素直に証明できる。
  • 完全性\models\Rightarrow\vdash)の本体はモデル存在定理「無矛盾⇒充足可能」。リンデンバウムで極大無矛盾集合へ拡大し、その帰属関係から付値を読み取り(真理補題)モデルを作る。
  • 系としてコンパクト性が出る。心は「証明は有限個しか使わない」。\vdash\models は完全に一致する。

命題論理を完全に把握しました。次章から、量化子 ,\forall,\exists をもつ一階述語論理へ進み、まず構文を厳密に立てます。