邏輯先從已經足夠完整、可以判斷真假的陳述開始。這個分別很重要: 一旦句子還未封閉,就不可以當作命題處理。
命題與真假值
定義
命題
命題是一個有確定真假值的陳述。它不是真,就是假,沒有第三種情況。
這個定義的目的不是令邏輯變得抽象,而是分清楚哪些句子已經可以檢驗, 哪些句子還未完整。
例子:
- 是命題。
每個偶數都可以被 2 整除是命題。請打開門。不是命題,因為它是命令。- 若未指定 , 還未是命題。
常見錯誤
含有自由變量的公式不會自動變成命題
如果句子的真假仍然依賴未指定的變量,那麼它仍然是開放句,不是完整陳述。 要先賦值,或者之後用量詞綁定它。
例題
判斷哪些句子是命題
考慮以下三句:
- 是質數。
- 。
請交功課。
第 1 句是命題,而且是真。第 2 句不是命題,因為要看 取甚麼值: 時為真, 時為假。第 3 句不是命題,因為它是請求,不是主張。相反,在 實數範圍內, 對每個實數 都為真,但在為 賦值或用量詞 綁定之前,它仍然是開放句。
邏輯分析只可以在句子足夠完整時開始。未封閉的句子,不適合直接做真值表分析。
布林字母表
課程反覆用到五個連接詞:
| 符號 | 讀法 | 核心意思 |
|---|---|---|
| 非 | 將真假值取反 | |
| 且 | 只有兩邊都真先真 | |
| 或 | 只要至少一邊真就真 | |
| 若 ,則 | 只有 真而 假時為假 | |
| 當且僅當 | 兩邊真假一致時才真 |
這些不是純粹的口語縮寫,而是邏輯語言的基本符號,用來拼出更複雜的陳述。
優先次序只有部分規定:
- 與 處於同一層級
- 同
與 之間沒有先後,所以同時出現時一定要加括號。下面例子直接展示這個問題:
例題
先解析,再閱讀
字串 有兩種可能讀法:
它可以表示 ,即 假而 真,或者 真;亦可以表示 ,即 假而 、 至少一個為真。這是兩條不同公式。
如果你想表達其他意思,就一定要明確加括號。
邏輯公式是精確對象。括號不是裝飾,而是決定句子真正內容的一部分。
語法、作用域與真值函數
良構公式用遞歸方式生成。原子命題 是公式;如果 是公式, 也是 公式,而且 恰好只有一個運算對象。如果 、 是公式,那麼 、、、 都是公式,每個二元連接詞恰好 需要兩個完整運算對象。因此 不是公式。
沒有歧義:先算 ,再算 ,最後算 , 所以是 。同樣, 是 ,因為 在 之前計算。雙條件比較 同 的真假值,並不是將整個析取式否定。
為原子命題指定 或 之後,每個連接詞都可以按照直接運算對象的值定出一個 結果;所以同一個賦值總會給同一條公式同一個真值。這就是公式的 truth function, 而真值表就記錄它的全部輸入同輸出。
真值表與邏輯等價
當你知道各個命題的真假值之後,就可以計算複合公式的真假。真值表就是用來記錄這件事。
定理
常用等價式
以下幾條等價式是基本工具,應該盡量熟記:
這些不是哲學命題,而是真值表恒等式。
例題
用真值表檢查蘊含
只會在一種情況下為假: 真而 假。其餘情況都為真。
所以 不是話 同 都真,而是排除咗「前件真、後件假」這種情況。
許多人會將 讀成因果句。在邏輯之中,它不是故事式的因果,而是真值條件。
推理規則
課程之中會反覆用到幾種有效推理模式。
定理
常見推理模式
如果 同 都真,那麼 一定真。這個叫 modus ponens。
如果 同 都真,那麼 一定真。這個叫 modus tollens。
如果 同 都真,那麼 都真。這個叫 hypothetical syllogism。
如果 同 都真,那麼 一定真。這個叫 disjunctive syllogism。
這些模式之所以重要,是因為它們似乎合法運算:前提真,結論就一定真。
例題
一條有效的推理鏈
假設你知道
你可以先由第一同第三句推出 ,再由第二句推出 。
所以結論 由前提邏輯上跟得出。
這個是 modus ponens 用兩次:先由 推 ,再由 推 。
常見錯誤
不好混淆有效同無效模式
由 同 ,你不可以推出 。這個謬誤叫 affirming the consequent。
由 同 ,你不可以推出 。這個謬誤叫 denying the antecedent。
否定前件的反模型
對論證 、,所以 ,取 、。因為前件為假, 蘊含式為真; 亦為真;但 為假。這個賦值同時滿足兩個前提而否定結論, 所以論證無效。
將條件翻譯成公式
布林字母代表一個完整命題,連接詞就記錄完整命題怎樣組合。因此,翻譯英文句子要 分兩步:先說明每個字母代表甚麼,再按原句的範圍選擇連接詞同括號。
例題
必要條件與充分條件
令 表示「這個整數可以被 4 整除」,令 表示「這個整數是偶數」。 「被 4 整除是成為偶數的充分條件」翻譯為 。同一個關係亦可以說成 「偶數是被 4 整除的必要條件」:只要 成立, 就必須成立。措辭次序改變了, 但箭咀仍然由被假定的條件指向必然跟隨的條件。
逆命題 是另一條斷言,原句沒有支持它。2 是反例:2 是偶數,但不可以被 4 整除。
因為 與 在課程約定中處於同一層級, 有歧義。要表達「 同 ,或者 」,寫 ;要表達「,而且 或 」,寫 。兩條公式可能在同一個賦值下給出不同真假值,所以一定要先確定分組。
有效性到底問甚麼
論證由前提與結論組成。當每一個令全部前提為真的賦值都同時令結論為真,論證就是 有效。這是在說公式之間的關係,並不是說前提在現實中一定是真的。
定理
用被禁止的一行檢查有效性
對前提 和結論 ,找一行:所有 都真而 是假。找到這一行, 就是反模型,論證無效;找不到,論證有效。等價地,公式
是一條永真式。
例題
肯定後件的反模型
以前提 同 推出結論 。取 、:因為前件為假, 為真;第二個前提 亦為真;但結論 為假。所以一行已經足以否定有效性。 前提為假的行不能做到這點,因為有效性只要求檢查全部前提都成立的行。
這亦解釋了邏輯等價同推理有效性不可混為一談。 表示兩個公式每一行都有 相同真假值;「,所以 」只要求沒有 真而 假的行。只要 是 永真式,推理就有效;除非 亦是永真式,否則反向推理未必有效。
否定及化簡命題
否定作用於它範圍內的整個命題。要否定「 同 」,應該寫 ,不可以 直接寫 ;用德摩根律後才得到等價式 。同樣, 只在 蘊含唯一為假的一行成立,所以
例題
改寫被否定的蘊含式
先用 ,再逐步用德摩根律及雙重否定:
最後的公式正好表示前件真而後件假,也就是蘊含失敗的條件。
這種改寫是受控制的化簡程序:先移除蘊含,再用德摩根律把否定推入合取或析取,最後 消去雙重否定。每一步都是等價變形,所以前後公式定義同一個真值函數。
由語法到意思的檢查
寫好公式之後,還要分開檢查語法與意思。語法檢查問:每個連接詞兩邊是否都是完整公式, 括號是否配對,優先次序是否造成預期結構。意思檢查問:在指定真假賦值之下,是否按照 連接詞定義算出唯一結果。前一個問題防止將開放句當成命題,後一個問題防止將口語的 「如果」誤讀成因果關係。
例題
同一組原子命題的不同結構
令 表示「今天下雨」, 表示「地面濕」, 表示「我帶傘」。公式 要求兩個部分都真;公式 則只在下雨時要求地面濕以及 帶傘。取 ,前一條公式是真,後一條公式亦是真;再取 ,兩條都假。要找到它們真的不同的賦值,取 :前者仍然是假,後者卻是真。這顯示括號決定連接詞的作用範圍, 不是只改變符號排列。
如果題目問「能否由前提推出結論」,就要分開寫前提與結論,再尋找全部前提為真而 結論為假的行。如果題目問「兩條公式是否等價」,就必須比較兩條完整的最後一欄;只找到 一行相同沒有證明作用。先辨認題型,可以避免用等價證明取代有效性證明。
蘊含、反模型與證明方向
蘊含不宣稱前件為真,也不表示因果關係。它的真值條件恰好排除前件真而後件假的賦值。逆命題反轉箭頭;逆否命題還同時否定兩端。
逆否命題的推導
等價於 。逆否命題 等價於 ,即 ;交換律又給出原來的析取式。因此 兩者在每個賦值下都等價。
例題
區分逆命題與逆否命題
令 表示「正在下雨」, 表示「地面是濕的」。逆命題 表示地面濕就 一定下雨;灑水器可以令地面濕而沒有下雨,所以這是另一條可能失敗的斷言。逆否命題 表示地面乾就沒有下雨,並且與原來的蘊含式等價。
Modus tollens 要檢查兩個前提
假設 同 都真。第二個前提迫使 ;若 ,第一個前提便 為假。因此 ,即 。排除 這一行的是第一個前提;檢驗有效性時 必須保留每個前提。
快速檢查
思考檢查
按課程約定, 是否沒有歧義?如果有,請寫出兩種括號方式。
記住 最先,而 與 處於同一優先層級。
解答 · 答案
它有歧義。兩種括號方式是 和 。
思考檢查
同 、,邊個等價?
看蘊含的真假條件。
解答 · 答案
同 等價。
思考檢查
推理 、,所以 有效嗎?
試想 其實是假的情況。
解答 · 答案
無效。這個謬誤叫 affirming the consequent。
探索真值條件
用互動表試驗你自己寫出來的公式。
邊讀邊試
跟著看一張真值表
這張示範表比較三個公式,並逐行檢查最後的真假。
| P | Q | P → Q |
|---|---|---|
| T | T | T |
| T | F | F |
| F | T | T |
| F | F | T |
下一步:計算真值表
繼續閱讀 1.2 真值表與邏輯等價,把本節的語法和真值規則組織成檢驗公式的完整方法。