§1-1  集合的語言

「x 屬於 A」「A 包含於 B」這些記號的精確意思是什麼?兩個用完全不同方式描述的集合,要憑什麼判定它們相等?

為什麼從集合開始

演唱會入場口,工作人員拿著一份名單。你報上名字,接下來只有兩種結局:名字在名單上,進場;名字不在名單上,離場。沒有「算半個在」,沒有「大概在」,也沒有第三種答案——而且同一份名單,不管用什麼順序唸、名字重複列印幾次,放行的都是同一批人。

這種「非黑即白、只認成員」的脾氣,正是數學裡最基本的物件——集合——的全部脾氣。往後每一個定義,拆到最裡層都是一句「某某東西在不在某份名單上」。所以在碰任何分析之前,本篇先把這門語言的文法立好:怎麼寫「在名單上」、怎麼比較兩份名單、怎麼判定兩份名單其實是同一份。

屬於與包含

設 A 是一個集合。x 是 A 的元素——白話說,x 在 A 這份名單上——記作 x ∈ A;不在名單上,記作 x ∉ A。我們不追問「是元素」這件事的哲學本質,只提出一條紀律:對任何元素 x 與任何集合 A,x ∈ A 與 x ∉ A 恰有一個成立。入場口不允許曖昧。

兩個集合 A、B 同時在場時,一個元素 x 的處境共有四種可能:

(1) x ∈ A 且 x ∈ B;  (2) x ∈ A 且 x ∉ B;  (3) x ∉ A 且 x ∈ B;  (4) x ∉ A 且 x ∉ B。

A B (1)(2) (3)(4)

這張圖在畫四種處境各住在哪一塊:(1) 兩邊都在、(2) 只在 A、(3) 只在 B、(4) 兩邊都不在。之後本節的每一條定義與定理,都是在對這幾塊區域做文章。

如果情形 (2) 根本不會發生——A 的每個元素統統也在 B 裡——我們說 A 包含於 B(或 B 包含 A、A 是 B 的子集),記作 A ⊆ B。同樣地,情形 (3) 不發生就是 B ⊆ A。若 A ⊆ B 而且 B 裡真有元素不在 A 裡,稱 A 是 B 的真子集。

元素與子集是兩回事:對 B = {1, 2} 而言,1 ∈ B 是「元素在名單上」;{1} ⊆ B 是「一份較短的名單整份被包含」。寫成 1 ⊆ B 或 {1} ∈ B 都是文法錯誤——前者把人當名單,後者把名單當人。初學集合語言最常見的筆誤就是這一對。

要注意 A ⊆ B 並不排除「A 恰好把 B 佔滿」的可能——每個集合都是自己的子集。而當兩個方向的包含同時成立,兩份名單就再也分不出彼此。這正是「相等」該有的定義:

1.1  DEFINITION
Two sets A and B are equal when they have exactly the same elements — every element of A belongs to B, and every element of B belongs to A. In that case we write A = B.
兩個集合相等,意思是它們的元素完全相同。也就是說:要證 A = B,就證「情形 (2) 與情形 (3) 都不可能發生」——即 A ⊆ B 且 B ⊆ A,兩個方向的包含各驗一次。
正例:{1, 2} = {2, 1} = {1, 1, 2}——集合只認成員,不管列名順序、也不管名字重印幾次,三份名單成員相同。反例:{1, 2} ≠ {1, 2, 3}——3 只出現在一邊,情形 (3) 發生了。

「雙向包含」是這條定義的可操作形式,之後每一條集合恆等式的證明都長這個樣子:任取左邊的元素、證明它屬於右邊;再任取右邊的元素、證明它屬於左邊。本節稍後就會看到兩場完整示範。

集合的給法有兩種。一種是逐一列名:{1, 2}。另一種是開條件招人:設 P 是一個對某群元素有意義的性質,我們用

{x : P(x)}

