§1-2  交、聯與代數律

交集與聯集把兩個集合變成一個。這兩種運算混在同一條式子裡時,括號能不能移動、順序能不能交換、交集能不能分配進聯集——依據是哪一條定理?

舊集合造新集合

訂餐廳的 app 上有兩個篩選鈕:「可訂位」與「有素食」。兩顆都按下去,出現的是同時滿足兩個條件的店家——清單變短。改成搜尋「壽司」再加一個關鍵字「拉麵」,出現的是滿足任一關鍵字的店家——清單變長。你每天都在做這兩種操作:拿舊清單疊出新清單,一種取「且」,一種取「或」。

本篇把這兩顆按鈕鑄成正式的集合運算,然後回答一個看似瑣碎、實則決定你能不能放心計算的問題:這些運算混在同一條式子裡的時候,遵守哪些規律?

1.2  DEFINITION
The intersection of two sets A and B, written A ∩ B, is the set whose elements are exactly those belonging to both A and B. The symbol is read “A intersect B” or “A cap B.”
A 與 B 的 intersection(交集)A ∩ B,收「同時屬於 A 和 B」的一切元素——兩個條件都按下去之後留下的清單。條件式寫法:A ∩ B = {x : x ∈ A 且 x ∈ B}。
正例:3 ∈ {1, 2, 3, 4} ∩ {3, 4, 5}——兩個集合都有 3。反例:5 ∉ {1, 2, 3, 4} ∩ {3, 4, 5}——5 只屬於第二個集合,「同時」不成立。
1.3  DEFINITION
The union of A and B, written A ∪ B, is the set of all elements belonging to A, to B, or to both. The symbol is read “A union B” or “A cup B.”
A 與 B 的 union(聯集)A ∪ B,收「屬於 A 或屬於 B」的一切元素。條件式寫法:A ∪ B = {x : x ∈ A 或 x ∈ B}。
正例:5 ∈ {1, 2, 3, 4} ∪ {3, 4, 5}——只屬於一邊也算。正例:3 ∈ {1, 2, 3, 4} ∪ {3, 4, 5}——兩邊都屬於,同樣算。反例:7 ∉ {1, 2, 3, 4} ∪ {3, 4, 5}——兩邊都沒有它。
數學的「或」是含或:日常說「內用或外帶」常常暗示只能挑一個,但數學與邏輯裡的「或」一律包含「兩者皆是」——法律文件裡寫 and/or 的那種意思。所以「x ∈ A 或 x ∈ B」在 x 兩邊都屬於時照樣成立,上面第二個正例就是這種情況。往後看到「或」,永遠讀成含或。
A ∩ BA ∪ B 只有重疊區入選兩橢圓的全部區域入選

這張圖在畫兩種運算各收哪些區域:左邊交集只收重疊的一塊(顏色最深處),右邊聯集把兩個橢圓整個收下——重疊區顏色更深,但深淺不影響歸屬,聯集裡沒有「屬於兩次」這回事。

定義交集時,我們默默做了一個假設:任何兩個集合「交」出來的東西仍然是集合。可是如果 A 與 B 根本沒有共同元素呢?為了讓交集運算永遠有答案,必須承認一個沒有任何成員的集合。

1.4  DEFINITION
The set having no elements at all is called the empty (or void) set and is denoted by ∅.
When A ∩ B = ∅, so that A and B share no element, the two sets are said to be disjoint.
沒有任何元素的集合稱為空集,記作 ∅。若 A ∩ B = ∅——兩份清單毫無交集——就稱 A 與 B disjoint(不相交)。
正例:{1, 3, 5} ∩ {2, 4, 6} = ∅,奇數清單與偶數清單 disjoint。反例:{1, 2} 與 {2, 3} 不 disjoint——2 是共同元素,交集是 {2} 而不是 ∅。

