數理邏輯筆記 No.2

上一篇: 命題演算

謂詞演算

命題邏輯雖結構簡單易於研究, 但應用範圍較窄, 例如古典三段論推理就沒法用命題語言來形式化. 一階邏輯是對命題邏輯的細化, 我們在命題邏輯的基礎上引入謂詞和量詞, 以此來進一步研究 “原子命題” 的內部結構. 由此建立的新數學模型稱為 “謂詞演算”, 它具有更細緻, 複雜的結構, 能更深入地表現實際的推理過程.

需要注意的是, 在一階邏輯中, 變元僅僅指代個體, 量詞的控制範圍也僅限於個體, 這一點與討論 “(個體組成的)集合” 和 “(個體間的)關係” 的二階邏輯不同. 儘管二階邏輯的語言更豐富, 但一階邏輯仍然在邏輯學中佔有主導地位, 原因之一是一階邏輯有完全性, 而二階邏輯沒有. 也有哲學家認為二階邏輯本質上已經是數學和集合論, 並不是單純的邏輯.

語法

原子公式

為形式化一個一般的數學命題, 我們總共需要4個集: 個體變元集 XX, 個體常元集 CC, 運算(函數)集 FF, 謂詞集 RR.

  1. 個體變元集 X={x1,x2,}X=\left\lbrace x_1,x_2,\cdots\right\rbrace 是可數集, 個體變元 xix_i 用來表示某個不定的個體對象,
  2. 個體常元集 C={c1,c2,}C=\left\lbrace c_1,c_2,\cdots\right\rbrace 是可數集, 也可以是有限集(包括空集), 個體常元 cic_i 用來表示確定的個體對象,
  3. 運算集 F={f11,f21,,f12,}F=\left\lbrace f^1_1,f^1_2,\cdots,f^2_1,\cdots\right\rbrace 是可數集, 也可以是有限集(包括空集), finf^n_i 叫做第 iinn 元運算符,
  4. 謂詞集 R={R11,R21,,R12,}R=\left\lbrace R^1_1,R^1_2,\cdots,R^2_1,\cdots\right\rbrace 是可數集, 也可以是有限集(不能是空集), RinR^n_i 叫做第 iinn 元謂詞, 表示某種個體對象集上的 nn 元關係.

首先構建項集.

F=F=\varnothing 時, 項集 T=XCT=X\cup C;
FF\not=\varnothing 時, TT 有如下分層:

T=T0T1TkT=T_0\cup T_1\cup\cdots\cup T_k\cup\cdots

其中

T0=XC,T1={f11(x1),,f11(c1),,f21(x1),,f12(x1,x1),},T2={f11(f11(x1)),,f12(x1,f11(x1)),}, \begin{align*} T_0 =& X\cup C, \\ T_1 =& \left\lbrace f^1_1(x_1),\cdots,f^1_1(c_1),\cdots,f^1_2(x_1),\cdots,f^2_1(x_1,x_1),\cdots\right\rbrace,\\ T_2 =& \left\lbrace f^1_1(f^1_1(x_1)),\cdots,f^2_1(x_1,f^1_1(x_1)),\cdots\right\rbrace,\\ &\cdots\cdots \end{align*} TkT_k 中元素是由 T0T_0 中元素經 kk 次運算得到的. 項集 TT 是由 XCX\cup C 生成的 FF 型代數, 其生成方式和分層結構與命題代數 L(X)L(X) (由 XX 生成的 {¬,}\left\lbrace \neg,\to\right\rbrace 型代數) 相類似. 同樣, TT 的各個層次間沒有公共元素. TT 中只含個體常元的項稱為閉項, 例如 f11(c1)f^1_1(c_1), f12(c1,f11(c2))f^2_1(c_1,f^1_1(c_2)) 等. 所有閉項構成的集就是由 CC 生成的 FF 型代數.

進而定義原子公式集

Y=i,n({Rin}×Tn)Y=\bigcup_{i,n}\left(\left\lbrace R^n_i\right\rbrace\times T^n\right)

Y={(Rin,t1,,tn):RinR,t1,,tnT}Y=\left\lbrace (R^n_i,t_1,\cdots,t_n):R^n_i\in R,t_1,\cdots,t_n\in T\right\rbrace

其中 (Rin,t1,,tn)(R^n_i,t_1,\cdots,t_n) 一般寫作 Rin(t1,,tn)R^n_i(t_1,\cdots,t_n).

在謂詞演算中, 原子公式是用來表示命題的最小單位, 而項則是構成原子命題的基礎. 項大致可類比為日常語言中的名詞, 而謂詞可以理解為描述對象的某種性質.

謂詞演算公式集

隨後我們形式地定義謂詞演算的語言. 首先列出字母表:

  1. 個體變元 x1,x2,x_1,x_2,\cdots,
  2. 個體常元 c1,c2,c_1,c_2,\cdots,
  3. 運算符 f11,f21,,f12,f^1_1,f^1_2,\cdots,f^2_1,\cdots,
  4. 謂詞 R11,R21,,R12,R^1_1,R^1_2,\cdots,R^2_1,\cdots,
  5. 聯結詞 ¬,\neg,\to,
  6. 全稱量詞 \forall,
  7. 左右括號, 逗號.

