§11-2  兌換券 Heine-Borel

covering 有無限多種,誰也不可能逐一驗過——那要怎麼判定一個集合是不是 compact?是否存在只檢查 closed 與 bounded 兩個條件、就能下結論的充要判準?

買下一棟房子之前,沒有人能親自住過每一種天氣再決定——所以有驗屋這一行:查水路、看樑柱,兩三個關鍵處合格,就敢對整棟房子打包票。「這個集合是不是 compact」的處境本來糟得多:按定義得對「每一個」covering 交出有限的挑法,連 [0, 1] 這樣最簡單的閉區間,都得請出 supremum,讓覆蓋範圍一吋一吋往右爬(§11-1 例 4)。本篇的主定理 Heine-Borel 就是那位驗屋師傅:closed、bounded,查驗這兩個角,就能判定 compact——這張保證像兌換券,兩個查得動的條件,隨時兌換成 compact 的全部威力。

主定理:Heine-Borel(11.3)

§11-1 的兩個反例已經看見一半:例 2 的 [0, ∞) 缺了 bounded,例 3 的 (0, 1) 缺了 closed——缺任何一角都不行。11.3 補上另一半:兩角俱全就足夠。「哪些集合是 compact」的問題,在這裡得到完整答案。

11.3  HEINE-BOREL THEOREM
A subset of ℝᵖ is compact if and only if it is closed and bounded.
ℝᵖ 的子集為 compact 的充要條件:closed 且 bounded。
正例:[0, 1] 兩角俱全,是 compact(§11-1 例 4)。反例一:[0, ∞) 缺 bounded,不是(§11-1 例 2)。反例二:(0, 1) 缺 closed,不是(§11-1 例 3)。

充要條件拆成三件事分開證:compact 推出 closed、compact 推出 bounded、最後由 closed 加 bounded 推回 compact。前兩段是「compact 的集合長什麼樣」,第三段才是重頭戲——兩角俱全的集合如何接下「每一個」covering。

提示:open 與 closed 的定義與證法見 §9,bounded 與 cell 的定義見 §10。

  • 證 closed,等於對補集裡的每一點找出一顆完全避開該集合的小球(例:x = 2 對 K = [0, 1],半徑 1/2 就夠;x = 1.01 離得近,小球得更小——但每一點都要配到)。
  • 證 bounded,等於把集合整個裝進某一顆半徑有限的球。
PROOF · PART 1 OF 3 · COMPACT ⟹ CLOSED

設 K ⊆ ℝᵖ 為 compact,以下證明 K 是 closed。

證明計畫 · 由所求想起
要證:K 是 closed。
⇢ 等於:補集是 open。
⇢ 等於:對補集裡的「每一點」x,各找一顆完全避開 K 的小球。
⇢ 用 compact:把 x 的排除區做成 covering,取有限 subcover,最大的領土給出小球。
x 半徑 1/M K x′ 藍色領土 = GM(x 的構造專用) 離 K 越近,圓盤越小——補集「每一點」各有一顆

這張圖在證的是終點畫面——證明結束時要抵達這裡:整個 K 住進藍色領土 GM,x 的白色圓盤因此乾乾淨淨。右下角的 x′ 示範「每一點」的意思——對 x′ 把同一套流程再跑一次,它離 K 更近,跑出來的圓盤更小,但同樣乾淨。補集裡的每一點都如此各配一顆,補集就是 open。(對照:K = { 1, 1/2, 1/3, ⋯ } 與 x = 0 之間沒有縫隙,連最小的圓盤都配不出來——這個 K 不 compact,也確實不 closed。)

