A point x ∈ ℝᵖ is a cluster point (or a point of accumulation) of A ⊆ ℝᵖ when every neighborhood of x, however small, holds some point of A other than x itself.
x ∈ ℝᵖ 為 A ⊆ ℝᵖ 的 cluster point(聚點,又稱 accumulation point),意思是 x 的「每一個」neighborhood(§9-3 定義 9.7)都含有 A 中異於 x 的點。
設 F = {p₁, ⋯, p_m} 為 ℝᵖ 的有限子集,證它既無 cluster point 也無 interior point。
任取 x ∈ ℝᵖ。先清掉一個邊角:若 F 中根本沒有異於 x 的成員(F 是空集、或恰好只有 x 一人),任取正半徑的球都撈不到「別人」,x 直接落選。否則把 F 中異於 x 的成員到 x 的距離列成清單:至少一個、至多 m 個正數。由於有限多個正數必有正的最小值 d——§9-1 證明 9.3(b) 兩個半徑取 min,這裡至多 m 個距離取 min,同一招——半徑 d/2 的球撈不到 F 中任何異於 x 的點:x 不是 cluster point。
具體:F = {0.2, 0.5, 0.9}、x = 0.5——清單 {0.3, 0.4},d = 0.3,半徑 0.15 的球裡只有 x 本人,F 的「其他」點一個也沒有;x = 0.35(不在 F 裡)——清單 {0.15, 0.15, 0.55},半徑 0.075 的球連一個 F 的點都撈不到。空間裡每一點都配得到一顆撈不到「別人」的球。
interior 同樣掛零:成員 pᵢ 的任何球都裝著無限多個點,而 F 攏共 m 個成員——球裡絕大多數點不屬於 F,球永遠出界。
這張圖在證有限集為什麼處處荒涼:成員之間留著固定的空隙,取距離清單的最小值 d = 0.3,半徑 0.15 的球(藍)裡除了 0.5 自己一個人也沒有——縮圈撈人的遊戲,一開局就結束。
兩個方向分開證:先證 closed 的 F 收齊自己的 cluster points(反證),再證收齊 cluster points 的 F 必是 closed(正面,靠 9.9 收尾)。
證明計畫 · 由所求想起
(⟹)要證:closed 的 F 收齊 cluster points。
⇢ 反證——假設某個 cluster point x 逃在外面,open 的補集就升格成 x 的 neighborhood。
⇢ 矛盾出口:這個 neighborhood 按 cluster point 的定義得撈到 F 的點,偏偏它整個避開 F。
(⟸)要證:收齊 cluster points 的 F 是 closed。
⇢ 等於:補集是 open——9.9(c) 剛好把 open 換成「是每個點的 neighborhood」。
⇢ 補集裡的點不是 cluster point,於是有一個撈不到 F 的 neighborhood——它整個塞進補集。
這張圖在畫反證的矛盾機制本身:假設 cluster point x 逃在 F 外,closed 保證 x 配得到一顆整顆泡在補集裡的球(藍)——乾乾淨淨;可是 cluster point 的身分要求同一顆球裡必須撈得到 F 的點(紅圈打問號)。同一顆球不能既空又不空,假設崩塌。
Proof (⟹). Let F be closed, and let x be a cluster point of F. Suppose x sat outside F. Then x ∈ 𝒞(F); since F is closed, 𝒞(F) is an open set containing x — hence a neighborhood of x.
(⟹) 走反證:設 x 是 closed 的 F 的 cluster point,假設它逃在 F 外面,也就是 x ∈ 𝒞(F)。因為 F 是 closed,按定義補集 𝒞(F) 是 open;而一個含著 x 的 open set 自動是 x 的 neighborhood——補集就此升格成 x 的 neighborhood,下一步的矛盾全靠這個身分。先看一眼對照組:F = (0, 1]、x = 0——0 真的逃在外面,但這個 F 的補集不是 open(§9-2 篇末反例驗過),升格失敗、矛盾根本點不著——不 closed 的集合正是從這一步漏走的。
Being a neighborhood of the cluster point x, the set 𝒞(F) would have to catch some point of F. Yet by its very construction 𝒞(F) holds no point of F at all. The two demands cannot coexist, so the supposition fails: x belongs to F.
矛盾的兩面在這裡撞上:因為 x 是 F 的 cluster point,它的每一個 neighborhood——包括剛升格的 𝒞(F)——都得撈到 F 的點;可是 𝒞(F) 按構造一個 F 的點也沒有。同一個集合不能既撈得到又一個都沒有,而全段唯一的假設是「x ∉ F」,錯的只能是它——因此 x ∈ F。正面實例對照:F = [0, 1] 的 cluster points 全落在 [0, 1] 內,這個方向帳面乾淨。
Proof (⟸). Suppose instead that F holds every one of its cluster points; we verify that 𝒞(F) is open. Take any y ∈ 𝒞(F). Because y lies outside F while F contains all of its cluster points, y cannot be a cluster point of F.
(⟸) 換方向:假設 F 收齊了自己的全部 cluster points,要證的是補集 𝒞(F) 是 open。任取 y ∈ 𝒞(F)。因為 y 站在 F 外面,而 cluster points 按假設全在 F 裡面,所以 y 不是 F 的 cluster point——這裡還沒動手,只是把假設倒過來讀。
Unfolding "not a cluster point" produces a neighborhood V of y that meets no point of F other than y — and since y ∉ F, the set V meets no point of F at all. Consequently V ⊆ 𝒞(F).
這一步把「不是 cluster point」攤開:cluster point 要求「每一個 neighborhood 都撈得到 F 中異於 y 的點」,否定它就得到「有一個 neighborhood V 撈不到」——量詞翻面的標準動作(§9-1 例 2 證 [0, 1] 不 open 時,步驟 3 練過同一式)。定義原話只排除「異於 y 的點」;但上一步剛確認 y 自己不在 F 裡,所以 V 乾脆一個 F 的點都沒有——整個 V 落在補集 𝒞(F) 內。具體數字:F = [0, 1]、y = 1.01——V 取半徑 0.01 的球,整顆浸在補集裡;y = 1.5 寬裕得多,半徑 0.5 都行。
Inside V hides an open set containing y, and that open set lies inside 𝒞(F) as well — so 𝒞(F), too, is a neighborhood of y. As y ranged over all of 𝒞(F), Theorem 9.9 now certifies 𝒞(F) as open, and F is closed.
最後把「V 撈不到人」升級成「補集是 y 的 neighborhood」:V 是 neighborhood,裡面本來就藏著一個含 y 的 open set;而上一步證了 V ⊆ 𝒞(F),這個 open set 便也躺在更大的 𝒞(F) 裡,於是 𝒞(F) 照樣是 y 的 neighborhood。由於 y 是補集裡任取的,補集的每一點都領到這個身分,§9-3 的 9.9(open 的三種說法——其中 (c)⟹(a):集合是自己每一點的 neighborhood 就是 open)隨即判定 𝒞(F) open,F 是 closed。這正是本篇把 §9-3 列為前置的原因:下半場整段站在 9.9 的肩膀上。