以原子公式為出發點, 謂詞演算公式的形成規則是

  1. 每個原子公式是公式,
  2. pp, qq 是公式, 則 ¬p\neg p, pqp\to q, xip(i=1,2,)\forall x_i\thinspace p\thinspace(i=1,2,\cdots) 是公式,
  3. 任一公式由前兩條規則使用有限次得到.

K(Y)K(Y) 表示所有謂詞演算公式構成的集. TT 是可數集, 故 YY 是可數集, 因此 K(Y)K(Y) 也是可數集. 仿照 L(X)L(X), K(Y)K(Y) 也具有分層性, 零層即為原子公式集, 第 kk 層由原子公式經 kk 次運算得到.

¬\neg, \to, \forall 外, 還可以定義 \vee, \wedge, \leftrightarrow 及存在量詞 \exists. 前三者定義同上一篇, \exists 定義為 \forall 的對偶: xip=¬xi¬p\exists x_i\thinspace p=\neg\forall x_i\thinspace \neg p.

自由出現和約束出現

在一個公式中, 個體變元 xx 的出現如果不在 x\forall x 中或 x\forall x 的範圍中, 則叫做自由出現, 否則叫做約束出現. 一個公式若不含自由出現的變元, 就叫做閉式.

這個定義是為了區分項對公式中的某變元是否可代換, 從而排除由於量詞存在而產生的 “變元干擾”. 用項 tt 去代換公式 pp 中的自由出現的個體變元 xx, 若在代換後的公式裡, tt 的變元都是自由的, 則稱 “ttppxx 是自由的”. 即是說, 如果用 tt 替換 pp 中的自由變元 xx, 結果 tt 的某一變元 xx' 落入原公式中 x\forall x' 的範圍內, 那麼原本不受約束的部分就會受到約束, 因此 ttppxx 是不可代換 (不自由) 的.

例如, 假設二元謂詞 R12R^2_1 表示 “相等”, 公式 pp¬yR12(x,y)\neg\forall y\thinspace R^2_1(x,y) (即存在 xx, 使得 xyx\not=y ), 如果我們用 t=yt=y 代換 pp 中的 xx, 那麼公式就變為 ¬yR12(y,y)\neg\forall y\thinspace R^2_1(y,y), 即存在 yy, yy 不等於自身. 在這種情況下, 替換是不被允許的.

下面兩種情況下, ttppxx 是自由的:

  1. tt 是閉項;
  2. xx 不在 pp 中自由出現.

我們用 p(t)p(t) 表示用項 tt 代換 p(x)p(x) 中所有自由出現的 xx. (注意, 我們寫 p(x)p(x) 時, 其中的 xx 指的是公式中自由出現的 xx. )

謂詞演算

謂詞演算 KK 的定義方式與命題演算 LL 類似, 即在公式集 K(Y)K(Y) 上規定 “公理” 和 “證明”.

“公理” 定義為 K(Y)K(Y) 的具有如下形狀的公式:

(K1)(K1) p(qp)p\to(q\to p); (K2)(K2) (p(qr))((pq)(pr))(p\to (q\to r))\to((p\to q)\to(p\to r)); (K3)(K3) (¬p¬q)(qp)(\neg p\to\neg q)\to(q\to p); (K4)(K4) xp(x)p(t)\forall x p(x)\to p(t), 其中 ttppxx 是自由的; (K5)(K5) x(pq)(pxq)\forall x(p\to q)\to(p\to\forall x q), 其中 xx 不在 pp 中自由出現.

其中 p,q,rK(Y)p,q,r\in K(Y). 前三條公理模式和命題演算是一樣的, 有些書中的公理 (K5)(K5) 形為 x(pq)(xpxq)\forall x(p\to q)\to(\forall x p\to\forall x q), 則不需要 xx 不在 pp 中自由出現的條件.

“證明” 的定義與命題演算基本相同, 但增加一條推廣規則〔Gen\text{Gen} 規則, 也稱概括規則〕.
ΓK(Y)\Gamma\subseteq K(Y), 我們說 “公式 pp 從公式集 Γ\Gamma 中可證”, 假如存在公式的有限序列 p1,,pnp_1,\cdots,p_n, 其中 pn=pp_n=p, 且每個 pkp_k 都滿足:

  1. pkΓp_k\in\Gamma, 或
  2. pkp_k 是 "公理", 或
  3. 存在 i,j<ki,j<k 使得 pj=pipkp_j=p_i\to p_k, 或
  4. 存在 j<kj<k, 使得 pk=xpjp_k=\forall x\thinspace p_j. 其中的 xx 叫做 Gen\text{Gen} 變元.

則有限序列 p1,,pnp_1,\cdots,p_n 叫做 ppΓ\Gamma 的 “證明”. 語法推論的定義同命題演算.

如果我們把 K(Y)K(Y) 的公式視為命題演算中用命題變元表示的簡單命題, 那麼謂詞演算可以很自然地看成是命題演算的擴張.
命題演算中的定理在謂詞演算中當然也成立, 只需用公式 p1,p2,,pnK(Y)p_1,p_2,\cdots,p_n\in K(Y) 代換原公式中的命題變元 x1,x2,,xnx_1,x_2,\cdots,x_n 便可, 即