Proof.  Take any point x outside K. For each m ∈ ℕ put Gₘ = { y ∈ ℝᵖ : |y − x| > 1/m } — everything farther than 1/m from x; each Gₘ is open.
第一步替補集裡任取的點 x 造工具:對每個 m,Gₘ 收「離 x 超過 1/m」的一切點——想成以 x 為圓心畫一個半徑 1/m 的圓,圓外的一切就是 Gₘ 的領土。每個 Gₘ 是 open:離 x 超過 1/m 的點,還留有再挪一小步的餘裕。圓越小,領土越大——這是全段唯一要記的反轉,之後不再出現。
Together the Gₘ contain all of ℝᵖ except x itself; as x ∉ K, the family {Gₘ} is a covering of K.
接著驗 {Gₘ} 真的是 K 的 covering,「蓋住 K 的每一點」逐點看——設 x 是原點:K 裡距離 x 為 1 的點,從 G₂ 起就被蓋住;距離只有 0.001 的點,要等到 G₁₀₀₁ 的領土才蓋得到。被蓋到有早晚,但沒有點永遠漏網——因為「永遠漏網」需要距離為 0,也就是那個點等於 x,而本段開頭取的 x 在 K 之外,把這條路堵死了。所以 K 的每一點都被某個 Gₘ 收下。
Because K is compact, the covering can be cut down to finitely many Gₘ; these sets grow with m, so a single GM already contains all of K.
compact 在這一步出手:因為 K 是 compact,剛驗完的 covering 裁得成有限多個 Gₘ。而 Gₘ 隨 m 遞增(1/m 越小、圓外領土越大),有限多個遞增集合的聯集就是其中編號最大的那一個——單獨一個 GM 已裝下整個 K。「遞增族的有限聯集=最大者」這一招,§11-1 例 2 與例 3([0, ∞) 與 (0, 1) 不 compact 的反例)用它拆過台,這裡改用它取得單一集合。這一步也是 compact 的招牌動作:每一點「各自」的落腳保證,升級成「全體共用」的一塊領土。
Hence the ball { z : |z − x| < 1/M } never touches K. Every point outside K owns such a ball, so the complement of K is open — K is closed.
抵達目標畫面:K 全體住在 GM 裡,按 GM 的定義,這代表 K 的每一點都離 x 超過 1/M——所以 x 周圍半徑 1/M 的球完全避開了 K。這就是計畫要找的小球;x 是補集裡任取的,補集每一點照辦一次都領到自己的小球,於是補集是 open,K 是 closed。
補集裡的每一點都領到自己的小球,補集是 open——K 是 closed。∎
PROOF · PART 2 OF 3 · COMPACT ⟹ BOUNDED

設 K ⊆ ℝᵖ 為 compact,以下證明 K 是 bounded。

證明計畫 · 由所求想起
要證:K 裝得進某一顆半徑有限的球。
⇢ 這顆球得由 compact 供應——用逐漸滾大的同心球做 covering,有限 subcover 裡最大的那一顆就是答案。
For m ∈ ℕ let Hₘ = { x ∈ ℝᵖ : |x| < m }, the open ball of radius m about the origin. Their union is the whole space, so in particular the Hₘ cover K.
第一步造 covering:Hₘ 是以原點為心、半徑 m 的 open ball,一路滾大,聯集蓋住全空間,所以特別也蓋住 K。「蓋住全空間」逐點看:ℝ² 裡範數 5 的點 (3, 4),從 H₆ 起被蓋住;範數 10⁶ 的點要等到 m = 10⁶ + 1——但每一點都輪得到。反過來,沒有任何單獨一顆 Hₘ 蓋得住全空間,每顆都漏掉範數 ≥ m 的點——無限族辦得到的事,單顆辦不到,所以下一步 compact 出手才有分量。
Since K is compact, finitely many of these balls already cover K; the balls grow with m, so K sits inside the largest chosen one, HM — a ball of finite radius holds K, so K is bounded.
因為 K 是 compact,這個 covering 裁得成有限顆球;又是「遞增族的有限聯集=最大者」:由於 Hₘ 隨 m 一路長大,有限 subcover 的聯集就是其中最大的 HM。於是 K 整個住進一顆有限半徑的球——正中 bounded 的定義(裝得進某顆球,也就裝得進某個 interval)。
K 整個住進半徑 M 的球——K 是 bounded。∎
H₁H₂ HM K

這張圖在證 bounded 從哪裡來:半徑 1、2、3、⋯ 的同心球滾大到蓋住全空間,compact 把無限顆縮成有限顆——最大的那顆 HM(藍圈)獨自圈住 K,而「裝得進一顆有限半徑的球」正是 bounded 的定義。

PROOF · PART 3 OF 3 · CLOSED + BOUNDED ⟹ COMPACT

設 K ⊆ ℝᵖ 為 closed 且 bounded,並任取 K 的一個 covering 𝒢,以下證明 𝒢 有有限 subcover。注意 𝒢 是任意給定的:它可能像 §11-1 例 4 開場那樣整齊,也可能是毫無規律的零碎 open sets——以下每一步都不依賴 𝒢 的長相。

