「所有烏鴉都是黑的」:用集合與邏輯搭建數學推理的地基
從子集、冪集到迪摩根定律與量詞否定,看數學如何把「真假」與「一群東西」變成可演算的對象
「所有烏鴉都是黑的」——一句話裡藏著多少數學?
想像你在校園裡做田野調查,想驗證一個說法:「所有烏鴉都是黑的」。你看到第一隻烏鴉是黑的,第二隻也是,第三隻還是。你能就此宣布命題為真嗎?反過來說,只要你找到一隻白色烏鴉,這句話就徹底崩塌了。
這個日常的推理過程,其實同時動用了數學中兩個最基礎的工具:集合(set)——把「所有烏鴉」當成一個整體來談;以及邏輯(logic)——用「所有」「存在」「如果……就……」把判斷串成嚴謹的論證。整個數學大廈,從微積分到抽象代數,全都建在這兩塊地基上。讓我們一起把它們挖出來看清楚。

集合:把「一群東西」變成一個對象
集合是「一些明確對象聚在一起」所形成的整體,這些對象稱為它的元素(element)。我們用大括號列舉,或用條件描述:
$$A = \{1, 2, 3, 4, 5\}, \qquad B = \{\, x \mid x \text{ 是小於 } 10 \text{ 的正偶數} \,\}$$
其中 $B = \{2, 4, 6, 8\}$。豎線 $\mid$ 讀作「使得(such that)」,這種寫法稱為建構式(set-builder notation)。
判斷某個對象是否屬於集合,用 $\in$(屬於)與 $\notin$(不屬於):
$$3 \in A, \qquad 6 \notin A, \qquad 4 \in B$$
幾個關鍵觀念,初學時最容易忽略:
- 集合不計次序、不計重複。$\{1, 2, 3\}$ 與 $\{3, 1, 2, 2, 1\}$ 是同一個集合。集合只關心「誰在裡面」,不關心排幾次、排哪裡。
- 空集合(empty set) $\varnothing = \{\,\}$ 是不含任何元素的集合。它不是「沒有東西」,而是一個貨真價實的集合對象。
- 元素與集合是兩種層次。注意 $\{1\}$ 是一個含有元素 $1$ 的集合,而 $1$ 本身只是一個數。所以 $1 \in \{1\}$ 成立,但 $1 = \{1\}$ 並不成立。
我們也常用一些標準符號表示數系集合:自然數 $\mathbb{N}$、整數 $\mathbb{Z}$、有理數 $\mathbb{Q}$、實數 $\mathbb{R}$。
子集與冪集:集合之間的包含關係
如果 $A$ 的每一個元素都屬於 $B$,就說 $A$ 是 $B$ 的子集(subset),記作 $A \subseteq B$。例如:
$$\{2, 4\} \subseteq \{2, 4, 6, 8\}, \qquad \mathbb{N} \subseteq \mathbb{Z} \subseteq \mathbb{Q} \subseteq \mathbb{R}$$
兩個重要事實常被當成「考點」,其實背後都有道理:
- 空集合是任何集合的子集:$\varnothing \subseteq A$ 永遠成立。因為要否證它,你得找到一個「屬於 $\varnothing$ 卻不屬於 $A$」的元素——但 $\varnothing$ 根本沒有元素,所以永遠找不到反例。這種「因為沒有反例所以為真」的論證稱為空真(vacuously true)。
- 任何集合是自己的子集:$A \subseteq A$。
一個集合所有子集所成的集合,稱為它的冪集(power set),記作 $\mathcal{P}(A)$。若 $A = \{a, b\}$,則:
$$\mathcal{P}(A) = \{\, \varnothing,\ \{a\},\ \{b\},\ \{a, b\} \,\}$$
注意 $\mathcal{P}(A)$ 的元素本身都是集合。若 $A$ 有 $n$ 個元素,則 $\mathcal{P}(A)$ 恰有 $2^n$ 個元素——因為每個元素都面臨「選入子集 / 不選入」兩種獨立選擇。這個 $2^n$ 之後在組合數學、機率裡會反覆出現。
集合運算:聯集、交集、差集與補集
集合之間可以做運算,像數的加減乘除一樣。設全集(universal set)為 $U$:
| 運算 | 符號 | 定義 |
|---|---|---|
| 聯集 union | $A \cup B$ | $\{x \mid x \in A \text{ 或 } x \in B\}$ |
| 交集 intersection | $A \cap B$ | $\{x \mid x \in A \text{ 且 } x \in B\}$ |
| 差集 difference | $A \setminus B$ | $\{x \mid x \in A \text{ 且 } x \notin B\}$ |
| 補集 complement | $A^{c}$ | $\{x \in U \mid x \notin A\}$ |
看一個例子
設 $U = \{1, 2, 3, \dots, 10\}$,$A = \{1, 2, 3, 4, 5\}$,$B = \{4, 5, 6, 7\}$。逐一計算:
$$A \cup B = \{1, 2, 3, 4, 5, 6, 7\}$$ $$A \cap B = \{4, 5\}$$ $$A \setminus B = \{1, 2, 3\}, \qquad B \setminus A = \{6, 7\}$$ $$A^{c} = \{6, 7, 8, 9, 10\}$$
請特別留意 $A \setminus B \neq B \setminus A$:差集不可交換,這跟減法 $5 - 3 \neq 3 - 5$ 是同一種直覺。
計算元素個數時,容斥原理(inclusion–exclusion principle) 很實用:
$$|A \cup B| = |A| + |B| - |A \cap B|$$
驗證一下:$|A| + |B| - |A \cap B| = 5 + 4 - 2 = 7 = |A \cup B|$。為什麼要減掉 $|A \cap B|$?因為 $4$ 和 $5$ 同時屬於 $A$ 和 $B$,直接相加會被算兩次,必須扣回一次。
命題邏輯:真假的演算
命題(proposition) 是一個能明確判定真假的陳述句。「$2 + 2 = 4$」是命題(真),「$7$ 是偶數」是命題(假),但「今天天氣真好」不是命題(沒有客觀真假)。
我們用邏輯連接詞把簡單命題組合成複雜命題。設 $p$、$q$ 為命題:
| 名稱 | 符號 | 讀法 | 何時為真 |
|---|---|---|---|
| 否定 negation | $\neg p$ | 非 $p$ | $p$ 為假時 |
| 合取 conjunction | $p \land q$ | $p$ 且 $q$ | $p$、$q$ 皆真 |
| 析取 disjunction | $p \lor q$ | $p$ 或 $q$ | $p$、$q$ 至少一真 |
| 條件 conditional | $p \to q$ | 若 $p$ 則 $q$ | 僅當 $p$ 真而 $q$ 假時為假 |
| 雙條件 biconditional | $p \leftrightarrow q$ | $p$ 若且唯若 $q$ | $p$、$q$ 真假相同時 |
最容易被誤解的是條件句 $p \to q$。它的真值表如下:
| $p$ | $q$ | $p \to q$ |
|---|---|---|
| 真 | 真 | 真 |
| 真 | 假 | 假 |
| 假 | 真 | 真 |
| 假 | 假 | 真 |
關鍵在後兩列:當前件 $p$ 為假時,整個 $p \to q$ 一律為真。回到開頭的例子,「如果這是白色烏鴉,那麼我請客」——只要你根本沒遇到白色烏鴉,這個承諾就「沒有被違背」,因此判定為真。這正是前面提到的空真現象在邏輯裡的化身。$p \to q$ 唯一為假的情況,是「前件成立、結論卻不成立」($p$ 真、$q$ 假)。
邏輯等價與量詞:推理的兩件利器
動手試試:用真值表驗證迪摩根定律
迪摩根定律(De Morgan's laws) 連接了「否定」與「且/或」:
$$\neg(p \land q) \equiv \neg p \lor \neg q, \qquad \neg(p \lor q) \equiv \neg p \land \neg q$$
符號 $\equiv$ 表示邏輯等價:兩個命題在所有情況下真假完全相同。我們用真值表驗證第一條:
| $p$ | $q$ | $p \land q$ | $\neg(p \land q)$ | $\neg p$ | $\neg q$ | $\neg p \lor \neg q$ |
|---|---|---|---|---|---|---|
| 真 | 真 | 真 | 假 | 假 | 假 | 假 |
| 真 | 假 | 假 | 真 | 假 | 真 | 真 |
| 假 | 真 | 假 | 真 | 真 | 假 | 真 |
| 假 | 假 | 假 | 真 | 真 | 真 | 真 |
第 4 欄與第 7 欄逐列相同,等價成立。用白話說:「並非(又是 A 又是 B)」等於「不是 A,或不是 B」。例如否定「他既高又瘦」,正確說法是「他不高,或不瘦」,而不是「他不高且不瘦」——這是日常推理最常犯的錯。
量詞:談論「所有」與「存在」
命題邏輯處理不了「所有烏鴉都是黑的」,因為它牽涉一個變數 $x$ 跑遍整個範圍。這時需要量詞(quantifier):
- 全稱量詞(universal) $\forall$:讀作「對所有」。$\forall x\, P(x)$ 表示範圍內每個 $x$ 都使 $P(x)$ 為真。
- 存在量詞(existential) $\exists$:讀作「存在」。$\exists x\, P(x)$ 表示至少有一個 $x$ 使 $P(x)$ 為真。
最有用的技能是量詞的否定。否定一個全稱命題,會變成存在命題,反之亦然:
$$\neg\bigl(\forall x\, P(x)\bigr) \equiv \exists x\, \neg P(x)$$ $$\neg\bigl(\exists x\, P(x)\bigr) \equiv \forall x\, \neg P(x)$$
回到開頭:要推翻「所有烏鴉都是黑的」($\forall x\, P(x)$),只需證明「存在一隻烏鴉不是黑的」($\exists x\, \neg P(x)$)——找到一隻白烏鴉就夠了。這在數學證明中無處不在:要否證「所有連續函數都可微」,只要舉出一個反例(如 $f(x) = |x|$ 在 $x = 0$ 處連續但不可微)即可。
重點回顧
- 集合是不計次序、不計重複的整體;$\varnothing \subseteq A$ 對任何 $A$ 恆成立(空真),且 $n$ 元素集合的冪集有 $2^n$ 個子集。
- 集合運算($\cup$、$\cap$、$\setminus$、補集)可用容斥原理 $|A \cup B| = |A| + |B| - |A \cap B|$ 計算個數;差集不可交換。
- 條件句 $p \to q$ 只有在「$p$ 真、$q$ 假」時為假;前件為假時一律為真,這是空真在邏輯中的體現。
- 迪摩根定律 $\neg(p \land q) \equiv \neg p \lor \neg q$ 連接否定與且/或,否定複合句時務必同時翻轉連接詞。
- 量詞否定把 $\forall$ 與 $\exists$ 對調:推翻全稱命題只需一個反例,這是數學反證的核心。
深入探討(研究所視角)
把集合與邏輯推到底,會碰到二十世紀數學基礎最深刻的議題。
樸素集合論的危機與公理化。 我們前面用的是樸素集合論(naive set theory)——只要能用語言描述,就承認它是集合。但 1901 年羅素(Bertrand Russell)發現一個致命矛盾:考慮「所有不包含自身為元素的集合」所成的集合 $R = \{\, x \mid x \notin x \,\}$。試問 $R \in R$ 嗎?若 $R \in R$,則依定義 $R \notin R$;若 $R \notin R$,則依定義又有 $R \in R$。無論如何都矛盾。這就是羅素悖論(Russell's paradox)。它逼使數學界放棄「任意條件都能造集合」,轉向公理化集合論,其中最通行的是 ZFC(Zermelo–Fraenkel set theory with the Axiom of Choice)。ZFC 的「分離公理(axiom schema of separation)」規定:只能在既有集合內部用條件篩選子集 $\{\, x \in A \mid P(x) \,\}$,而非憑空從整個宇宙造集合,從根本上堵住了悖論。
選擇公理(Axiom of Choice, AC)的微妙。 AC 斷言:給定任意一族非空集合,總能「同時各挑一個元素」組成新集合。對有限族這顯然成立,但對無限族它無法從其他公理推出,且會導出反直覺結論——如 Banach–Tarski 悖論:一顆實心球可被分解成有限塊,重新拼裝成兩顆與原球同樣大小的球。AC 與其否定都與 ZF 相容(Gödel 與 Cohen 證明),所以它是「可選的信念」,而非邏輯必然。
形式系統的極限:哥德爾不完備定理。 邏輯本身也有邊界。哥德爾(Kurt Gödel)1931 年證明:任何足夠強(能表達算術)且一致的形式公理系統,必定存在「在系統內既無法證明、也無法否證」的真命題;而且系統無法在內部證明自己的一致性。這道破了希爾伯特(David Hilbert)「把全部數學機械化為可判定形式系統」的綱領。其證明核心是一種精巧的自我指涉——把「這個命題不可證明」編碼成算術命題,與羅素悖論、說謊者悖論共享同一個邏輯靈魂。
跨領域連結。 這些抽象結構其實離應用很近。命題邏輯的真值演算正是數位電路的設計語言($\land$、$\lor$、$\neg$ 對應 AND、OR、NOT 閘);布林代數(Boolean algebra)讓集合運算與邏輯運算統一在同一套代數結構下。一階邏輯的可判定性問題催生了圖靈機(Turing machine) 與整個計算理論,SAT(布林可滿足性)問題更是 NP-complete 理論的奠基石,與密碼學、最佳化、AI 推理引擎直接相關。而范氏圖(Venn diagram)背後的集合代數,也正是關聯式資料庫 SQL 中 UNION、INTERSECT、EXCEPT 的數學原型。你今天寫的每一條查詢,都在重演兩千年來人類對「集合」與「真假」的思考。