Lp(x1,x2,,xn)Kp(p1,p2,,pn)\vdash_{L}\enspace p(x_1,x_2,\cdots,x_n)\quad\Rightarrow\quad\vdash_{K}\enspace p(p_1,p_2,\cdots,p_n)

p(x1,x2,,xn)p(x_1,x_2,\cdots,x_n) 是命題演算中的重言式, 那麼代換後的 p(p1,p2,,pn)p(p_1,p_2,\cdots,p_n) 稱為 KK命題演算型重言式, 簡稱重言式. 需注意的是, KK 的定理不一定是重言式.


演繹定理, 歸謬律和反證律在謂詞演算中同樣成立, 但關於 Gen\text{Gen} 變元的使用有一定變化.

  1. 演繹定理: (1) 若 Γpq\Gamma\vdash p\to q, 則 Γ{p}q\Gamma\cup\left\lbrace p\right\rbrace\vdash q; (2) 若 Γ{p}q\Gamma\cup\left\lbrace p\right\rbrace\vdash q, 且證明中所用 Gen\text{Gen} 變元不在 pp 中自由出現, 則不增加新的 Gen\text{Gen} 變元就可得 Γpq\Gamma\vdash p\to q;
  2. 反證律: 若 Γ{¬p}q\Gamma\cup\left\lbrace \neg p\right\rbrace\vdash q¬q\neg q, 且 Gen\text{Gen} 變元不在 pp 中自由出現, 則不增加新的 Gen\text{Gen} 變元就可得 Γ¬q\Gamma\vdash\neg q;
  3. 歸謬律: 若 Γ{p}q\Gamma\cup\left\lbrace p\right\rbrace\vdash q¬q\neg q, 且 Gen\text{Gen} 變元不在 pp 中自由出現, 則不增加新的 Gen\text{Gen} 變元就可得 Γ¬q\Gamma\vdash\neg q.

要求 Gen\text{Gen} 變元不在 pp 中自由出現是因為定理證明過程中使用了公理 (K5)(K5).

另有關於存在量詞的兩條規則:

  1. 1\exists_1 規則: 設項 ttp(x)p(x) 中的 xx 自由, 則有 p(t)xp(x)\vdash p(t)\to\exists x p(x);
  2. 2\exists_2 規則: 設 Γ{p}q\Gamma\cup\left\lbrace p\right\rbrace\vdash q, 其證明中所用 Gen\text{Gen} 變元不在 pp 中自由出現, 且 xx 不在 qq 中自由出現, 那麼有 Γ{xp}q\Gamma\cup\left\lbrace \exists x p\right\rbrace\vdash q, 且除 xx 不增加其他 Gen\text{Gen} 變元.

ppqq 可證等價 (簡稱等價), 指 pq\vdash p\leftrightarrow q 成立, 這個概念相當於命題演算中的等值公式. "可證等價" 給出了 K(Y)K(Y) 上的一個等價關係, 確定了 K(Y)K(Y) 的一個分類. 我們有
  1. xp(x)yp(y)\vdash \forall x\thinspace p(x)\leftrightarrow\forall y\thinspace p(y);
  2. xp(x)yp(y)\vdash \exists x\thinspace p(x)\leftrightarrow\exists y\thinspace p(y),

其中 yy 不在 p(x)p(x) 中出現. 這兩條可用來更換約束變元.

在謂詞演算中, 我們同樣有對偶律. 設公式 pp 只含原子公式及 ¬\neg, \vee, \wedge, \forall, \exists, 把原子公式換為其否定, \vee\wedge 互換, \forall\exists 互換, 得到公式 pp^{*}, 則 ¬pp\vdash \neg p\leftrightarrow p^{*}. 這與命題演算的 De Morgan 律類似.

前束範式

前束範式指形如 Q1x1QnxnpQ_1 x_1\cdots Q_n x_n\thinspace p 的公式, 其中 QiQ_i\forall\exists, pp 是不含量詞的公式. 可以歸納證明, 每一個公式都有與之等價的前束範式, 求出該前束範式的方法是多次使用如下等價推導規則: (用 QQ^{*} 表示 QQ 的對偶)

  1. yy 不在 p(x)p(x) 中出現, 則 Qxp(x)Qyp(y)\vdash Qx\thinspace p(x)\leftrightarrow Qy\thinspace p(y);
  2. xx 不在 pp 中自由出現, 則 (pQxq)Qx(pq)\vdash(p\to Qx\thinspace q)\leftrightarrow Qx(p\to q); 若 xx 不在 qq 中自由出現, 則 (Qxpq)Qx(pq)\vdash(Qx\thinspace p\to q)\leftrightarrow Q^{*}x(p\to q);
  3. ¬QxpQx¬p\vdash\neg Qx\thinspace p\leftrightarrow Q^{*}x\thinspace \neg p.

n>0n>0, 若前束範式是由全稱量詞開始, 從左至右改變 n1n-1 次詞性, 則叫做 Πn\Pi_n 型前束範式; 若由存在量詞開始, 從左至右改變 n1n-1 次詞性, 則叫做 Σn\Sigma_n 型前束範式.

語義

解釋