證明計畫 · 由所求想起
要證:這個任意給定的 𝒢 能縮成有限。
⇢ 直接構造困難,改用反證法——假設 𝒢 縮不成有限,目標變成推出矛盾。
⇢ 要的矛盾長這樣:一個「小到被單一集合蓋住、卻聲稱連有限個都蓋不住」的區塊。
⇢ 路線:因為 K 是 bounded,先有裝得住 K 的箱子;對半剖讓箱子縮小;Nested Intervals 交出極限點;由於 K 是 closed,極限點於是留在 K 裡。
Let 𝒢 be an arbitrary covering of K. Since K is bounded, we can shut it inside a closed box I₁ whose sides have length 2r. Assume, aiming at a contradiction, that no finite subfamily of 𝒢 covers K.
開局先用掉 bounded:因為 K 是 bounded,裝得進一個邊長 2r 的閉箱 I₁。接著立反證假設——𝒢 挑不出有限個蓋住 K——目標從「挑出有限個」翻面成「從挑不出推出荒謬」。§11-1 例 4(讓覆蓋範圍靠 supremum 一吋一吋爬過 [0, 1] 的那場證明)在這裡升級:supremum 爬行是 p = 1 的特例,這一段的對半剖箱是它的高維替身——兩者都是 completeness 上工的時刻。
Halve every side of I₁: the box splits into 2ᵖ closed sub-boxes. At least one of them — call it I₂ — holds a non-empty piece of K that still cannot be covered by any finite subfamily, because otherwise each piece would have a finite subcover and K would too. Cutting again and again yields I₁ ⊇ I₂ ⊇ I₃ ⊇ ⋯, each K ∩ Iₙ non-empty and finitely uncoverable.
剖箱這一步把 I₁ 每邊對半剖,得 2ᵖ 塊 closed 小箱——p = 1 剖成 2 段(正是 §11-1 例 4 的一維舞台)、p = 2 剖成 4 格(下圖)、p = 3 剖成 8 塊。必有一塊「壞塊」:它的 K-部分非空、而且有限個 𝒢 的集合蓋不住。為什麼?假如 4 格的 K-部分各自都有有限 subcover,4 份有限湊起來仍是有限,就蓋住了整個 K——與「挑不出有限個」的反證假設矛盾。壞塊可能不只一塊(甚至 4 塊全壞),挑任何一塊繼續就行;每一刀我們都跟著壞塊往裡走,收成閉箱鏈 I₁ ⊇ I₂ ⊇ I₃ ⊇ ⋯,每層的 K ∩ Iₙ 都非空、都「有限個蓋不住」。
The Nested Cells Theorem 10.2 provides a point y lying in every Iₙ. We claim y ∈ K. Pick a point wₙ ∈ K ∩ Iₙ from each cell. If some wₙ equals y, then y ∈ K at once. Otherwise every wₙ differs from y, and y is a cluster point of K: any neighborhood of y holds a ball of some radius r; since two points of one cell differ by at most √p times its longest side — the measurement made in the proof of 10.6 — a deep enough Iₙ fits inside that ball together with its resident wₙ ≠ y. Because K is closed, Theorem 10.5 forces its cluster point y into K.
completeness 的化身上工:這條箱鏈 closed、非空、一個套一個,10.2 Nested Cells 定理(closed、非空、一個套一個的 cell 鏈必留公共點)交出住在每個 Iₙ 裡的 y——整個證明的深度藏在這一步。接著驗 y ∈ K,用的全是 §10 剛學的詞。先在每個箱子裡抓一個 K 的代表 wₙ(壞箱子的 K-部分非空,抓得到)。若哪個代表恰好就是 y,y ∈ K 直接到手。否則每個代表都異於 y——這正是聚點要的供貨:任給 y 的 neighborhood,裡面藏著半徑 r 的球;同一顆箱子裡兩點最多差「最長邊的 √p 倍」(§10-3 的 10.6 證明量過的同一筆帳),而箱子邊長逐輪砍半,夠深的 Iₙ 連同它的住戶 wₙ ≠ y 整顆搬進球內。於是 y 的每個 neighborhood 都撈得到 K 中異於 y 的點——y 是 K 的 cluster point(10.3)。closed 在此兌現:10.5 說 closed 的集合收齊自家聚點,所以 y ∈ K。兩個角各自出力:bounded 給了箱子,closed 收容聚點。
y belongs to some Gλ ∈ 𝒢, and because Gλ is open, an ε-ball about y sits inside Gλ. The boxes shrink geometrically: the side of Iₖ is r/2k−2, so any two of its points differ by at most r√p / 2k−2 — in particular |y − w| ≤ r√p / 2k−2 for every w ∈ Iₖ, a bound that drops below ε once k is large. Such an Iₖ therefore lies entirely inside Gλ.
這一段的目的:挑一個夠深的箱子,整顆塞進 y 的 ε-球。y 上一步剛確認屬於 K,covering 𝒢 裡就有某個 Gλ 收留它;因為 Gλ 是 open,y 周圍有一顆整顆留在 Gλ 內的 ε-球。距離估計來自箱子的對角線:Iₖ 邊長 r/2k−2(每剖一輪減半),同箱兩點每個座標最多差一個邊長,總距離最多是邊長的 √p 倍;而 y 自己就住在 Iₖ 裡,所以 Iₖ 的每個點與 y 相距最多 r√p / 2k−2——隨 k 以幾何速度趨近 0。挑 k 大到 r√p / 2k−2 < ε,整個 Iₖ 就塞進 y 的 ε-球,也就塞進 Gλ。
But K ∩ Iₖ was built so that no finite subfamily covers it — and here a single set Gλ covers it. This is a contradiction, and it ends the argument: some finite subfamily of 𝒢 does cover K.
矛盾攤牌:K ∩ Iₖ 按構造是「有限個 𝒢 的集合都蓋不住」的區塊,此刻卻被單獨一個 Gλ 整個蓋住——「連一個都蓋得住」對上「有限個都蓋不住」,兩句話不能都對。於是反證閉合:𝒢 確實挑得出有限 subcover。
反證閉合:closed 且 bounded 的 K,對「每一個」covering 都交得出有限回應——K 是 compact。∎
I₁I₂I₃I₄ y Gλ 的 ε-球 夠深的箱子 整個掉進球裡