按鈕有了,接著立規矩。整數的加法與乘法之所以好用,靠的是一批可以閉著眼睛用的定律——交換、結合、分配。交集與聯集也有自己的一批,而且湊得更整齊:

1.5  THEOREM
For any sets A, B, C:
(a) A ∩ A = A,  A ∪ A = A (idempotent,冪等律)
(b) A ∩ B = B ∩ A,  A ∪ B = B ∪ A (commutative,交換律)
(c) (A ∩ B) ∩ C = A ∩ (B ∩ C),  (A ∪ B) ∪ C = A ∪ (B ∪ C) (associative,結合律)
(d) A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C),  A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C) (distributive,分配律)
交集與聯集可以自我吸收(冪等)、左右對調(交換)、自由移括號(結合),而且彼此可以互相分配(分配)。從此集合式的重排像整數式一樣放心。
正例(拿具體集合驗 (d) 第一式):取 A = {1, 2}、B = {2, 3}、C = {3, 4}。左邊:B ∪ C = {2, 3, 4},於是 A ∩ (B ∪ C) = {2}。右邊:A ∩ B = {2}、A ∩ C = ∅,聯集是 {2}。兩邊吻合。對照(數的世界只給一半):乘法可分配進加法(a(b + c) = ab + ac),但加法分配進乘法一般不成立(a + bc ≠ (a + b)(a + c),取 a = b = c = 1 即見 2 ≠ 4);集合的 (d) 卻兩個方向都成立——比數的代數更對稱。
PROOF · 分配律第一式

以下證明 (d) 的第一條:A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C)。其餘各條的證法完全相同,而且路徑更短,走過這一場就都會了。

證明計畫 · 由所求想起
要證:兩個集合相等。
⇢ 由 定義 1.1(相等 = 元素完全相同),等於證雙向包含。
⇢ 方向一:任取左邊的元素,追蹤它為什麼屬於右邊。
⇢ 方向二:任取右邊的元素,追蹤它為什麼屬於左邊。
Proof.  Pick any x in A ∩ (B ∪ C). By the definition of intersection, x lies in A and also in B ∪ C; since membership in B ∪ C means x ∈ B or x ∈ C, there are two cases: (i) x ∈ A and x ∈ B, or (ii) x ∈ A and x ∈ C.
先走第一個包含方向。任取左邊集合的一個元素 x,把左邊的式子逐層拆開:因為 x 屬於交集 A ∩ (B ∪ C),依定義 1.2 它同時屬於 A 與 B ∪ C;而依定義 1.3,「屬於 B ∪ C」又拆成「屬於 B 或屬於 C」。於是 x 的處境只有兩種:在 A 也在 B,或者在 A 也在 C。拿上面 inst 的數字對照:x = 2 屬於 {1, 2} ∩ {2, 3, 4},它走的是情形 (i)——在 A 也在 B。
In case (i) we get x ∈ A ∩ B; in case (ii), x ∈ A ∩ C. Either way x belongs to (A ∩ B) ∪ (A ∩ C). Therefore A ∩ (B ∪ C) ⊆ (A ∩ B) ∪ (A ∩ C).
把兩種處境分別歸位:情形 (i) 正是「屬於 A ∩ B」的定義,情形 (ii) 正是「屬於 A ∩ C」的定義。因為 x 至少落入兩種情形之一,所以它屬於這兩個交集的聯集——右邊的集合。左邊任取的元素都屬於右邊,第一個方向的包含成立。
Conversely, pick any y in (A ∩ B) ∪ (A ∩ C); then y ∈ A ∩ B or y ∈ A ∩ C. In both cases y ∈ A, and y belongs to B or to C, so y ∈ B ∪ C. Hence y ∈ A ∩ (B ∪ C), which gives the reverse inclusion.
第二個方向反著走。任取右邊集合的元素 y,它至少屬於 A ∩ B 與 A ∩ C 之一。注意兩種情形有一個共同點:y 都屬於 A;而剩下的資訊——屬於 B 或屬於 C——依定義 1.3 恰好組回「屬於 B ∪ C」。因此 y 同時滿足「屬於 A」與「屬於 B ∪ C」兩個條件,第二個方向的包含也成立。
Since each of the two sets contains the other, Definition 1.1 shows they are equal.
收工步:兩個方向的包含合起來,正是定義 1.1 說的「元素完全相同」。所以兩邊是同一個集合。
分配律第一式成立:∩ 可以放心分配進 ∪。∎
A B C 1 2 3 4 5 6 7 8