要討論謂詞演算的語義, 我們必須解釋系統中每一個符號的意義, 即挑選一個外部的數學 “結構” 來符合這種語言的陳述, 使其中的謂詞, 函數和項有所指稱. 這點與命題邏輯大不相同, 因為命題邏輯中的簡單命題只帶有抽象的真值, 一般不會具體地用來描述某個數學結構.

設非空集 MM 具有如下性質:

  1. KK 的每個個體常元 cic_i, 都有 MM 中的元素 ci\overline{c_i} 與之對應: cicic_i\mapsto\overline{c_i};
  2. KK 的每個運算符 finf^n_i, 都有 MM 上的 nn 元運算 fin\overline{f^n_i} 與之對應: finfinf^n_i\mapsto\overline{f^n_i};
  3. KK 的每個謂詞 RinR^n_i, 都有 MM 上的 nn 元關係 Rin\overline{R^n_i} 與之對應: RinRinR^n_i\mapsto\overline{R^n_i}.

〔註: 下文涉及多個解釋域時, 就把解釋域記在上標以示區分. 例如, 把 c\overline{c} 具體寫作 cM\overline{c}^M. 〕

帶有上述三個映射的非空集 MM 叫做 KK解釋域. 解釋域的元素叫做個體對象, 解釋域通常也叫做 “解釋” 或 “結構”.

解釋域是帶有特定內部結構的集合, 其結構與謂詞演算的語法結構具有一定對應性, 但集合內部的性質不一定都能被謂詞演算這種語言 “捕捉”.


要討論 KK 中公式的真假, 除了明確解釋域, 還需確定個體變元的解釋. 為此引入 “項解釋”, 把項集 TT 與給定解釋域聯繫起來.

我們把映射 φ0:XM\varphi_0:X\to M 叫做個體變元的對象指派. 隨後即可遞歸地定義項解釋 φ:TM\varphi:T\to M 如下:

  1. φ(xi)=φ0(xi)\varphi(x_i)=\varphi_0(x_i), φ(ci)=ci\varphi(c_i)=\overline{c_i};
  2. φ(fin(t1,,tn))=fin(φ(t1),,φ(tn))\varphi(f^n_i(t_1,\cdots,t_n))=\overline{f^n_i}(\varphi(t_1),\cdots,\varphi(t_n)). (保運算性)

對固定的解釋域 MM, 把所有項解釋 φ\varphi 組成的集記作 ΦM\varPhi_M.

xx 是某個給定的個體變元, yy 是任意的個體變元, 且 φ,φΦM\varphi,\varphi'\in \varPhi_M 滿足 yxy\not=x \Rightarrow φ(y)=φ(y)\varphi(y)=\varphi'(y), 則稱 φ\varphi'φ\varphixx 項變通. φ\varphiφ\varphi'xx 的指派可能不同, 其他變元的指派全都相同. 項變通的概念將用於對含量詞公式的解釋.

公式的賦值函數

在固定的解釋域 MM 中, φ0\varphi_0 一旦給定, 項解釋 φ\varphi 就確定下來, 每個原子公式就可解釋為關於 MM 中個體對象的命題, 我們於是可以討論 KK 中公式的真假.

MM 是給定的解釋域, ppKK 中任一公式, 歸納定義 p:ΦMZ2|p|:\varPhi_M\to Z_2 如下:
對任一項解釋 φΦM\varphi\in\varPhi_M,

  1. pp 為原子公式 Rin(t1,,tn)R^n_i(t_1,\cdots,t_n) 時, 令
p(φ)={1,if(t1,,tn)Rin,0,if(t1,,tn)∉Rin; |p|(\varphi)=\begin{cases} 1,&\text{if}\enspace(\overline{t_1},\cdots,\overline{t_n})\in \overline{R^n_i},\\ 0,&\text{if}\enspace(\overline{t_1},\cdots,\overline{t_n})\not\in \overline{R^n_i}; \end{cases}
  1. p=¬qp=\neg qp=qrp=q\to r 時, 分別令
¬q(φ)=¬q(φ),qr(φ)=q(φ)r(φ); \begin{align*} |\neg q|(\varphi)&=\neg|q|(\varphi), \\ |q\to r|(\varphi)&=|q|(\varphi)\to|r|(\varphi); \end{align*}
  1. p=xqp=\forall x\thinspace q 時, 若 φ\varphi 的任一 xx 變通 φ\varphi' 都使 q(φ)=1|q|(\varphi')=1, 則 xq(φ)=1|\forall x\thinspace q|(\varphi)=1, 反之, xq(φ)=0|\forall x\thinspace q|(\varphi)=0. (這一點類似於上一篇提到的模態邏輯中的 \Box 算子)

〔註: p(φ)=1|p|(\varphi)=1 在有些書中寫作 (M,φ)p(M,\varphi)\models p. 〕


MMKK 的解釋域, φ,ψΦM\varphi,\psi\in\varPhi_M, 那麼顯然有:

  1. 若對項 tt 中每一變元 xx 都有 φ(x)=ψ(x)\varphi(x)=\psi(x), 則 φ(t)=ψ(t)\varphi(t)=\psi(t);
  2. 若對公式 pp 中每一自由出現的變元 xx 都有 φ(x)=ψ(x)\varphi(x)=\psi(x), 則 p(φ)=p(ψ)|p|(\varphi)=|p|(\psi). 即, 公式的真值只與在公式中自由出現的變元指派有關.