這張圖在證壞箱子的下場:每一刀都跟著「有限個蓋不住」的那一塊往裡走,I₁ ⊇ I₂ ⊇ I₃ ⊇ I₄ 縮向公共點 y;夠深的箱子(藍框)整個掉進 y 所屬的單一 open set 的 ε-球——聲稱「有限個都蓋不住」的區塊,被一個集合就蓋住了。

推論級的加強:Cantor Intersection(11.4)

有了 Heine-Borel,closed 加 bounded 就能隨時兌換成 compact。第一份紅利馬上入袋:把「閉區間套有公共點」從區間推廣到任意的 closed sets。

11.4  CANTOR INTERSECTION THEOREM
Let F₁ ⊇ F₂ ⊇ ⋯ ⊇ Fₙ ⊇ ⋯ be a sequence of non-empty closed subsets of ℝᵖ, with F₁ bounded. Then there is a point belonging to every Fₖ.
遞減的非空 closed sets 序列,只要第一個是 bounded 的,必有一點同時屬於所有 Fₖ。
正例:Fₙ = [0, 1/n] 層層縮小,留下共同點 0——Nested Cells 定理(10.2)的一維情形正是本定理的特例。反例:Fₙ = [n, ∞) 全是非空 closed,但 F₁ 不 bounded——交集是空的,bounded 這個假設少不得。
PROOF

設 F₁ ⊇ F₂ ⊇ ⋯ 為非空的 closed sets,且 F₁ 是 bounded,以下證明存在同時屬於所有 Fₖ 的點。

