筆者在前面各章介紹了古典形式邏輯的各種推理模式以及它們在當代的革新。古典形式邏輯以「演繹邏輯」 (Deductive Logic)為主,大致上可分為「複合命題」的邏輯推理和「量化句」的邏輯推理這兩類,前者包括 「聯言推理」、「選言推理」、「假言推理」等,以下是上述三種推理的一些有效形式:
並非p和q;p;所以非q | (聯言推理) |
p或q;非p;所以q | (選言推理) |
如果p則q;p;所以q | (假言推理) |
後者則包括筆者在《廣義量詞系列:古典推理模式》中介紹的「對當關係
推理」、「結構變換推理」和「三段論推理」等。除了「演繹邏輯」外,古代和近代某些邏輯學家亦有研究「
歸納邏輯」(Inductive Logic)的問題,但始終以「演繹邏輯」為主流形式,而且「演繹邏輯」自古希臘以來,
一直沒有重大改變。可是,上述局面到19世紀末和20世紀初發生了翻天覆地的變革。現代數理邏輯的興起大大
改變了邏輯學的面貌,古典「演繹邏輯」中的「複合命題推理」和「量化句推理」分別讓位於現代數理邏輯的
兩大砥柱-「命題演算」(Propositional Calculus),又稱「命題邏輯」(Propositional Logic)和
「謂詞演算」(Predicate Calculus),又稱「謂詞邏輯」(Predicate Logic)或「一階邏輯」(First
Order Logic);而古典的「歸納邏輯」亦發生了相應的變革,加入了「概率論」(Probability Theory)和「統
計學」(Statistics)的內容,形成「統計歸納推理」(Statistical Induction)等新學科。
現代數理邏輯的特點就是廣泛運用形式化和數學化的語言,並且自成一個系統。採用形式化語言的優點在於,
可以使推理和論證的過程像數學運算那樣非常明晰,從而避免受自然語言歧義性的影響,並形成與古典形式邏
輯很不相同的學科體系。此一體系有一些傳統邏輯所無的概念,例如「初始符號」、「合式公式」、「形成規
則」、「公理」、「變形規則」、「定義」、「語形後承」、「定理」、「解釋函項」、「語義後承」等。此
外,現代數理邏輯也研究一些「元邏輯性質」,這些都是傳統邏輯所無的內容。
本文的主旨是介紹現代數理邏輯的形式系統以及某些「元邏輯性質」。現代數理邏輯的歷史雖然短,但其發展
速度卻異常迅猛,至今已發展為一個有眾多分支的學科,本文不可能一一介紹,只擬集中介紹當今「演繹邏輯」
的兩個主要分支-「命題演算」和「謂詞演算」以及當代「統計歸納推理」的基本內容。
在本節筆者將首先介紹「演繹邏輯」中的「命題演算」。在現代數理邏輯中,一個形式系統可分為「語形」 (Syntactics)和「語義」(Semantics)這兩大部分,其中「語形」部分涉及某一形式系統中公式和推理的結構, 而「語義」則涉及公式與真值的關係,以下將分別介紹這兩方面的內容。
「初始符號」(Primitive Symbol)是一個形式系統中最基本的組件,它相當於自然語言中的「字母表
」。「命題演算」的「初始符號」包括「命題變項」(Propositional Variable)、兩個「邏輯常項」(Logical
Constant)「~」和「∧」(分別代表「否定」和「合取」)以及「括號」等。
利用上述「初始符號」,我們可以組成各種「符號串」(String),但並非所有「符號串」都是有意義的,例如p
∧)便是無意義的,就正如在自然語言中任意把字母組合起來,不一定能得出有意義的詞或句子一樣。我們
把在邏輯學上有意義的「符號串」稱為「合式公式」(Well-Formed Formula),要把「初始符號」組
合成「合式公式」,我們必須遵循某些「形成規則」(Formation Rule),這些規則就像語言學上的語
法規則那樣。在邏輯學上,一般採用「遞歸定義」的方法來規定「形成規則」,以下便是「命題演算」的「形
成規則」:
(F1)     | 所有「命題變項」都是「合式公式」。 |
(F2) | 若p是「合式公式」,則~p是「合式公式」。 |
(F3) | 若p和q是「合式公式」,則(p ∧ q)是「合式公式」。 |
(F4) | 只有透過上述方法組成的「符號串」才是「合式公式」。 |
上述「初始符號」只包含「~」和「∧」這兩個「邏輯常項」,原則上已足夠使用,這是因為「命題邏輯」 中所有有意義的表達式都可由這兩個「邏輯常項」以各種方式組合而成。不過對於某些常用的邏輯關係(包括「 析取」、「蘊涵」和「等價」),如果每次用到都要引用複雜的公式,將頗為不便,因此我們引入以下「定 義」(Definition)(以下使用「≡」代表「定義為」):
(D1)     | p ∨ q | ≡ ~(~p ∧ ~q) |
(D2) | p ⇒ q | ≡ ~p ∨ q |
(D3) | p ⇔ q | ≡ p ⇒ q ∧ q ⇒ p |
請注意我們可以把上述「定義」左端的公式看成右端公式的簡寫。此外,我們還有一些「括號簡化規則」,以 減少「合式公式」中的括號而不致產生歧義。舉例說,上面(D3)中右端的式子便可以被看成是對下式應用「括 號簡化規則」的結果:
「括號簡化規則」須應用到各種「邏輯聯結詞」的結合順序,這裡不擬詳細介紹。根據上述「初始符號」、「 定義」和各種「規則」,我們可以設計一種機械的「算法」(Algorithm),以便在有限步驟內判定任何給定的符 號串是否「合式公式」。
接下來我們討論用「合式公式」進行推理的方法。現代數理邏輯的推理系統大致上可分為「自然演繹系統」 (Natural Deduction System)和「公理系統」(Axiom System)兩種,本小節介紹「自然演繹系統」。 在此一系統下,一個推理可以某些「前提」或「假設」為出發點,然後根據一些「變形規則」 (Transformation Rule)(又稱「推理規則」Inference Rule),從這些「前提」推出其他公式,一步一步地推向 「結論」。我們可以把上述「前提」集合與其「結論」之間的關係記作
上式的意思是說,基於集合P中的「前提」,可以推出「結論」p。請注意在上述定義中,「結論」在邏輯上依 賴於「前提」,因此這些「結論」又可稱為「前提」的「語形後承」(Syntactic Consequence)。此 外,我們亦可以利用某些「變形規則」把某一依賴於「前提」的「結論」轉化為不依賴任何「前提」的「結論」 (例如下文將要介紹的「⇒+」規則),我們把這樣的結論稱為「定理」(Theorem)或 「可證公式」(Provable Formula (註1)。從另一角度看,「定理」就是那些以「空前提集」作為出 發點的推理的結論,因此可以記作
或甚至再簡化為
上式的意思是說,p是某一推理系統下的「定理」。為說明上述概念,以下我們看一個推理的例子。在這個推理 中,我們要用到以下兩條「變形規則」:
(⇒−)     | 從P |− p ⇒ q和P' |− p 推出P ∪ P' |− q |
(⇒+) | 從P ∪ {p} |− q推出P |− p ⇒ q |
我們要證明下式(下式是「假言三段論」的一種表現形式):
以下是對上述「定理」的證明(在以下證明中,每行的「|−」左邊都加插了該行所依據的「前提」集合, 在當代邏輯學上這種推理系統稱為「加標演繹系統」Labelled Deductive System。為免使「 |−」左邊的內容過於冗長,筆者使用以下代號代表各個「前提」:p1 = p ⇒ q; p2 = q ⇒ r;p3 = p):
(i) | {p1} | |− p ⇒ q | 前提 |
(ii) | {p2} | |− q ⇒ r | 前提 |
(iii) | {p3} | |− p | 前提 |
(iv) | {p1, p3} | |− q | 對(i)、 (iii)應用(⇒−) |
(v) | {p1, p2, p3} | |− r | 對(ii)、(iv)應用(⇒−) |
(vi) | {p1, p2} | |− p ⇒ r | 對(v)應用(⇒+) |
(vii) | {p1} | |− (q ⇒ r) ⇒ (p ⇒ r) | 對(vi)應用(⇒+) |
(viii) |   | |− (p ⇒ q) ⇒ ((q ⇒ r) ⇒ (p ⇒ r))      | 對(vii)應用(⇒+) |
在本小節我們看另一種推理系統-「公理系統」。「公理系統」的特點是以一組「公理」
(Axiom)或某些已證明的「定理」作為推理的出發點,然後根據一些「變形規則」,從這些「公理」或「定理」
推出其他公式,一步一步地推向「結論」。
以下是「命題演算」其中一個「公理系統」的「公理」(註2):
(A1)     | |− p ∨ p ⇒ p |
(A2) | |− p ⇒ p ∨ q |
(A3) | |− p ∨ q ⇒ q ∨ p |
(A4) | |− (q ⇒ r) ⇒ (p ∨ q ⇒ p ∨ r) |
為說明上述概念,以下我們看一個推理的例子。在這個推理中,我們要用到以下兩條「變形規則」:
(T1)     | 從|− p推出|− p[y/x] |
(T2) | 從|− p和x ≡ y推出|− p[y//x] |
在上式中,p[y/x]代表把公式p中所有子公式x換為y,p[y//x]則代表把p中部分(不一定要全部)子公式x換為y, 在上述規則中的x和y本身也必須是「合式公式」。我們要證明下式(下式是「假言三段論」的另一種表現形式) :
以下是對上述「定理」的證明:
(i) | |− (q ⇒ r) ⇒ (p ∨ q ⇒ p ∨ r) | (A4) |
(ii) | |− (q ⇒ r) ⇒ (~p ∨ q ⇒ ~p ∨ r) | 對(i)應用(T1) :把p換為~p |
(iii) | |− (q ⇒ r) ⇒ ((p ⇒ q) ⇒ ~p ∨ r) | 對(ii)應用 (T2):~p ∨ q ≡ p ⇒ q |
(iv) | |− (q ⇒ r) ⇒ ((p ⇒ q) ⇒ (p ⇒ r))      | 對(iii)應用(T2):~p ∨ r ≡ p ⇒ r |
接下來我們討論「命題演算」的語義解釋。在邏輯學上,命題的「語義解釋」就是它的真值,真值只有兩個:
「真」和「假」,分別用1和0來代表。此外,我們還需要「解釋函項」(Interpretation Function)
(本文用|| ||表示)的概念。對於任何一個「命題變項」p而言,||p||就是p的真值,這個值可以是1或0。對於
由多個「命題變項」組合而成的「合式公式」p而言,||p||的值則取決於其子公式的真值,並因而最終取決於p
所含各個「命題變項」的真值。對於含有n個「命題變項」的「合式公式」p而言,由於每個「命題變項」都可
有1和0這兩種可能值,因此p的「命題變項」便有2n種取值組合,我們把每種取值組合稱為p的一個
「解釋」(Interpretation,亦稱「賦值」Assignment)。例如設p = ~((~q ∧ r) ∧ s)而言
,||q|| = 0,||r|| = 1,||s|| = 0便是p的其中一個「解釋」。
「解釋函項」須滿足以下條件(在下述條件中,p和q為「合式公式」):
(I1) | ||~p|| = 1當且僅當||p|| = 0 |
(I2) | ||p ∧ q|| = 1當且僅當||p|| = 1並且||q|| = 1 |
至於||p ∨ q||、||p ⇒ q||和||p ⇔ q||的條件,可根據上面的(D1)-(D3)以及(I1)-(I2)來確 定。舉例說,假設||p|| = 1和||q|| = 0,那麼我們可以通過以下步驟計算||p ⇒ q||的值:
||p ⇒ q|| | = ||~p ∨ q|| | (D2) |
  | = ||~(~(~p) ∧ ~q)||      | (D1) |
  | = 0 | ||~(~(~p))|| = 0,||~q|| = 1 |
利用「解釋函項」,我們還可以定義「命題演算」上的其他語義概念。對於包含「命題變項」q、r ...的「合 式公式」p而言,如果在至少一種解釋||q||、||r|| ...下,有||p||等於1,則稱p為「可滿足式」 (Satisfiable Formula),我們亦稱該解釋「滿足」p。如果所有解釋都滿足p,則稱p為「重言式」 (Tautology);如果所有解釋都不滿足p,則稱p為「矛盾式」(Contradiction)。如果所有滿足命題集 合P中全部命題的解釋都滿足p,我們便說p是P的「語義後承」(Semantic Consequence)。仿照前面對 「語形後承」的表達法,我們把上述P與p的關係記作
假如我們把上式中的P換為空集,那麼p便是「重言式」,換句話說,我們可以把「p是重言式」表達為
或甚至進一步簡化為
舉例說,我們有
這是因為滿足p ∧ q的「解釋」只可能是||p|| = 1,||q|| = 1,而此一「解釋」顯然滿足p。
在本小節我們將考察某些「元邏輯性質」(Metalogical Property),即有關整個形式系統的性質。現 代數理邏輯有兩個基本的「元邏輯性質」:「可靠性」和「完備性」。「可靠性」(Soundness)是指 ,某一形式系統的所有「定理」都是「重言式」,「完備性」(Completeness)則是指,某一形式系統 的所有「重言式」都是「定理」。利用前面的「後承」符號,可以把上述兩種「元邏輯性質」分別表達為:
數理邏輯學家已證明,本文介紹的「命題演算」系統同時具備上述兩種性質,此一結果的重要性在於把形式系
統的語形和語義概念聯繫起來。「定理」是一個語形概念,它告訴我們某一公式是可證的;「重言式」則是一
個語義概念,它告訴我們某一公式在任何解釋下都是真的。據此,上述結果顯示,在本文介紹的「命題演算」
系統下,「可證」和「真」是等價的。
除了上述兩種性質外,邏輯學家還經常討論到兩種「元邏輯性質」:「一致性」和「可判定性」。在邏輯學上
,「一致性」(亦譯作「無矛盾性」Consistency)有多種定義,這裡只介紹其中一種。若果某形式系
統不存在任何公式p,使得p和~p都是該系統的「定理」,那麼該系統便是一致的。請注意「一致性」對一個推
理系統來說是非常重要的性質,因為一個有效的推理系統最起碼應避免存在矛盾。假如一個推理系統能夠同時
推出p和~p,這便代表這個系統存在矛盾,因而是不可取的。數理邏輯學家已證明,本文介紹的「命題演算」系
統是一致的,這確保這個系統能夠成為其他更複雜的邏輯系統的基礎。
「可判定性」(Decidability)則是說存在一種機械的「算法」,可以讓我們在有限的步驟內判斷任何
一個「合式公式」是否某一形式系統的「定理」。數理邏輯學家已證明,本文介紹的「命題演算」系統是可判
定的。事實上,邏輯學家已發展出多種用來判定某一「合式公式」是否「定理」的方法,例如利用「真值表」
和把公式化作「範式」便是常用的兩種判定方法。除了上述四種性質外,還有一些較次要或涉及較艱深概念的
「元邏輯性質」,本文無法一一介紹。
「命題演算」以命題作為邏輯分析的最小單位,因此在「命題演算」那裡,命題是沒有內部結構的。可是,當 我們要對命題的內部構件(例如「量詞」、「謂詞」等)進行邏輯推理時,「命題演算」便不夠用,這時我們便 要把「命題演算」擴充為「謂詞演算」。由於「謂詞演算」可被看成「命題演算」的擴充,後者的很多概念都 適用於前者,不過前者亦包含很多後者所無的新概念。為免重複上文提過的內容,以下將著重介紹「謂詞演算 」中與「命題演算」不同的內容。
跟「命題演算」一樣,「謂詞演算」的語形部分也有一組「初始符號」和「形成規則」,而且包含著「命題演 算」的「初始符號」和「形成規則」。不過,「謂詞演算」也有一些新的元素。在「初始符號」方面,「謂詞 演算」的新元素包括「個體常項」(Individual Constant)、「個體變項」(Individual Variable)、「謂詞變 項」(Predicate Variable)和一個「量詞」(Quantifier):「∀」(代表「所有」),其中「謂詞變項」 可按照其所含論元的數目分為「一元謂詞變項」、「二元謂詞變項」等。在「形成規則」方面,「謂詞演算」 的新元素包括兩條包含謂詞和量詞的新規則(以下稱為(F3')和(F3''),以便置於上面2.1小節的(F3)之後):
(F3')     | 若P是「n元謂詞變項」,a1 ... an是「個 體常項/變項」,則P(a1, ... an)是「合式公式」。 |
(F3'') | 若p是「合式公式」,x是「個體變項」,則∀x(p)是「合式公式」。 |
此外,「謂詞演算」還需要以下「定義」,以便引入另一量詞「∃」(代表「存在(至少一個)」):
除了上述內容外,「謂詞演算」還有一些獨特的概念,這些概念涉及到「量詞」與「個體變項」的關係,以下 逐一介紹。首先,我們把形如「Qx(...)」(其中Q代表量詞「∀」或「∃」)的表達式分為兩部分: 「Qx」和「(...)」,前者是表達式的「前綴」(Prefix),後者則是量詞Q的「轄域」 (Scope)(註3)。在表達式「Qx(...)」中,我們說量詞Q「約束」著「Qx」和「(...)」中的變項x。若某表達式 包含多個量詞,這些不同的量詞會各自約束不同的變項。我們把受任一量詞約束的變項稱為「約束變項」 (Bound Variable),不受任何量詞約束的變項則稱為「自由變項」(Free Variable)。舉例說, 在表達式
中,z和R(y)中的y便是「自由變項」(請注意R(y)不在「∃」的「轄域」內,因此在上式中「∃」並 不約束其「轄域」內的任何變項,我們把這種情況稱為「空約束」Vacuous Binding),而其餘的變項都是「約 束變項」。請注意只有當某一「合式公式」完全不含「自由變項」時,它才是有真假可言的「命題」,否則它 只是一個「命題函項」(Propositional Function,亦稱「開語句」Open Sentence),即須在這些「 自由變項」全部代入適當的「個體常項」後,才變成「命題」。舉例說,我們可以把前面的(1)看成含有兩個變 項z和y的「命題函項」,並把它表達為f(z, y)。當我們把z和y代入「個體常項」後,便可得到一個「命題」, 並判斷其真假。
「謂詞演算」的推理系統也可分為「自然演繹系統」和「公理系統」兩種,本小節將只介紹前者。除了繼承「 命題演算」的「變形規則」,「謂詞演算」也有本身獨特的「變形規則」,例如:
(T) | 「命題演算」中的所有定理都是「謂詞演算」的定理 |
(∀−)     | 從P |− ∀x(p)推出P |− p[y/x],其中y不包含p中的約束變項(註4) |
(∀+) | 從P |− p[y/x]推出P |− ∀x(p),其中y不是P和 ∀x(p)中的自由變項 |
(∃−) | 從P |− ∃x(p)和P' |− p[y/x] ⇒ q推出 P ∪ P' |− q,其中y不是P、P'、q和∃x(p)中的自由變項(註5) |
(∃+) | 從P |− p[y/x]推出P |− ∃x(p),其中y不包含p中的 約束變項 |
上面後四條規則是有關兩個量詞的推理規則,每條規則都包含一定的使用條件限制,這些限制是為了防止錯誤
地使用這些規則。本文不擬解釋這些限制的理據,有興趣的讀者請自行參考有關書籍或網頁,以下筆者僅以一
些證明的實例展示上述規則的應用。
利用上述規則,我們可以使用「謂詞演算」的數學語言來證明古典形式邏輯中的某些有效推理。舉例說,以下
是「直言三段論」中「AAA-1式」的證明(以下為各個「前提」的代號:p1 = ∀x (M(x)
⇒ P(x));p2 = ∀x (S(x) ⇒ M(x))):
(i) | {p1} | |− ∀x (M(x) ⇒ P(x))      | 前提 |
(ii) | {p2} | |− ∀x (S(x) ⇒ M(x)) | 前提 |
(iii) | {p1} | |− M(y) ⇒ P(y) | 對(i)應用 (∀−) |
(iv) | {p2} | |− S(y) ⇒ M(y) | 對(ii)應用 (∀−) |
(v) | {p1, p2} | |− S(y) ⇒ P(y) | 對(iv)、(iii)應用T:假言三段論 |
(vi) | {p1, p2} | |− ∀x (S(x) ⇒ P(x)) | 對(v)應用(∀+) |
請注意上面第(i)、(ii)和(vi)行的公式就是「AAA-1式」在「謂詞演算」中的表達式,上面的推理證明了在
p1和p2這兩個「前提」下,我們可以推出第(vi)行的結論。當然我們還可以繼續利用
(⇒−)兩次把上面第(vi)行化為沒有「前提」的「定理」,為免使上述推理過於冗長,
筆者沒有寫出這最後的兩步。由此可見,「AAA-1式」在「謂詞演算」中具有「定理」的地位。
根據以上討論,有些讀者可能以為古典形式邏輯中的全部有效推理都是「謂詞演算」中的「定理」,但其實不
然。筆者在《廣義量詞系列:古典推理模式》中曾指出,古典形式邏輯中
的「對當關係推理」以及小部分「三段論推理」(例如「對當關係推理」中的「差等關係」以及「三段論推理」
中的「AAI-3式」)隱含著一個「主語存在預設」。可是,「謂詞演算」卻沒有這個「預設」(但有一個「論域非
空預設」,請參閱(註4))。因此,上述隱含「主語存在預設」的有效推理必須附加適當的「前提」才能成為「
謂詞演算」中的「定理」。以下是「差等關係」推理的證明(以下為各個「前提」的代號:p1 =
∀x (S(x) ⇒ P(x));p2 = ∃x (S(x));p3 = S(y)):
(i) | {p1} | |− ∀x (S(x) ⇒ P(x)) | 前提 |
(ii) | {p2} | |− ∃x (S(x)) | 前提 |
(iii) | {p3} | |− S(y) | 前提 |
(iv) | {p1} | |− S(y) ⇒ P(y) | 對(i)應用 (∀−) |
(v) | {p1, p3} | |− P(y) | 對(iv)、 (iii)應用(⇒−) |
(vi) | {p1, p3} | |− S(y) ∧ P(y) | 對(iii)、(v)應用T:合取引入律 |
(vii) | {p1, p3} | |− ∃x (S(x) ∧ P(x)) | 對(vi)應用(∃+) |
(viii) | {p1} | |− S(y) ⇒ ∃x (S(x) ∧ P(x))      | 對(vii)應用(⇒+) |
(ix) | {p1, p2} | |− ∃x (S(x) ∧ P(x)) | 對(ii)、(viii)應用(∃−) |
請注意在上述推理中,「前提」p3是為了應用(∃−)規則而引入的,最終
結論並不依賴於此一「前提」。另請注意,上述推理的第(vii)行其實已推出我們想要的結論「∃x (S(x)
∧ P(x))」,但此一公式當時是基於不正確的「前提」集合{p1, p3},因此我們要
繼續進行第(viii)和(ix)行的推演,把「前提」集合改為正確的{p1, p2}。上述推理
的第(ix)行顯示,該推理的結論(相當於「古典對當方陣」中的I句)依賴於兩個「前提」,其中p1
就是「對當方陣」中的A句,而p2則是「主語存在預設」。
至此我們看到,傳統有關「複合命題」和「量化句」的推理都統一在「謂詞演算」的框架下,傳統邏輯的有效
推理形式(某些須附加適當的「預設」)成為「謂詞演算」定理的一個子集。不僅如此,「謂詞演算」的表達力
還超出了傳統邏輯的框框,它所能處理的推理不只可包含一至兩個「前提」,而且可以包含任意數目的「前提」
。此外,一些傳統邏輯難以處理的複雜命題,例如「關係命題」(即包含「迭代量詞」的命題)在「謂詞演算」
中也變得容易處理。以下是一個「關係命題」推理的例子(以下為各個「前提」的代號:p1 =
∃x (M(x) ∧ ∀y (M(y) ⇒ R(y, x)));p2 = M(a) ∧ ∀y (M(y)
⇒ R(y, a))):
(i) | {p1} | |− ∃x (M(x) ∧ ∀y (M(y) ⇒ R(y, x))) | 前提 |
(ii) | {p2} | |− M(a) ∧ ∀y (M(y) ⇒ R(y, a)) | 前提 |
(iii) | {p2} | |− ∀y (M(y) ⇒ R(y, a)) | 對(ii)應用T:合取消去律 |
(iv) | {p2} | |− M(a) ⇒ R(a, a) | 對(iii) 應用(∀−) |
(v) | {p2} | |− M(a) | 對(ii)應用T:合取消去律 |
(vi) | {p2} | |− R(a, a) | 對(iv)、(v)應用 (⇒−) |
(vii) | {p2} | |− M(a) ∧ R(a, a) | 對(v)、 (vi)應用T:合取引入律 |
(viii) | {p2} | |− ∃x (M(x) ∧ R(x, x)) | 對(vii)應用(∃+) |
(ix) |   | |− M(a) ∧ ∀y (M(y) ⇒ R(y, a)) ⇒ ∃x (M(x) ∧ R(x, x))      | 對(viii)應用 (⇒+) |
(x) | {p1} | |− ∃x (M(x) ∧ R(x, x)) | 對(i)、(ix)應用(∃−) |
從上述推理的最後一行我們得到以下「關係命題」的有效推理:
以下是上述有效推理形式的一個實例:
正是由於「謂詞演算」具有傳統邏輯所無的嚴格性、明晰性和表達力,在「謂詞演算」興起後,傳統邏輯便迅 即失去重要性。
跟「命題演算」相同,在定義「謂詞演算」的某些語義概念時,我們也需要用到「解釋函項」的概念,在這裡
我們只需把上面2.4小節介紹的「解釋函項」擴展至「謂詞演算」特有的「初始符號」便行了。對於「謂詞演算
」而言,我們需要兩種語義實體:真值和個體,我們把由後者組成的論域記作U,並且假設U含有無限個元素。
對於任何「個體常項」a而言,||a||為U中的一個元素(註6)。對於任何「n元謂詞變項」P而言,||P||為由U中n
個元素組成的「有序n元組」。類似「命題演算」那樣,我們把某一「合式公式」p所含的「命題變項」、「謂
詞變項」和「個體常項」的各種可能取值組合稱為p的一個 「解釋」(這裡亦稱「模型」Model)。
此外,「解釋函項」還須滿足以下附加條件(在下述條件中,P為「n元謂詞變項」,a、a1、 ...
an為「個體常項」,x為「個體變項」,p為僅包含x此一「個體變項」的「命題函項」):
(I3) | ||P(a1, ... an)|| = 1當且僅當(||a1||, ... ||an||) ∈ ||P|| |
(I4) | ||∀x(p)|| = 1當且僅當對U中所有元素a而言,||p[a/x]|| = 1 |
至於||∃x(p)||的條件,則可根據上面的(D4)以及(I1)-(I4)來確定。
我們也可以定義「謂詞演算」上的其他語義概念,如「可滿足式」、「語義後承」等,其定義跟「命題演算」
的對應概念大致相同,只不過「謂詞演算」一般不使用「重言式」和「矛盾式」這兩個名稱,而分別代之以
「邏輯有效式」(Logically Valid Formula)和「不可滿足式」 (Unsatisfiable Formula)
。
「謂詞演算」亦有與「命題演算」相似的「元邏輯性質」。數理邏輯學家已證明,本文介紹的「謂詞演算」系
統是可靠、完備和一致的。如果只考慮「一元謂詞演算」(Monadic Predicate Calculus),即所有「謂詞變項」
皆為「一元謂詞變項」的「謂詞演算」系統,那麼「一元謂詞演算」系統也是可判定的,但「多元謂詞演算」
系統卻是不可判定的。
「演繹」與「歸納」可被看成兩種最重要的邏輯推理方法,不過人們對這兩種方法的區別卻有不同的看法。以 往人們主要把這兩種推理方法分別看成「從一般到特殊」和「從特殊到一般」的推理方法,這是因為某些傳統 的「演繹推理」確有「從一般到特殊」的特點,例如在以下省略了一個「前提」的「準三段論」推理中
前提: | 所有人都會死。 |
結論(必然真): | 蘇格拉底會死。 |
「前提」和「結論」分別表達了一般和特殊的事態。而傳統「歸納邏輯」著重研究的兩種推理模式-「完 全歸納推理」(Complete Induction)與「不完全歸納推理」(Incomplete Induction)確有「從 特殊到一般」的特點。以下是上述兩種歸納推理的一般格式:
前提: | a1是P |            | 前提: | a1是P |     (2) |
  | ... |   |   | ... | |
  | am是P |   |   | an是P | |
  | 沒有發現任何S的元素不是P |   |   | 至今沒有發現任何S 的元素不是P | |
  | S的元素為a1 ... am |   |   | S 的元素為a1 ... am,m > n | |
結論(必然真): | 所有S都是P |   | 結論(可能真): | 所有S都是P |
上述兩種推理格式的共同點是,兩者的「前提」和「結論」都分別表達了特殊和一般的事態。
可是,上述這種區分方法是片面的。一向被視作「演繹推理」的「三段論」的大多數推理格式其實都不是「從
一般到特殊」的推理,例如「AAA-1式」便明顯是「從一般到一般」的推理。事實上,我們也能夠構造「從特殊
到一般」以及「從特殊到特殊」的「三段論」推理,例如以下便是一個「從特殊到一般」的有效推理格式:
大前提: | a是P |
小前提: | a是唯一的S |
結論(必然真): | 所有S都是P |
反之,「歸納推理」也並非只能表現為「從特殊到一般」的形式。例如以下便是一個「從一般到特殊」的 「統計三段論」(Statistical Syllogism)推理格式:
前提1: | n%的S是P (0 < n < 100) |
前提2: | a是S |
結論(可能真): | a是P |
由此可見,「一般/特殊」並非區分「演繹」與「歸納」的可靠標準。事實上,今天邏輯學界已普遍採納另一
種區分標準,這就是根據「前提」與「結論」之間是否存在必然的推導關係來區分這兩種推理。在此一標準下
,如果一個推理的「前提」真,其「結論」必然真,這種推理就是「演繹推理」;如果一個推理的「前提」真
,其「結論」並不必然真,這種推理就是「歸納推理」。
根據此一標準,傳統邏輯所稱的「完全歸納推理」實際上應被算作「演繹推理」,而「不完全歸納推理」和「
統計三段論」才是真正的「歸納推理」(註7),這可以從上述推理的一般格式中的「結論」分別含有「必然真」
和「可能真」的字眼看出。由於「歸納推理」帶有或然性,現代的「歸納推理」需要大量引入「概率論」和「
統計學」上的知識,成為一門有別於古典「歸納推理」的學科,故被稱為「統計歸納推理」。當前的「統計歸
納推理」內容豐富,流派眾多,本文只擬簡介其基本原理。
如前所述,「統計歸納推理」需要應用「概率論」的知識。但對於概率的定義,各派學者意見不一,以下僅舉 出其中一派-「頻率論」(Frequentism)的定義。根據「頻率論」,某事件的概率被理解為在大量試驗下該事件 出現的「相對頻率」(Relative Frequency)的「極限值」(Limit),用數式表達就是
在上式中,Np代表在n次試驗中事件p出現的次數,Np / n就是事件p的「相對頻率」,
當n趨向無窮大或某個最大值時,這個頻率的「極限值」就是p的概率。
從「歸納推理」的角度看,我們不可能考察某一「總體」(Population)中的所有元素,看看對每個元素而言p是
否成立。我們只能從該「總體」中抽取某一數目為n的「樣本」(Sample),並考察這個樣本中的元素,從而得到
p在這個「樣本」中的「相對頻率」Np / n。「統計歸納推理」的基本原理就是,從p在某個「樣本
」中的「相對頻率」推斷p在「總體」中的「相對頻率」,後者實際上是前者的極限值,即上面定義的Prob(p)
。基於上述討論,我們可以把「統計歸納推理」概括為下式:
至此我們可以把「統計歸納推理」的基本格式表達為
前提: | a1是P |     (3) |
  | a2不是P | |
  | ... | |
  | aj是P (1 ≤ j ≤ n)發生的「相對頻率」為x | |
  | S的元素為a1 ... am,m > n | |
結論(可能真): | 對S任一元素ai而言,ai是P發生的概率為x |
請注意當x = 1時,上述推理便化歸為前述的「不完全歸納推理」(2),由此可見,傳統的「不完全歸納推理」 實際是現代「統計歸納推理」的特例。
如前所述,「歸納推理」的「前提」與「結論」之間只具有或然的推導關係。但對於不同的「歸納推理」而言 ,這種或然性的大小可以各有不同。為了刻劃這種或然性的大小,現代的「統計歸納推理」引入「歸納強 度」(Inductive Strength)的概念。「歸納強度」可表現為區間[0, 1]上的一個實數,數值越大,則從「 前提」推出「結論」的可靠性越高。為了給予「歸納強度」一個數學定義,我們需要應用「概率論」上的「貝 葉斯定理」(Bayes' Theorem),其形式為
我們可以把上式中的c和p分別理解為「結論」和「前提」,Prob(c | p)和Prob(p | c)為「條件概率」,前者
代表在給定前提p真的條件下結論c真的概率,其餘類推;Prob(c)和Prob(p)則為「絕對概率」,前者代表在沒
有給定任何前提下結論c真的概率,其餘類推。請注意在上述定義中,不論是否給定任何前提,推理者都必定具
備某些背景知識,而且這些背景知識都會對概率的確定產生影響。換句話說,儘管Prob(c)是「絕對概率」,但
這個概率不是任意的,而是基於推理者的某些背景知識而定出來的。
接著讓我們利用上式表達「統計歸納推理」(3)的「歸納強度」所須符合的條件。為簡化討論,我們把(3)中的
「S的元素為a1 ... am,m > n」當作背景知識的一部分,並把(3)的「前提」簡化為
只有一句:「aj是P (1 ≤ j ≤ n)發生的「相對頻率」為x」。經上述簡化後,(3)變為:
前提(p): | aj是P (1 ≤ j ≤ n)發生的「相對頻率」為x |     (5) |
結論(c)(可能真): | 對S任一元素ai而言,ai是P發生的概率為x |
上述推理的「歸納強度」d應滿足以下條件:
其中Prob(c | p)由上面的公式(4)給出。上面的不等式是說,「歸納強度」不應大於結論c相對於前提p的「條
件概率」。請注意(6)只提供了d的範圍,而且Prob(c | p)的定義涉及三個概率,而這些概率的計算也並不簡單
,所以要定量地計算d的數值不是易事,但我們仍能根據(6)對「統計歸納推理」所應遵循的原則作出一些定性
的描述。
為簡化討論,以下只集中討論「統計歸納推理」的一個特例-「不完全歸納推理」,即當上面(5)中的x等於1的
情況。在此情況下,上面的(5)便變成:
前提(p): | 所有aj都是P (1 ≤ j ≤ n) |     (7) |
結論(c)(可能真): | S的所有元素ai都是P |
請注意在上述推理中,儘管從p推出c只具有或然性,但從c逆推出p卻是必然的,這是「不完全歸納推理」的特 點(註8)。基於此一觀察,必有Prob(p | c) = 1。把此一結果代入(4),我們便可以把上面的不等式(6)化簡為
上述不等式告訴我們在進行「不完全歸納推理」時所應遵循的一些原理。根據上式,為得到較高的「歸納強度」
d,我們應盡量提高Prob(c)和盡量減低Prob(p)。根據「概率論」的研究,一個歸納結論的概括性越低,該結論
真的概率便越高,例如設某一測試是以老鼠為研究對象,而經測試後所有對象都具有屬性P,那麼結論「所有老
鼠都具有屬性P」真的概率便較「所有哺乳類動物都具有屬性P」為高。因此提高Prob(c)的方法就是降低歸納結
論的概括性,但這樣做的代價是降低結論的預測能力,因此這裡有一個權衡利弊的問題。如果我們希望結論c具
有較高概括性而不致令Prob(c)太低,我們便要使受測試的對象具有較少相同的屬性(不包括P)。仍以前述的測
試為例,如果我們的研究對象不限於老鼠,而是包括其他多種哺乳類動物,而且所有對象都具有屬性P,那麼我
們便能以不很低的概率得到結論「所有哺乳類動物都具有屬性P」。
其次,根據「概率論」,
只要Prob(p' | p) ≠ 1 (即p'不能由p必然推出),必有
上式對我們的意義在於,如果我們把不能為p必然地推出的命題p'與p構成「合取」命題,所得「合取」命題的 概率必較原有命題的概率為低。對於上面的(7)而言,如果我們考察S的另一個元素an+1 ~∈ {a1 ... an},並且an+1也是P,那麼新的前提「所有aj都是P (1 ≤ j ≤ n + 1)」的概率必較原有前提的概率為低。因此,減低Prob(p)的方法就是適當地增加被考察 對象的數目,而這正符合我們對「歸納推理」的直觀,因為「樣本」越是接近「總體」,所得結論便越可靠。
至此筆者已介紹了現代數理邏輯的三個分支。由於現代數理邏輯(尤其是「謂詞演算」)非常成功,不同學科的 學者嘗試把現代數理邏輯的體系(特別是「公理系統」)推廣應用於其他學科,或發展出更多現代邏輯的分支, 本小節將概述不同學科在這方面的發展。
「命題演算」和「謂詞演算」脫胎自古典形式邏輯,所包含的邏輯詞項只有少數幾個「邏輯聯結詞」(即「~」
、「∧」等)和「量詞」(即「∀」、「∃」等),因此現代邏輯的一個重要發展方向是在「命題
演算」或「謂詞演算」的基礎上加入新的「初始符號」、「定義」、「公理」、「變形規則」等,以加強原有
系統的表達力。舉例說,只要我們在「謂詞演算」中加入「等詞」(=),並發展為「帶等詞的謂詞演算」
(Predicate Calculus with Equality)後,便可使新的系統能夠處理「有定摹狀詞」以及表達數量比較的量詞
(例如「超過n個」、「剛好n個」等),從而把數量比較概念帶入「謂詞演算」系統中。
不過,「帶等詞的謂詞演算」仍然不能處理數量的四則運算。為了把數學,首先是算術(註9),建立在堅實的邏
輯基礎上,數理邏輯學家以「自然數集」作為邏輯系統的論域,並加入有關自然數的「公理」,最著名的就是
「皮亞諾公理」(Peano Axiom),由這些「公理」構築起來的推理系統常被稱為「皮亞諾算術」(Peano
Arithmetic)。「皮亞諾算術」實際上就是把現代數理邏輯的方法應用於某一數學分支-「算術」的結果,在此
一推理系統中,普通的算術運算都被歸結為邏輯推理。舉例說,最普通不過的等式「1 + 1 = 2」便是此系統中
的一條「定理」,可以根據「謂詞演算」的「變形規則」從「皮亞諾公理」一步一步推導出來,這樣我們便為
「算術」確立了邏輯基礎。
現代數理邏輯在數學上的應用絕非只「算術」此一範疇,「幾何學」和「集合論」也各自發展了現代的「公理
系統」。當然,並非所有數學學科都像上述學科那樣已發展出完整的「公理系統」,不過這些學科無不朝著
「公理化」(Axiomatization)的方向發展,即都以某些「初始概念」、「公理」和「定義」為起點,
例如「抽象代數學」便是以「群」(Group)、「環」(Ring)、「域」(Field)等的「公理」為起點;「拓樸學」
便是以「拓樸空間」(Topological Space)的「公理」為起點;「概率論」便是以「概率」的「公理」為起點;
「測度論」便是以「測度」(Measure)的「公理」為起點......,然後一步一步推出每一學科的「定理」,建立
起一座座宏偉的數學大廈。
影響所及,一些與數學關係密切的自然科學乃至社會科學學科,例如「理論物理學」(Theoretical Physics)和
「數理經濟學」(Mathematical Economics)等,也有「公理化」的嘗試。在現代數學家Hilbert提出的23個亟待
解決的數學問題中,便有一個把物理學「公理化」的問題。不過,由於這些學科在本質上是經驗科學,不能單
靠「演繹法」推出所有結果,所以可以想見,這些學科在「公理化」方向上不能走得很遠。
在邏輯學方面,對「命題演算」和「謂詞演算」的發展可以採取多種不同的方向。第一種方向是把這些推理系
統推廣應用於其他邏輯學分支,從而發展出現代的「時態邏輯」、「真勢模態邏輯」、「道義模態邏輯」、「
認識模態邏輯」、「祈使邏輯」、「問題邏輯」等。其實,古代已有「真勢模態邏輯」和「道義模態邏輯」,
但直至現代才在數理邏輯的影響下形成「公理系統」,而且還產生了多個互有關連的系統。因此,現代「模態
邏輯」的元邏輯研究對象除了前述的「元邏輯性質」外,還包括不同「公理系統」之間的關係。
第二種方向是把「一階邏輯」發展為「高階邏輯」(Higher Order Logic)。儘管「謂詞演算」採用的「多元謂
詞」已大大超越傳統邏輯所能處理的「量化句」的範圍,但「謂詞演算」在本質上是「一階邏輯」,即其謂詞
都是以論域中的元素作為論元的「一階謂詞」,在某些情況下,這種謂詞難以表達某些概念。舉例說,「一階
謂詞」便難以表達自然語言中的某些副詞。在數學上,我們也難以用「一階邏輯」的語言表達「有限論域」、
「可數基數論域」等概念。為了提高表達力,我們必須引入「高階謂詞」,這些謂詞可以其他謂詞作為其論元
,例如某些「副詞」便可以理解為以「一階謂詞」為論元的「二階謂詞」。
第三種方向是把傳統的「二值邏輯」(Two-Valued Logic)推廣為「多值邏輯」(Multi-Valued Logic)。現代數
理邏輯雖然是對傳統邏輯的革新,但它繼承了傳統邏輯的「二值」性質,即其真值只有「真」和「假」兩種。
由於現實世界往往不是非黑即白,「二值邏輯」不能準確反映這種情況,所以在現代有不少學者嘗試構造「多
值邏輯」。早期的「多值邏輯」是「三值邏輯」,在這些邏輯中,第三個真值的意義多種多樣,包括「可能」
、「不知道」、「無定義」等。後來有些學者又發展出「n值邏輯」(其中n為大於或等於2的任意整數),乃至「
無窮值邏輯」。在當代,「模糊邏輯」(Fuzzy Logic)是一種新興的「多值邏輯」。由於模糊性是在自然語言中
廣泛存在的現象,這種邏輯有廣闊的應用和發展空間。
第四種方向是把新的量詞加入到「謂詞演算」中。「謂詞演算」雖然是對傳統邏輯的革新,但它所研究的量詞
並沒有超出傳統邏輯所研究的「全稱量詞」和「存在量詞」的範圍,因此它不能表達自然語言以及數學語言中
的很多量詞,例如"most"、("more ... than ...")、("an infinite number of")、
("an even number of")等。自從「廣義量詞理論」興起後,有些學者便嘗試把上述「廣義量詞」加入
到「謂詞演算」中,以構造新的具有較強表達力的推理系統。把不同的「廣義量詞」加入到「謂詞演算」中會
產生表達力強弱不同的系統,有些系統在表達力方面是另一系統的子系統,因此這些不同系統之間的關係便成
為新的元邏輯研究的課題。
此外,當代還有眾多新興的邏輯分支,它們有些是在典型的「演繹邏輯」的框架下對「演繹邏輯」的革新,例
如各種「非單調邏輯」(Non-Monotonic Logic)、「亞結構邏輯」(Substructural Logic)等;有些則已超出「
演繹邏輯」的框框,成為有別於「演繹推理」的推理方式,例如現代的「歸納邏輯」等,各種邏輯形成了龐大
的現代邏輯學學科群體,本文不能一一介紹。
現代數理邏輯對語言學三大主要學科-語法學、語義學和語用學都產生了影響。在語法學方面,由Chomsky開創
的「轉換生成語法」(Transformational Generative Grammar)(註10)便廣泛借用了現代數理邏輯的概念。事實
上,Chomsky基本上是把他本來就著電腦程式語言定義的「形式語法」(Formal Grammar)改造為描述自然語言的
語法,而「形式語法」又與現代邏輯的形式系統存在密切的對應關係,例如「形式語法」和「轉換生成語法」
都有一套「初始符號」和生成合法符號串的規則。不過,由於「轉換生成語法」忽視對語義問題的研究,它的
形式系統只有「語形」部分可與現代邏輯比擬,其「語義」部分則與現代邏輯的「語義解釋」大異其趣。後來
,「生成語法」在進入「管轄及約束理論」階段後,對原有系統作出重大修正,已不能再跟現代邏輯的形式系
統比擬。
在語義學方面,由於某些語義問題與邏輯問題有密切的關係,有些學者把數理邏輯應用於分析自然語言,從而
產生「自然語言邏輯」(Logic of Natural Language)(又稱「形式語義學」),由Montague開創的「蒙太格語法
」就是這方面的典型代表。Montague認為,人工語言(指數學、邏輯學和電腦程式語言)與自然語言在本質上沒
有分別,都可處理成形式系統。基於此一假設,他用數理邏輯的方法建構了一個描述英語某一片斷(Fragment)
的形式系統,稱為「蒙太格語法」。不過,Montague創立「蒙太格語法」,主要是為了使用形式語言表達英語
的量化結構和包含內涵詞項的語句,並解決某些語義問題,而非進行推理,所以Montague建構的系統只有相當
於數理邏輯中的「初始符號」、「形成規則」和「語義解釋」,而沒有「公理」、「變形規則」、「語形後承」
、「語義後承」等內容。後來Gallin把「蒙太格語法」進一步發展為一個「公理系統」,在這個系統中可以證
明某些日常語言的推理,例如
也可以進行元邏輯研究,這樣就使「蒙太格語法」具有與數理邏輯形式系統相同的內容。
繼Montague之後興起的「形式語義學」分支(例如「廣義量詞理論」、「類型-邏輯語法」、「動態語義學」、
「自然語言理解的加標演繹系統」等)繼續大量借用現代數理邏輯的形式化方法於自然語言的語義研究中,建構
了多個形式系統。不過,由於「形式語義學」所關注的是語言問題,建構這些系統主要是為了使用形式化的方
法解決某些語義問題,而不是為了進行邏輯推導,所以形式系統在「形式語義學」中的地位與在數理邏輯中的
地位有異。具體地說,「形式語義學」一般較關注形式系統的「表達力」而非「元邏輯性質」。有些學者則更
把注意力集中於研究「形式語義學」的固有課題(例如如何貫徹「組合性原則」、解決某些語義疑難問題等),
而非建構形式系統。雖然如此,現代邏輯的方法已深深植根於「形式語義學」之中,成為「形式語義學」的基
本方法之一。
在語用學方面,當代語用學三個主要流派-「言語行為理論」(Speech Act Theory)、「隱涵理論」
(Implicature Theory)和「關聯理論」(Relevance Theory)都把推理視為語用學研究的重要課題。當然,由於
「語用推理」有別於一般的邏輯推理,要像「形式語義學」那樣借用數理邏輯的方法建構語用推理的形式系統
不是易事。不過,近年來學界在這方面也已取得一些進展。舉例說,Searle和 Vanderveken發展了Austin的「
言語行為理論」,並建構了「語力邏輯」(Illocutionary Logic),後來蔡曙山再將之發展為完整的形式推理系
統。此外,Kaplan建立的「指示詞邏輯」(Logic of Demonstratives)把語境因素引入形式系統中以解決「索引
詞」(Indexical)的指稱問題,由於「語境」屬於語用概念,Kaplan的形式系統也可算作一種「語用推理」系統
。可以預期,將來應可建成一個「形式語用學」學科。