若對任一 φΦM\varphi\in\varPhi_M 都有 p(φ)=1|p|(\varphi)=1, 則公式 pp 在解釋域 MM 中恆真, 記作 pM=1|p|_M=1. 若 ppMM 中恆假, 則記作 pM=0|p|_M=0. 在 MM 中非恆假的公式叫做 MM 中可滿足公式. 由於閉式中沒有自由出現的變元, 所以閉式的真值與特定指派無關, 由此可知, 任一閉式 pp 在解釋域 MM 中恆真或恆假二者必居其一.

容易看出, pM=1|p|_M=1 當且僅當 xpM=1|\forall x\thinspace p|_M=1. 設 xi1,,xinx_{i_1},\cdots,x_{i_n}pp 中所有自由出現的變元, 我們稱 xi1xinp\forall x_{i_1}\cdots\forall x_{i_n}\thinspace ppp全稱閉式. 設 pp 的全稱閉式為 pp', 則 pM=1|p|_M=1 當且僅當 pM=1|p'|_M=1.

語義推論和有效式

首先定義模型. 設 MMKK 的解釋域, 若公式集 Γ\Gamma 的每個公式都在 MM 中恆真, 則稱 MMΓ\Gamma 的一個模型:

rΓrM=1r\in\Gamma\enspace\Leftrightarrow\enspace|r|_M=1 Γ=\Gamma=\varnothing 時, 任何解釋域都是 Γ\Gamma 的模型.

公式 pp 是公式集 Γ\Gamma語義推論, 記作 Γp\Gamma\models p, 是指 ppΓ\Gamma 的所有模型中都恆真. 換句話說, Γ\Gamma 的任何模型也都是 Γ{p}\Gamma\cup\left\lbrace p\right\rbrace 的模型.

p\varnothing\models p, 則稱 ppKK有效式, 記作 p\models p. 若 ¬p\neg p 不是有效式, 則 pp 叫做 KK可滿足公式. 如果 ppKK 的可滿足公式, 那麼 Γ={p}\Gamma=\left\lbrace p\right\rbrace 必定有模型.

Example

舉一個直觀的例子, 如果我們把 Euclid 的前四條公設作為公理建立一個形式系統 GG, 那麼歐氏幾何, 橢圓幾何, 雙曲幾何都是 Γ=\Gamma=\varnothing 的模型. 若公式 pp 是 “兩點之間測地線最短” 在 GG 中的形式化, 則 ppGG 的有效式; 若公式 qq 是 Euclid 第五公設在 GG 中的形式化, 則 qq¬q\neg q 都是 GG 的可滿足公式, 且歐氏幾何是 Γ={q}\Gamma=\left\lbrace q\right\rbrace 的模型.

KK 中的重言式都是有效式, 特別地, (K1)(K1), (K2)(K2), (K3)(K3) 三種模式的公理都是有效式.

容易看出, Γp\Gamma\models p 當且僅當 Γxp\Gamma\models\forall x\thinspace p, 所以必有 {p}xp\left\lbrace p\right\rbrace\models\forall x\thinspace p. 但 pxp\models p\to\forall x\thinspace p 不一定成立. 例如, 公式 R1(x1)xR1(x1)R^1(x_1)\to\forall x R^1(x_1) 顯然不是有效式, 直觀上就能看出, 這個公式有 “以偏概全” 的可能, 也很容易找到一個使其為假的賦值. 這就解釋了為何謂詞演算中的演繹定理必須對 Gen\text{Gen} 變元的自由出現加以限制 (參見上文). 事實上, 把公式 pp 放入公式集內, 就預先對其模型做出了一定的限制, 若把 pp 移出, 就相當於在去除了這種限制的模型中考察真值, 所以會造成錯誤.

可定義性*

上文已經提到, 給定一種語言, 其解釋域內部的結構不一定能由這種語言完全 “捕捉”, 集合內的某些性質有可能 “溢出” 語言的描述能力, 因而無法在這種語言下得到明確, 著名的 Skolem 悖論即是來自於語言及其所描述數學結構之間的這種不協調性. 因此, 討論結構 MM 的哪些子集或關係可以被系統中的公式描述就成了一個很重要的問題. (這裡的討論不侷限於一般的謂詞演算 KK )

固定一個語言 LL, 設 MMLL 的結構(解釋域). 假定 x1,,xnx_1,\cdots,x_n 是公式 pLp\in L 中所有自由出現的變元, 且 a1,,anMa_1,\cdots,a_n\in M, 定義 Mp[a1,,an]M\models p\left[a_1,\cdots,a_n\right], 若存在項解釋 φ\varphi 使得 φ(xi)=ai\varphi(x_i)=a_ip(φ)=1|p|(\varphi)=1. 進而, 我們稱 nn 元關係

{(a1,,an):Mp[a1,,an]}\left\lbrace (a_1,\cdots,a_n):M\models p\left[a_1,\cdots,a_n\right]\right\rbrace

是公式 ppMM定義的關係. 若 MM 中的 nn 元關係 RnR^n 可被某個公式 pp 定義, 則稱 RnR^n可定義的.


