§10-3  Bolzano-Weierstrass

一個 bounded 的集合含有無限多個點時,這些點的分布會被迫多麼密集?「bounded 且無限」兩個條件湊在一起,是否必定產生至少一個 cluster point?

擁擠必聚

跨年夜的廣場放進了無限多個人,而廣場就那麼大——不管人群怎麼站,總有些位置擠到「不管把圈縮多小,圈裡都有別人」。把這個直覺立成定理,就是本節的壓軸。這回不給你一串套好的箱子,只給一個集合——bounded、而且有無限多個點。§10-2 例 6 證過有限集養不出 cluster point:空間裡每一點都配得到一顆只含自己的小球。把那句話反過來讀,就是本定理的形狀——點無限多、地方有限大,cluster point 就非出現不可。定理掛著兩個名字:Bolzano 是布拉格的神父,Weierstrass 是柏林的分析大師,相隔半世紀,兩人各自把「嚴格證明」立成分析的家規——這條定理正是那場嚴格化運動的招牌成果之一。

10.6  BOLZANO-WEIERSTRASS THEOREM
Any subset of ℝᵖ that is bounded and holds infinitely many points must have at least one cluster point in ℝᵖ.
ℝᵖ 的子集只要既是 bounded、又含有無限多個點,就必定在 ℝᵖ 中擁有至少一個 cluster point。
正例:{1, 1/2, 1/3, ⋯} bounded 且無限——cluster point 0 應運而生;0 不屬於集合,照樣算數(§10-2 例 4 拆過的地雷)。反例一:ℕ 無限但不 bounded——成員彼此距離至少 1,任何點的半徑 1/2 小球至多含一個成員,而聚點的每一圈都得裝著無限多個成員(§10-2 例 1 的收據),cluster point 無處生根。反例二:{0.2, 0.5, 0.9} bounded 但有限——§10-2 例 6 判過雙雙掛零。兩個假設少一個,結論就保不住。
PROOF

設 B ⊆ ℝᵖ 為 bounded 且含無限多個點,以下構造 B 的一個 cluster point。

證明計畫 · 由所求想起
要證:某個 y 的每一個 neighborhood 都含有 B 中異於 y 的點。
⇢ 這樣的 y 上哪找?讓點自己擠出來——把 B 關進箱子,每邊對半剖成 2ᵖ 塊:無限多個點分進有限多塊,必有一塊分到無限多。
⇢ 跟著「無限多」的那一塊一路剖下去,得到一串閉箱子套——10.2 交出公共點 y。
⇢ 驗收:任何 neighborhood 都裝得下夠深的箱子,而每個箱子都帶著 B 的無限多個點。
y I₁I₂I₃I₄ 每一刀留下 點擠得多的 那一塊 紅虛線圈=任給的 neighborhood:夠深的箱子整個住進來, 帶進無限多個 B 的點

這張圖在證構造怎麼走(本證明是正面構造,不走反證):I₁ 剖成四格,B 的點(黑點)擠得最兇的那格留下成為 I₂;再剖、再留下 I₃、I₄——箱子每輪邊長減半,卻始終抱著無限多個點。10.2 在縮到最後的地方交出公共點 y(紅點);任給 y 的 neighborhood(紅虛線圈),夠深的箱子整個住進去,無限多個點跟著搬進來——y 的 cluster point 身分就此坐實。