這張圖在證分配律的另一條路:一個元素相對於 A、B、C 三個集合,處境恰有 2³ = 8 種——每個集合「在或不在」各二選一。逐塊核對:左邊 A ∩ (B ∪ C) 收的恰是紅色的 1、2、3 三塊,右邊 (A ∩ B) ∪ (A ∩ C) 收的也恰是這三塊。收的區域相同,集合就相等。

八情形法:上面的圖其實是第二種證法——把「任取元素追蹤」換成「把所有處境一次列完、逐塊核對」。兩邊式子都只收處境 1、2、3,故相等。條目一多這種列舉會爆炸(四個集合就有 16 塊),但三個集合以內,它是張好用的驗算表。其餘 (a)(b)(c) 各條,用逐元素追蹤或這張表都能在幾行內完成——動手走一遍是很好的練習。

一族集合的交與聯

結合律 (c) 說括號可以移,於是三個以上的集合連著交、連著聯,括號乾脆不寫:A ∩ B ∩ C、A ∪ B ∪ C。對一列集合 A₁, A₂, ⋯, An,用數學歸納法可以證明:存在唯一的集合收「至少屬於一個 Aj」的一切元素,也存在唯一的集合收「屬於每一個 Aj」的一切元素。我們模仿連加的記號把它們寫成

⋃j=1n Aj = A₁ ∪ A₂ ∪ ⋯ ∪ An,  ⋂j=1n Aj = A₁ ∩ A₂ ∩ ⋯ ∩ An。

索引甚至不必是有限個、也不必是數字:對任何非空的索引集合 J,只要每個 j ∈ J 都配了一個集合 Aj,就能寫 ⋃{Aj : j ∈ J}(至少屬於一個)與 ⋂{Aj : j ∈ J}(屬於每一個)。(為什麼要求非空?J = ∅ 時「屬於每一個 Aj」對任何東西都空洞地成立,除非事先固定全域集合,「全部的交集」就沒有明確定義——所以本讀本談「任意交集」時索引族一律非空。聯集沒有這個顧慮:空族的聯集就是 ∅,安安穩穩——§3 的歸納證明會從這個起點出發。)無限次的交聯不是花拳繡腿——試一次就知道它的威力:對每個 n ∈ ℕ,取實數軸上的開區間 An = {x ∈ ℝ : −1/n < x < 1/n}。每一個 An 都含 0,所以 0 屬於全部的交集;而任何 x ≠ 0,只要 n 大到 1/n < |x|,x 就被 An 拒收。因此

⋂{An : n ∈ ℕ} = {0}——

無限多次交集,把一段段有寬度的區間磨成了一個點。有限次交集絕對做不到這件事(有限個 An 的交集就是編號最大那個區間,仍有寬度)。「有限做不到、無限做得到」的戲碼,之後會一再上演。

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

你已經收下三種基本運算(交、聯,加上為它們補位的 ∅)與四組定律,其中分配律兩個方向都成立、比數的代數更對稱;雙向包含的證明流程也完整走過一遍。下一篇 §1-3 補上最後一種運算——集合的減法——並收割本節最漂亮的定理 De Morgan。先離開螢幕,站起來伸展一下肩頸再回來。休息時想想這個:服務生問「茶或咖啡?」數學家回答「對。」——含或的世界裡,這個回答無懈可擊。