給定一個語言, 我們考慮其不同結構之間的關係. 令 AABB 是一個語言的兩個結構, 我們稱映射 h:ABh:A\to B 為一個從 AABB同態, 如果它滿足:

  1. 對每個 (不是等詞的) nn 元謂詞 RR 和每組 a1,,anAa_1,\cdots,a_n\in A, 都有 (a1,,an)RA(a_1,\cdots,a_n)\in \overline{R}^A 當且僅當 (h(a1),,h(an))RB(h(a_1),\cdots,h(a_n))\in \overline{R}^B, 其中 nn 取遍正整數;
  2. 對每個 nn 元運算符 ff 和每組 a1,,anAa_1,\cdots,a_n\in A, 都有 h(fA(a1,,an))=fB(h(a1),,h(an))h(\overline{f}^A(a_1,\cdots,a_n))=\overline{f}^B(h(a_1),\cdots,h(a_n)), 其中 nn 取遍正整數;
  3. 對每個個體常元 cc, 都有 h(cA)=cBh(\overline{c}^A)=\overline{c}^B.

進一步, 如果 hh 是一個雙射, 那麼稱 hh 為一個從 AABB同構, 記作 ABA\cong B.

於是我們有同態定理: 設 h:ABh:A\to B 是一個從 AABB 的同態, φΦA\varphi\in\varPhi_A, 則

  1. hφΦBh\circ\varphi\in\varPhi_B;
  2. 對任何不含量詞且不含等詞的公式 pp, p(φ)=1|p|(\varphi)=1 當且僅當 p(hφ)=1|p|(h\circ\varphi)=1;
  3. hh 是單射, 則 (2) 中公式 pp 可以包含等詞;
  4. hh 是滿射, 則 (2) 中公式 pp 可以包含量詞.

證明略.

LL 上的兩個結構 AABB初等等價的, 記作 ABA\equiv B, 如果對 LL 中的任意閉式 pp 都有 pA=1|p|_A=1 當且僅當 pB=1|p|_B=1.

由同態定理可知, 若存在雙射 h:ABh:A\to B, 那麼對任何公式 pp 都有 p(φ)=1|p|(\varphi)=1 當且僅當 p(hφ)=1|p|(h\circ\varphi)=1, 即 AABB 是初等等價的, 因為同構的兩個結構在本質上就是同一個結構. 但反過來, 若 AABB 初等等價, 則不能得出 AABB 是同構的. 可能情況是, 兩個結構儘管不同, 但用我們的語言不能描述出它們的區別, 這只能說明語言的匱乏.


結構 AA 上的一個自同構就是 AAAA 自身的一個同構. 由同態定理可知, 任何自同構都保持可定義的關係. 令 h:AAh:A\to A 是一個自同構, RRAA 上的一個可定義的 nn 元關係, 則對任意 a1,,anAa_1,\cdots,a_n\in A 都有

(a1,,an)R(h(a1),,h(an))R(a_1,\cdots,a_n)\in R\enspace\Leftrightarrow\enspace(h(a_1),\cdots,h(a_n))\in R

這個結果經常被用來證明某些關係的不可定義性.

例如, 考慮由全體實數和其上的自然序組成的結構 (R,<)(\mathbb{R},<). 令 h:RRh:\mathbb{R}\to\mathbb{R}h(x)=x3h(x)=\sqrt[3]{x}, 則 hh 是該結構的一個自同構, 由此可以證明自然數集 N\mathbb{N} (作為一元關係)在該結構上是不可定義的. 假設公式 pp 在該結構上定義了一元關係 NN, 那麼對自然數 n>1n>1, 若 nNn\in N 則必有 h(n)=n3Nh(n)=\sqrt[3]{n}\in N, 因此 NNN\not=\mathbb{N}. 這就表明了 N\mathbb{N} 的不可定義性.

再比如, 加法函數的圖像 {(m,n,p):p=m+n}\left\lbrace (m,n,p):p=m+n\right\rbrace (作為三元關係) 在結構 (N,)(\mathbb{N},\cdot) 中不可定義. 我們只需令 h:NNh:\mathbb{N}\to\mathbb{N},