Proof.  Since B is bounded, Definition 10.1 lets us shut it inside a closed cell I₁.
第一步把 bounded 兌現成箱子:因為 B 是 bounded,而 10.1(§10-1 的定義)給 bounded 下的定義原話就是「裝得進某個 cell」,所以直接引用定義,就有一個 closed cell I₁ 把 B 整個關進去。具體:B = {1, 1/2, 1/3, ⋯} 可取 I₁ = [0, 1]。
Bisect every side of I₁, cutting it into 2ᵖ closed sub-boxes, which divide the points of B among them. Because B is infinite while the pieces are finitely many, at least one piece must contain infinitely many points of B — if every piece contained only finitely many, their union, all of B, would be finite, against the hypothesis. Name such a piece I₂.
這一步把 I₁ 每邊對半剖開,切成 2ᵖ 塊 closed 小箱——p = 1 剖成 2 段、p = 2 剖成 4 格、p = 3 剖成 8 塊——B 的點就被分進這有限多塊裡。因為 B 有無限多個點而塊只有有限多個,必有一塊分到無限多個點:假如每塊都只分到有限多個,有限多塊加起來仍是有限,B 就成了有限集,與假設矛盾——這正是鴿籠原理:無限多隻鴿子分進有限個籠子,必有一籠擠進無限多隻。合格的塊可能不只一塊,挑任何一塊都行,命名為 I₂。具體:I₁ = [0, 1] 對 B = {1, 1/2, 1/3, ⋯} 剖成 [0, 1/2] 與 [1/2, 1]——右半只分到 1 與 1/2 兩個成員,左半裝著其餘全體(無限多)——留下的是左半。
The same reasoning can be repeated without end: since I₂ again holds infinitely many points of B, bisecting its sides yields a sub-box I₃ with infinitely many, and so on. What comes out is a chain I₁ ⊇ I₂ ⊇ I₃ ⊇ ⋯ of closed cells, none of them empty, each containing infinitely many points of B, the longest side halving at every step.
同樣的論證一輪一輪重複用:由於 I₂ 又裝著無限多個點,剖半的鴿籠論證可以原封再用——2ᵖ 塊裡必有一塊再接住無限多個,留下成為 I₃;如此永遠走得下去,因為每一輪留下的塊都繼承了「無限多」這個條件。收成是一條一個套住一個的閉箱鏈:每塊都含著 B 的無限多個點——因此沒有一塊是空的——而最長邊每剖一輪就減半。
By the Nested Intervals Theorem 10.2, some point y lies in every Iₖ. It remains to verify that y is a cluster point of B — that every neighborhood of y holds a point of B different from y.
由 10.2 Nested Cells 定理(closed、非空、一個套一個的箱子鏈必有公共點——§10-1 證的),得公共點 y。引用前先對條件:鏈上的箱子 closed、一個套住一個,而且每塊都含著 B 的無限多個點,所以沒有一塊是空的——三個條件全數到齊。y 到手之後,剩下的工作是驗證它真的是 B 的 cluster point,依據是 §10-2 定義 10.3(cluster point:「每一個」neighborhood 都含有 B 中異於 y 的點)。「每一個」聽來要驗無限多種,但 §10-2 例 1 用 1/n 檢驗過:大的 neighborhood 裝得下小球、自動跟著含到點,真正的考驗只有越縮越小的球——下一步就對付它們。
Take any neighborhood V of y; it contains a ball {z : |y − z| < r} for some r > 0. Now measure the boxes. Each bisection halves every side, so the longest side of Iₖ is l(I₁)/2k−1, where l(I₁) is the longest side of I₁. Since two points of one box differ in each coordinate by at most one side length, they differ in distance by at most √p times the longest side — and since y also lies in Iₖ, every w ∈ Iₖ satisfies |y − w| ≤ √p · l(I₁)/2k−1.
先說這一段要達成什麼:任給的 neighborhood V 裡藏著一顆半徑 r 的球,目標是挑一個夠深的 k,讓整顆箱子 Iₖ 塞進這顆球——箱子一進去,它含著的無限多個 B 的點就全部跟著進了 V。於是開始量箱子。走到第 k 個箱子時每邊已經剖過 k − 1 刀、每刀減半,所以 Iₖ 的最長邊是 l(I₁)/2k−1——分母的 2k−1 就是那 k − 1 刀的收據。估計距離時要記得:y 是 10.2 交出的公共點,它也住在 Iₖ 裡,所以 y 與任何 w ∈ Iₖ 是同一顆箱子裡的兩點——每個座標最多差一個邊長,而由畢氏定理,p 個座標的差平方相加再開根號,兩點距離最多是最長邊的 √p 倍。配上數字驗算:p = 2、l(I₁) = 1、r = 0.01——同箱兩點最遠差 √2 × 邊長;要 √2/2k−1 < 0.01,取 k = 9 就夠:√2/256 ≈ 0.0055 < 0.01。箱子以幾何速度縮小(每輪砍半),追過任何固定的 r 只是遲早的事。
Because 2k−1 eventually outgrows any fixed quantity — the Archimedean property of ℝ — we may pick k so large that √p · l(I₁)/2k−1 < r. For such k the whole box Iₖ lies inside the ball, hence inside V. But Iₖ contains infinitely many points of B, so V does too — in particular V contains a point of B different from y. Since V was an arbitrary neighborhood, y is a cluster point of B.
上一步算出同箱兩點的距離上限 √p · l(I₁)/2k−1,這一步真的把 k 挑出來:因為 2k−1 遲早超過任何固定的量(§6-3 的 Archimedean Property 6.6——「自然數沒有上界」的正式版),可以取 k 大到這個上限小於 r——於是整顆 Iₖ 塞進球裡,也就塞進 V 裡。此時「無限多」發揮全部作用:Iₖ 是構造裡「始終含著 B 的無限多個點」的那塊,所以 V 收進來的不是一個點,是無限多個——就算 y 自己也是 B 的成員,扣掉 y 一個,剩下的仍是無限多,「異於 y」的要求於是滿足。而 V 是任取的 neighborhood,每一個 neighborhood 都撈得到異於 y 的 B 點——y 是 cluster point。具體驗收:B = {1, 1/2, 1/3, ⋯}、y = 0、V 取半徑 0.01 的球——1/101、1/102、⋯ 全數落在球內。最後看清一件事:y 是 ℝᵖ 的點,定理沒說 y ∈ B——這裡 0 就不在 B 裡,cluster point 與成員資格分兩本帳(§10-2 例 4 拆過的地雷:0 與 1 不屬於 (0, 1),卻是它的 cluster points——本例是它的正面版)。
箱子逐輪砍半、始終含著無限多個點,10.2 在盡頭交出 y——bounded 的無限集必有 cluster point。∎
—— 第三階段到此結束,整個 §10 收工 ——

回望一整節:cell 立成舞台、Nested Cells(10.2)把完備性抬升到 ℝᵖ,cluster point 給「熱鬧」發了身分證,10.5 用它改寫 closed,最後 Bolzano-Weierstrass(10.6)用一把對半剖的刀證出「bounded + 無限 ⟹ 必有聚點」。往後的章節會一再回來領用這兩件重器。整節收工,出門繞一圈再回來。臨走前一則:ℤ 抱怨自己明明人丁無限卻毫無熱鬧,B-W 回它——「你先學會住得近一點(bounded)再說。」

下一幕預告

§11 的主角叫 compact:拿無限多個 open sets 把一個集合整個蓋住,再問能不能只留「有限個」還蓋得住——§11-1 把這個定義變成一場玩得起來的蓋子遊戲。你會發現本章的家當一件不少地上場:open sets 是蓋子本身的材料(9.1),closed 與 bounded(9.4、10.1)決定哪些集合拿得到 compact 這張證書,而 Nested Cells(10.2)正是 Heine-Borel 證明裡收口的那一步。工具都在手上了,去開新地圖吧。