證明計畫 · 由所求想起
要證:交集非空。
⇢ 反證法——假設沒有共同點,目標變成推出矛盾。
⇢ 「沒有共同點」翻譯成 covering 的語言:每一點都逃出某個 Fₖ,等於補集們蓋住了一切。
⇢ 於是 F₁(由 Heine-Borel 升級成 compact)被無限多個補集蓋住——因為 F₁ 是 compact,這無限個補集可裁成有限個,有限個裡最大的一個就獨自裝下 F₁,逼出「FK 是空集」的矛盾。
Proof.  F₁ is closed and bounded, so the Heine-Borel Theorem upgrades it to compact.
第一動就是全段的關鍵引用:F₁ 按前提是 closed 且 bounded,Heine-Borel(11.3,本頁剛證:closed + bounded ⟺ compact)把它升級成 compact。11.4 的敘述裡沒有 compact 三個字,威力全靠這一步接進來。
Write Gₖ = ℝᵖ ∖ Fₖ; each Gₖ is open because Fₖ is closed. Suppose no point survives in every Fₖ. Then each point of the space escapes some Fₖ — it lands in that Gₖ — so the Gₖ cover ℝᵖ, and in particular F₁.
反證的第一步是翻譯:假設沒有一點能留在所有 Fₖ 裡,那麼空間裡每一點都逃出某個 Fₖ——也就是落進那個 Fₖ 的補集 Gₖ(Fₖ closed,所以 Gₖ open)。於是 {Gₖ} 蓋住全空間,特別也蓋住 F₁。「每一點都逃出某個 Fₖ」逐點看——拿一個交集真的是空的序列當展示品:Fₙ = (0, 1/n)(少了 closed 的反例版)。點 0.3 住在 F₁、F₂、F₃ 裡,到 F₄ = (0, 1/4) 被踢出,於是 0.3 ∈ G₄;點 0.001 撐得久,要到 F₁₀₀₀ 才出局。每一點各有出局的一刻,補集們就接住了每一點。反過來,若存在「誰也不逃」的點——如 Fₙ = [0, 1/n] 裡的 0——covering 就湊不齊,反證根本起不了頭。
Because F₁ is compact, the covering can be trimmed to finitely many Gₖ; the Fₖ shrink, so the Gₖ grow, and a single GK already contains F₁.
compact 在這一步起決定作用。光有無限多個 Gₖ,矛盾推不動——集合沒完沒了,你永遠指不出「最大的一個」,每個都還有下一個更大的。因為 F₁ 已由第一步升級成 compact,而 {Gₖ} 蓋住它,所以只需要有限幾個 Gₖ 就全部蓋住 F₁。有限了,才指得出名字——Fₖ 遞減使 Gₖ 遞增,有限個裡最大的 GK 獨自裝下整個 F₁。一句口訣:compact 把無限變有限,有限才有最大者。
But F₁ ⊆ GK says F₁ avoids FK entirely — while FK lives inside F₁. The only way out is FK = ∅, contradicting the hypothesis that every Fₖ is non-empty.
矛盾收口:F₁ ⊆ GK 的意思是 F₁ 整個躲開 FK——因為 GK 正是 FK 的補集;可是序列遞減,FK 又住在 F₁ 裡。同時要「住在 F₁ 裡」又要「被 F₁ 整個避開」,唯一的活路是 FK 根本是空集——與「每個 Fₖ 非空」的前提矛盾,反證閉合:共同點存在。
交集非空:遞減的非空 closed sets(F₁ bounded)必留下至少一個共同點。∎
GK = ℝᵖ ∖ FK(有限扇裡最大的一扇) F₁ FK = ∅? 藍色淹進 F₁ 的每個角落——紅色虛線圈裡塞不下任何一點

這張圖在證反證的終點:假設共同點不存在,補集 G₁ ⊆ G₂ ⊆ ⋯ 就蓋住一切,compact 把無限扇裁成有限扇,最大的 GK(藍色)一扇就淹過整個 F₁。可是 FK(紅色虛線)偏偏住在 F₁ 裡,又必須整個躲開 GK——它連一個點都容不下,只能是空集,與「每個 Fₖ 非空」矛盾。定理保證的共同點,正是這場矛盾逼出來的結論。

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

你手上多了一張兌換券:查驗 closed 與 bounded 兩個角,Heine-Borel 就直接兌換出 compact。第一份紅利也已入袋——Cantor 交集定理(11.4)把「閉區間套必留公共點」升級到任意遞減的非空 closed sets。接下來 §11-3 先兌現兩份紅利:安全距離與最近點。這一篇的證明密度不小,先起身倒杯水、看看窗外再回來——紅利不會跑掉。回來前配一則:數學家被關進很小的牢房,朋友探監問空間會不會太擠,他說:「不會,這裡非常 compact——bounded 又 closed,我連 limit point 都找到了。」