h(x)={2b3a,ifx=2a3bx,if2x,3x h(x)=\begin{cases} 2^b \cdot 3^a ,&\text{if}\enspace x=2^a \cdot 3^b\\ x,&\text{if}\enspace 2\nmid x,\thinspace 3\nmid x \end{cases}

由唯一分解定理知 hh 是一個雙射, 故 hh 定義了 N\mathbb{N} 上的一個自同構. 如果有一個公式 α\alpha 定義了 R={(m,n,p):p=m+n}R=\left\lbrace (m,n,p):p=m+n\right\rbrace, 則由 (1,2,3)R(1,2,3)\in R 可以推出 (h(1),h(2),h(3))=(1,3,2)R(h(1),h(2),h(3))=(1,3,2)\in R, 從而導出矛盾.

可靠性和完備性

可靠性

可靠性定理是指: ΓpΓp\Gamma\vdash p\Rightarrow\Gamma\models p.
證明類似命題邏輯, 驗證 (K1)(K1)~(K5)(K5) 型公理的有效性, 然後歸納法.

推論: KK 是無矛盾的, 即對任意公式 pp, p\vdash p¬p\vdash\neg p 不同時成立. 否則由可靠性定理就會有 p\models p¬p\models\neg p 同時成立, 而這是不可能的. 類似地也可證明, 若公式集 Γ\Gamma 有模型, 則 Γ\Gamma 是無矛盾的.

完全性

完全性定理是指: ΓpΓp\Gamma\models p\Rightarrow\Gamma\vdash p, 即 KK 的有效式一定是 KK 的定理.

直觀上, 可靠性說的是若某個語句在公式集 Γ\Gamma 中可證, 則它必定在 Γ\Gamma 的所有模型中為真; 完全性則是反過來, 若某語句在 Γ\Gamma 的每個模型中為真, 則它一定在 Γ\Gamma 中可證. 所以, 為證完全性定理, 我們必須先構造公式集的一個理想的模型.


定理: 無矛盾公式集一定有可數集模型.

證明分為六個步驟(綱要):
(1) 作擴大的謂詞演算 K+K^{+}
取可數個新的個體常元 b0,b1,b_0,b_1,\cdots, B={b0,b1,}B=\left\lbrace b_0,b_1,\cdots\right\rbrace 與原個體常元集 C={c0,c1,}C=\left\lbrace c_0,c_1,\cdots\right\rbrace 不相交. 擴大 KK, 以 CBC\cup B 為個體常元集, 其他保持不變, 得到新的謂詞演算記作 K+K^{+}, 其項集記作 T+T^{+}, 原子公式集記作 Y+Y^{+}. 則 TT+T\subseteq T^{+}, YY+Y\subseteq Y^{+}, K(Y)K(Y+)K(Y)\subseteq K(Y^{+}).

(2) 作擴大的無矛盾公式集 ΓΓ\Gamma'\supset\Gamma
K+K^{+} 中所有只含一個自由變元的公式(可數個)全部取出排成不重複的一列: p0(y0),p1(y1),p_0(y_0),\thinspace p_1(y_1),\cdots, 其中 yn=xinXy_n=x_{i_n}\in X 這些變元可以重複出現. 在 BB 中取一串 bi0,bi1,b_{i_0},\thinspace b_{i_1},\cdots, 滿足:

  1. bi0b_{i_0} 不在 p0(y0)p_0(y_0) 中出現;
  2. n>0n>0 時, binb_{i_n} 不在 p0(y0),,pn(yn)p_0(y_0),\cdots,p_n(y_n) 中出現, 且 bin∉{bi0,,bin1}b_{i_n}\not\in\left\lbrace b_{i_0},\cdots,b_{i_{n-1}}\right\rbrace.

rn=pn(bin)ynpn(yn)r_n=p_n(b_{i_n})\to\forall y_n\thinspace p_n(y_n), 並令 Γ=Γ{r0,r1,r2}\Gamma'=\Gamma\cup\left\lbrace r_0,r_1,r_2\cdots\right\rbrace. 隨後反證 Γ\Gamma' 是無矛盾的: 假設 qK+q\in K^{+} 使得 ΓK+q\Gamma'\vdash_{K^{+}} qΓK+¬q\Gamma'\vdash_{K^{+}}\neg q 同時成立, 那麼必有足夠大的 nn 使得 Γ{r0,,rn}K+q\Gamma\cup\left\lbrace r_0,\cdots,r_n\right\rbrace\vdash_{K^{+}} q¬q\neg q. 對 rir_i 的個數歸納可知, 這是不可能的.

(3) 作 Γ\Gamma' 的完備無矛盾擴張 Γ\Gamma^{*}
K(Y+)K(Y^{+}) 中所有閉式(可數個)排成不重複的一列: p0,p1,p^{*}_0,\thinspace p^{*}_1,\cdots, 令

Γ0=Γ,Γn={Γn1,ifΓn1K+pn1;Γn1{¬p},ifΓn1̸K+pn1. \begin{align*} \Gamma_0&=\Gamma', \\ \Gamma_n&=\begin{cases} \Gamma_{n-1},&\text{if}\enspace\Gamma_{n-1}\vdash_{K^{+}}p^{*}_{n-1}; \\ \Gamma_{n-1}\cup\left\lbrace \neg p\right\rbrace,&\text{if}\enspace\Gamma_{n-1}\not\vdash_{K^{+}} p^{*}_{n-1}. \end{cases} \end{align*}

歸納可知 Γn\Gamma_n 是無矛盾的, 所以 Γ=n=0Γn\Gamma^{*}=\bigcup_{n=0}^{\infty}\Gamma_n 也是無矛盾的. Γ\Gamma^{*} 是完備的, 即對 K+K^{+} 中任一閉式 pkp^{*}_k, ΓK+pk\Gamma^{*}\vdash_{K^{+}} p^{*}_kΓK+¬pk\Gamma^{*}\vdash_{K^{+}} \neg p^{*}_k 二者必居其一.

(4) 作 K+K^{+} 的解釋域 MM
MMK+K^{+} 中所有閉項組成的集合. 閉項集 MT+M\subseteq T^{+} 是可數集, 是由 BCB\cup C 生成的以 FF 為運算集的代數系統. 讓 MM 成為 K+K^{+} 的解釋域: 令 bi=bi\overline{b_i}=b_i, ci=ci\overline{c_i}=c_i, fin=fin\overline{f^n_i}=f^n_i, 規定 MM 中與 nn 元謂詞 RinR^n_i 對應的 nn 元關係 Rin\overline{R^n_i} 如下:

對任意閉項 t1,,tnMt_1,\cdots,t_n\in M,
ΓK+Rin(t1,,tn)\Gamma^{*}\vdash_{K^{+}}R^n_i(t_1,\cdots,t_n) 時, 令 (t1,,tn)Rin(t_1,\cdots,t_n)\in\overline{R^n_i};
ΓK+¬Rin(t1,,tn)\Gamma^{*}\vdash_{K^{+}}\neg R^n_i(t_1,\cdots,t_n) 時, 令 (t1,,tn)∉Rin(t_1,\cdots,t_n)\not\in\overline{R^n_i}.

定義的合理性由 Γ\Gamma^{*} 的完備無矛盾性保證.

(5) 完成證明
歸納可證命題

()ΓK+qqM=1(*)\quad \Gamma^{*}\vdash_{K^{+}}q\enspace\Leftrightarrow\enspace |q|_M=1

其中 qqK+K^{+} 的任一閉式.

任取 pΓΓp\in\Gamma\subseteq\Gamma^{*}, 則 ΓK+p\Gamma^{*}\vdash_{K^{+}} p. 設 pp'pp 的全稱閉式, 則有 ΓK+p\Gamma^{*}\vdash_{K^{+}} p', 又由命題 ()(*) 可得 pM=1|p'|_M=1, 於是 pM=1|p|_M=1. 這就證明了 MMΓ\Gamma 的模型, 也即我們要找的可數模型. \square


由這個定理, 我們能立即證明 KK 的完全性: ΓpΓp\Gamma\models p\Rightarrow\Gamma\vdash p.

反設 Γ⊬p\Gamma\not\vdash p, 令 pp'pp 的全稱閉式, 則 Γ{p}\Gamma\cup\left\lbrace p'\right\rbrace 是無矛盾的, 所以公式集 Γ{p}\Gamma\cup\left\lbrace p'\right\rbrace 有可數模型, 設為 MM. 於是有 ¬pM=1|\neg p'|_M=1, 從而 pM=0|p'|_M=0, 由此可知 Γ⊭p\Gamma\not\models p, 與假設矛盾. 這樣就證明了完全性. \square

KK 的可靠性和完全性結合起來, 我們就得到了關於謂詞演算 KK 的 Gödel 完備性定理: ΓpΓp\Gamma\models p\Leftrightarrow\Gamma\vdash p. 這個定理指出了 KK 的語義和語法的一致性.

緊緻性定理*

類似命題演算, 在謂詞演算中也有緊緻性定理:

  1. Γφ\Gamma\models\varphi, 則存在 Γ\Gamma 的某個子集 Γ0\Gamma_0 使得 Γ0φ\Gamma_0\models\varphi;
  2. Γ\Gamma 的每一個有窮子集 Γ0\Gamma_0 是可滿足的, 則 Γ\Gamma 是可滿足的.

由這個定理可以得到非標準算術模型的存在性, 該模型與標準算術模型初等等價, 但不同構.


對給定結構 AA, 我們稱所有在 AA 中成立的閉語句為 AA理論, 記作 ThA\text{Th}\thinspace A. 顯然, 如果同一個語言上的結構 BB 滿足 ThA\text{Th}\thinspace A, 那麼就有 ABA\equiv B, 即 AABB 初等等價.

現在考慮標準算術模型 A=(N,0,S,<,+,)A=(\mathbb{N},0,S,<,+,\cdot). 首先擴展語言, 添加一個新的常數符號 cc, 令公式集

Σ={0<c,S0<c,SS0<c,}\Sigma=\left\lbrace 0<c,\thinspace S0<c,\thinspace SS0<c,\thinspace \cdots\right\rbrace

任何一個 ΣThA\Sigma\cup\text{Th}\thinspace A 的有窮子集 Σ0\Sigma_0 都是可滿足的 (對 Σ\Sigma 中的有限個語句, 只需把 cc 解釋為一個充分大的自然數 kk; 而 ThA\text{Th}\thinspace A 中的語句則根本不牽涉 cc ), 所以由緊緻性定理, ΣThA\Sigma\cup\text{Th}\thinspace A 也是可滿足的.

BBΣThA\Sigma\cup\text{Th}\thinspace A 的一個模型, 由於 BBThA\text{Th}\thinspace A 的模型, 所以 ABA\equiv B. 假設存在同構 h:BAh:B\to A, 設 m=h(cA)m=h(c^{A}), 由於 0<c0<c, S0<cS0<c, \cdots, SSSm0<c\underbrace{SS\cdots S}_{m}0<cBB 中成立, 所以 hh 誘導了一個從 m+1m+1mm 的單射, 與抽屜原理矛盾. 因此, BB 就是我們要求的非標準模型.

直觀來看, 非標準模型就是在標準模型中加入了大於任意標準自然數的 “非標準自然數”. 一個實際例子是, 如果我們把哥德爾句子的否定作為公理放進系統, 這樣得到的理論就只有非標準模型.

下一篇: 形式算術和遞歸函數