表示「使 P 成立的一切 x」構成的集合,唸作「所有滿足 P(x) 的 x 所成的集合」。通常值得說清楚候選人是從哪個範圍來的,於是更常寫 {x ∈ S : P(x)}——在 S 之中滿足 P 的那些元素。兩種給法各有擅場:列名一目瞭然,條件能一口氣圈住無限多個元素。下面的例題練習在兩種給法之間翻譯。

例 1把 {x ∈ ℕ : x² − 3x + 2 = 0}、{2x : x ∈ ℕ}、{x ∈ ℕ : 6 < x < 9} 逐一翻譯成列元素的形式
條件式給法是往後各節的日常(實數軸上的區間、收斂點的集合,全都用條件圈出來),先在自然數 ℕ = {1, 2, 3, ⋯} 上練到熟。
對每個條件式集合,找出恰好滿足條件的所有元素並列名。
  1. {x ∈ ℕ : x² − 3x + 2 = 0}:解方程式 x² − 3x + 2 = 0,因式分解得 (x − 1)(x − 2) = 0,所以解只有 x = 1 與 x = 2,而且兩者都是自然數。因此這個集合就是 {1, 2}——條件審查完畢後,直接列名反而更省事。
  2. {2x : x ∈ ℕ}:這回條件寫成產生器——把每個自然數 x 送進公式 2x,產出 2, 4, 6, ⋯,正是全體偶數。它比囉嗦的寫法 {y ∈ ℕ : y = 2x,x ∈ ℕ} 簡潔,而成員完全相同。這份名單無窮長,列名寫法只能靠「⋯」示意——條件式給法在這裡勝出。
  3. {x ∈ ℕ : 6 < x < 9}:夾在 6 與 9 之間的自然數只有 7 與 8,所以集合是 {7, 8}。同一個集合另有許多面孔:{x ∈ ℕ : 40 < x² < 80}(平方落在 40 到 80 之間)、{x ∈ ℕ : x² − 15x + 56 = 0}(另一條二次方程式的解)、{7 + x : x = 0 或 x = 1}(產生器版本)。由於每一份的成員驗出來都是 7 與 8,定義 1.1 判定它們全部相等。
567 89 6 < x < 9 40 < x² < 80 x² − 15x + 56 = 0

這張圖在畫例題第 3 步的結論:三個長相互異的條件,審查出來的成員都是 7 與 8(紅點)。描述是外衣,成員才是本體——因為成員相同,定義 1.1 判定三個集合相等。

條件式與列名式只是同一個集合的不同寫法。判定兩種寫法指同一個集合的辦法,永遠是回到定義 1.1:核對成員。

常用的集合:ℕ、ℤ、ℚ、ℝ、I、ℂ

有幾份名單本讀本會反覆使用,值得現在就配上固定記號:

記號集合
ℕ自然數 {1, 2, 3, ⋯}——注意本讀本的 ℕ 從 1 起算,不含 0
ℤ整數 {0, 1, −1, 2, −2, ⋯}
ℚ有理數 {m/n : m, n ∈ ℤ 且 n ≠ 0}——分數能表示的一切
ℝ實數。本讀本的主角,§4–§6 會把它的性質徹底攤開
I單位區間 {x ∈ ℝ : 0 ≤ x ≤ 1}
ℂ複數,§13 再正式介紹

ℕ、ℤ、ℚ 的性質我們當作已經熟悉,不再逐一重驗;ℝ 則不然——它憑什麼比 ℚ 多出「無縫」的本事,正是接下來三節要嚴格回答的問題。

—— 第一階段到此結束 ——

你已經拿到集合語言的文法書:∈ 與 ⊆ 是兩種不同的關係,集合的給法有列名與條件兩種,而判定相等的辦法永遠是雙向包含(1.1)。下一篇 §1-2 開始對集合動手術——交集、聯集登場,還附一條讓你能放心移括號的定理。這裡先起身動一動,去倒杯水、看看窗外再回來。順帶一則冷知識等級的笑話:{1, 2} 對 {2, 1} 說「別排隊形了,1.1 說我們是同一個集合」。