§9-3  內點、邊界點與外點

驗 open 要逐點配球、驗 closed 還得繞去補集——有沒有不繞路的判準?把空間中的點對一個集合分成內、邊、外三類之後,open 與 closed 各對應到哪一句話?

為什麼需要 neighborhood

攤開一張國家地圖,城市分三種。內陸城市四面都是本國領土——從市中心往任何方向走上一小段,踩到的仍是國土。邊境城市不然:城門外一步是本國,另一步就是鄰國——不管把活動範圍縮到多小,圈裡總是兩國的土地都有。至於境外的城市,只要離邊界夠遠,周圍一小圈根本沾不到這個國家。內陸、邊境、境外——三種身分,看的全是「周圍一小圈」的成分。

本篇把「周圍一小圈」鑄成正式的詞。neighborhood 說的是「圍住」:一個集合若把點 x 圍在自己深處——裡面藏得下一個含 x 的 open set——它就是 x 的 neighborhood。有了它,任何點對任何集合 A 都能領到三種身分之一:被 A 圍在深處的是 interior point(內點);每一圈都同時沾到 A 與補集的是 boundary point(邊界點);有一圈完全落在補集裡的是 exterior point(外點)。

鑄這些詞是為了還兩筆舊帳:到目前為止,驗 open 得逐點配球(§9-1 定義 9.1),驗 closed 更得先繞去補集(§9-2 定義 9.4)——§9-2 篇末就預告過要治這趟迂迴。帳怎麼還,先從把定義立起來開始。

9.7  DEFINITION
Given x ∈ ℝᵖ, a neighborhood of x is any set holding some open set that contains x.
Given A ⊆ ℝᵖ, call x an interior point of A when some neighborhood of x lies entirely inside A;
a boundary point of A when every neighborhood of x meets both A and 𝒞(A);
an exterior point of A when some neighborhood of x lies entirely inside 𝒞(A).
給定 x ∈ ℝᵖ:集合 N 為 x 的 neighborhood(鄰域),意思是 N 裡藏著某個含 x 的 open set。對集合 A:某個 neighborhood 整個住進 A 者,x 為 interior point(內點);「每一個」neighborhood 都同時撈得到 A 的點與補集 𝒞(A) 的點者,x 為 boundary point(邊界點);某個 neighborhood 整個住進 𝒞(A) 者,x 為 exterior point(外點)。
正例:[0, 2] 是 1 的 neighborhood——裡面藏著 open 區間 (0.5, 1.5)。反例:單點集 {1} 不是 1 的 neighborhood——非空的 open set 至少裝著一整段區間,單一個點藏不下。

把定義逐句對回地圖上的三種城市:

定義片語白話
an open set with x ∈ G ⊆ N「藏著」是雙層的:x 在 open set 裡、open set 在 N 裡——x 被圍在深處,不是貼在邊上
some neighborhood ⋯ contained in A內陸城市:有一圈活動範圍整個落在國土內
every neighborhood ⋯ points of A and of 𝒞(A)邊境城市:圈再小,兩國的土地都沾得到——注意量詞是「每一個」
some neighborhood ⋯ contained in 𝒞(A)境外城市:有一圈完全是別國領土
三種身分恰好互斥而窮盡,而且全是「點 × 集合」的關係:任給 x 與 A,內、邊、外恰居其一——「有一圈全在內」與「有一圈全在外」不能同時成立,而兩者都落空時,每一圈就必然兩邊都沾,正是邊界。也注意同一個點換一個集合就換身分:1 對 [0, 2] 是內點、對 [0, 1] 是邊界點。說「x 是內點」而不說是誰的內點,話只說了一半。最後:neighborhood 自己不必是 open——[0, 2] 帶著兩個端點,照樣圍得住深處的點。

四個檢驗(9.8)

四個檢驗分兩批。前兩個是翻譯練習:把 neighborhood 與 interior point 各自換成一句更好動手的話;後兩個把 boundary 變成可操作的判準,並在區間與球上開驗。

例 1重寫 neighborhood:N 是 x 的 neighborhood ⟺ 有一顆以 x 為心的 open ball 整顆住進 N
定義 9.7 用「藏著 open set」發話,動手時嫌它抽象——第一個檢驗把它換成看得見的球。
兩個方向都要走:藏得下 open set ⟺ 塞得進以 x 為心的球。
  1. (⟹)設 N 藏著含 x 的 open set G。因為 G 是 open,x 在 G 裡配得到一顆整顆留在 G 內的球(§9-1 定義 9.1);而 G 躺在 N 裡,於是這顆球也整顆住在 N 裡。
  2. (⟸)反過來,設有一顆以 x 為心的球 B ⊆ N。由於每顆 open ball 自己就是 open set(§9-1 例 7),N 便藏著一個含 x 的 open set——正中定義的要求。
  3. 具體數字:N = [0, 2]、x = 1——球 (0.5, 1.5) 住得進去;x = 0——以 0 為心的球一律伸進負數,而 [0, 2] 一個負數也收不下。
N x x′ x′ 貼著邊:球怎麼縮都有一半在外 x 的球整顆在 N 裡——N 是 x 的 neighborhood

這張圖在證 neighborhood 的門檻:N 夠不夠格,看的是塞不塞得進一顆以 x 為心、整顆留在 N 內的球——深處的 x(藍)塞得進;貼邊的 x′(紅)任何球都掛出去一半,N 不是 x′ 的 neighborhood。

neighborhood 的檢驗從「找 open set」簡化成「塞 open ball」。順帶一提:[0, 2] 自己並不 open——外殼不必 open,裡子藏得住球就行。
例 2重寫 interior point:x 是 A 的 interior point ⟺ 有一顆以 x 為心的 open ball 整顆留在 A 內
interior point 的定義是「A 自己是 x 的 neighborhood」——把例 1 的字母換一換就是本例。這一例不另附圖:例 1 的圖把 N 讀成 A 即可。
把例 1 的 N 換成 A,逐字套用。
  1. 由例 1,「A 是 x 的 neighborhood」等價於「某顆以 x 為心的球整顆留在 A 內」;而前者按定義 9.7 就是「x 是 A 的 interior point」。
  2. 於是 interior point 的白話是:x 不只屬於 A,還被 A 圍在深處——§9-1 定義 9.1 逐點檢查的,正是「每個成員都如此」。這個伏筆 9.9 來收。
  3. 具體:A = [0, 1)——0.5 是 interior point,球 (0.4, 0.6) 作證;0 是成員卻不是 interior point,它的球一律伸進負數(§9-1 例 2 的同款破綻)。
interior point ⟺ 以 x 為心的球住得進 A。本篇之後全用這個口徑。
例 3重寫 boundary point,並清點區間的邊界:[0, 1] 與 (0, 1) 的 boundary 都是 {0, 1}
「每一個 neighborhood 都兩邊沾」聽起來要驗無限多種形狀——先把它換成逐 n 交件的版本,再拿最熟的兩段區間開驗。
先證:x 是 A 的 boundary point ⟺ 對每個 n ∈ ℕ 都交得出 aₙ ∈ A 與 bₙ ∈ 𝒞(A),兩者與 x 的距離都小於 1/n。再清點 [0, 1] 與 (0, 1) 的邊界。
  1. (⟹)半徑 1/n 的球按例 1 是 x 的 neighborhood,boundary 的定義要求它同時撈到 A 的點與 𝒞(A) 的點——各命名為 aₙ 與 bₙ,距離條件就是「在球內」的直譯。(⟸)任給 neighborhood N,例 1 交出一顆半徑 r 的球 ⊆ N;取 n 大到 1/n < r,aₙ 與 bₙ 就雙雙落進 N——兩邊都沾到了。
  2. 清點 [0, 1]:內部的點是內點(§9-1 例 2 的配球 r = min(x, 1 − x)),離開 [0, 1] 的點是外點(往外配圈即可)。端點 0 兩邊沾:aₙ = 1/(2n) 在籍、bₙ = −1/(2n) 在補集,雙雙貼著 0——0 是 boundary point,1 對稱。邊界名單:{0, 1}。
  3. 換 (0, 1) 再驗一次:內部照舊全是內點,而 0 這回不在籍——但身分不變:aₙ = 1/(2n) 仍在籍、bₙ = 0 自己就在補集裡。邊界名單同樣是 {0, 1}。
boundary 的檢驗從「所有 neighborhood」簡化成「逐 n 交一對點」。而 [0, 1] 與 (0, 1) 的邊界一模一樣——邊界身分不看在不在籍;差別只在:前者把邊界全收進來,後者一個也沒收。這個差別正是 9.10 的主題。
例 4球的邊界是球面:open ball 與 closed ball 的 boundary 都是 {y : |y − x| = r}
把例 3 的觀察搬進 ℝᵖ——區間的邊界是兩個端點,球的邊界就是整層球面。
對以 x 為心、半徑 r 的球,清點內、邊、外三份名單。
  1. 距離 < r 的點:§9-1 例 7 配過球——內點。距離 > r 的點:§9-2 例 6 用越界量配過圈——外點。
  2. 距離恰為 r 的點 z(站在球面上):沿著 x 到 z 的方向,往內縮一點是球內的點、往外伸一點是球外的點——兩串點都能貼 z 貼到 1/n 以內,例 3 的判準逐項打勾:z 是 boundary point。
  3. open ball 與 closed ball 的差別只在「球面收不收」,而三份名單的劃分只看距離——所以兩顆球的邊界是同一層球面。
內=球內、外=球外、邊=球面,收不收球面不改變名單。順帶入帳:open ball 一個邊界點也沒收,closed ball 全收——again,9.10 的伏筆。
── 小憩 ──

四個檢驗走完,起來甩甩手、轉轉脖子。接下來兩條定理把 open 與 closed 各自翻譯成三分法的語言——句型你已經會了。

open 的三種說法(9.9)

四個檢驗把新詞摸熟了,現在把 §9-1 的 open 整個翻譯過來。9.9 不是新定理管到新集合——是同一個 open 有了三種說法,任挑一種驗都行。

9.9  THEOREM
For a set B ⊆ ℝᵖ, the three statements below say the same thing: (a) B is open; (b) each point of B is interior to B; (c) B serves as a neighborhood of every point belonging to it.
對 B ⊆ ℝᵖ,三句話等價:(a) B 是 open;(b) B 的每一點都是 B 的 interior point;(c) B 是自己每一點的 neighborhood。
正例:(0, 1) 每點的配球(§9-1 例 2)正是「人人 interior」的證據——三句話同時成立。反例:[0, 1) 只差成員 0 不是 interior point——一票否決,三句話同時垮掉。

(b) 與 (c) 其實是同一句話的兩種語序——(b) 把鏡頭對準點、(c) 對準集合。證明因此排成一圈:(a)⟹(b)⟹(c)⟹(a),圈閉合之後,任兩句之間都有通路。

PROOF

設 B ⊆ ℝᵖ,依序證 (a)⟹(b)、(b)⟹(c)、(c)⟹(a) 三段,接成一圈。

證明計畫 · 由所求想起
(a)⟹(b):interior 要求「某個含 x 的 open set 藏在 B 裡」——open 的 B 自己就是那個 open set。
(b)⟹(c):interior point 與 neighborhood 本是同一句定義的兩種讀法,換個語序即得。
(c)⟹(a):每個成員交出一個 open set,聯集恰好拼回 B——§9-1 定理 9.3(c) 收尾。
B y₁ y₂ 每個成員交一塊含著自己的 open 拼圖——拼起來恰是 B

這張圖在證 (c)⟹(a) 的拼圖工法:每個成員 y 交出一塊藏著自己的 open 拼圖 G(y)(藍圈),全部聯起來跑不出 B、也漏不掉 B 的任何點——B 於是被寫成任意多塊 open 拼圖的聯集。

Proof of (a) ⟹ (b).  Take any x ∈ B. Because B is open, B is itself an open set that contains x and sits inside B — so B qualifies as a neighborhood of x, and x is thereby an interior point of B.
(a)⟹(b) 只是把兩個定義疊在一起,還沒有推理發生:任取 x ∈ B,定義 9.7 說 neighborhood 要「藏著一個含 x 的 open set」,而假設 (a) 給的 open 的 B 自己就是那個 open set——含著 x、又躺在自己裡面,外殼與裡子是同一個集合。所以 B 是 x 的 neighborhood;再按 interior point 的定義(B 自己是 x 的 neighborhood),x 就是 B 的 interior point。拿 B = (0, 1)、x = 0.5 摸手感:含 0.5 的 open set 用 (0, 1) 自己就行,不必另找。
Proof of (b) ⟹ (c).  Nothing here needs machinery: "x is interior to B" and "B is a neighborhood of x" are one assertion in two word orders. When the first holds at every point of B, the second does too — which is (c).
(b)⟹(c) 是全篇成本最低的一步:「x 是 B 的 interior point」按定義本來就是「B 是 x 的 neighborhood」的改寫,同一句話的兩種語序。(b) 說 B 的每一點都是 interior point,逐字換序就成了「B 是自己每一點的 neighborhood」——正是 (c)。之所以立成兩句,是視角不同——(b) 逐點發問、(c) 對集合發問。
Proof of (c) ⟹ (a).  Assume (c). Each point y ∈ B then owns an open set G(y) with y ∈ G(y) ⊆ B.
(c)⟹(a) 先把假設逐點兌現:(c) 說 B 是自己每一點的 neighborhood,按 neighborhood 的定義,每個成員 y ∈ B 就交得出一塊 open 拼圖 G(y)——含著 y、整塊住在 B 裡。B = (0, 1) 的具體版:y = 0.5 交 (0.4, 0.6) 或整個 (0, 1) 都合規;y = 0.0001 交 (0, 0.0002)。大小不一,全都整塊住在 B 裡。
These pieces reassemble B: every G(y) stays within B, and every y ∈ B sits inside its own piece, hence B = ⋃{G(y) : y ∈ B}. Since each G(y) is open, the union is open by 9.3(c) — therefore B is open.
接著驗 B = ⋃{G(y)} 這條等式的兩個方向:聯集跑不出 B,因為每塊拼圖 G(y) 都在 B 內;也漏不掉 B 的點,由於每個 y 都自帶一塊含著自己的拼圖。於是 B 被寫成「任意多個 open sets 的聯集」——這正是 §9-1 定理 9.3(c)(任意一族 open sets 的聯集是 open)管轄的形狀,B 是 open 一步到手。整圈裡只有這一段動用了真定理,前兩段全是定義的換句話說。
三段接成一圈:open、人人 interior、集合是人人的 neighborhood——三句話從此互為別名。∎

closed 的直接判準(9.10)

closed 這邊的翻譯同樣痛快。§9-2 定義 9.4 得繞到補集發身分證;9.10 的判準一眼盯著集合自己:邊界收齊了沒。

9.10  THEOREM
A set F ⊆ ℝᵖ is closed exactly when every one of its boundary points belongs to F.
F ⊆ ℝᵖ 為 closed 的充要條件:F 的每一個 boundary point 都屬於 F。
正例:[0, 1] 的邊界 {0, 1} 全數在籍(例 3)——closed,與 §9-2 例 3 驗補集的結論相同,這次不碰補集。反例:(0, 1) 的邊界同樣是 {0, 1},卻一個也沒收——不 closed。同一份邊界名單,收與不收就是 closed 與否的分水嶺。
PROOF

兩個方向分開證:先證 closed 的 F 收齊自己的 boundary points(反證),再證收齊 boundary points 的 F 必是 closed(正面,靠 9.9 收尾)。

證明計畫 · 由所求想起
(⟹)要證:closed 的 F 收齊邊界。
⇢ 反證——假設某個 boundary point x 逃在外面,open 的補集就升格成 x 的 neighborhood。
⇢ 矛盾出口:這個 neighborhood 按 boundary 的定義得撈到 F 的點,偏偏它整個避開 F。
(⟸)要證:收齊邊界的 F 是 closed。
⇢ 等於:補集是 open——9.9(c) 剛好把 open 換成「是每個點的 neighborhood」。
⇢ 補集裡的點不是邊界點、也當不成 F 的內點,只剩外點一途——外點的那一圈整個塞進補集。
Proof (⟹).  Let F be closed and let x be a boundary point of F. If x sat outside F, the open set 𝒞(F) would contain x and hence be a neighborhood of x. Because x is a boundary point, this neighborhood must contain a point of F — yet 𝒞(F) holds no point of F whatsoever. The contradiction shows x ∈ F.
(⟹) 走反證:設 x 是 closed 的 F 的 boundary point,假設它逃在 F 外面。因為 F 是 closed,補集 𝒞(F) 是 open;而含著 x 的 open set 自動是 x 的 neighborhood。矛盾在此成形:由於 x 是邊界點,它的「每一個」neighborhood——包括 𝒞(F)——都得撈到 F 的點;可是 𝒞(F) 按構造一個 F 的點也沒有。同一個集合不能既撈得到又一個都沒有,而全段唯一的假設是「x ∉ F」,錯的只能是它。
Proof (⟸).  Suppose F holds every one of its boundary points, and take any y ∈ 𝒞(F). Then y is not a boundary point of F; nor can y be an interior point of F, since an interior point belongs to F. By the trichotomy of Definition 9.7, the point y is an exterior point of F: some neighborhood of y lies wholly inside 𝒞(F).
(⟸) 換方向,用三分法排除去路:任取補集的點 y。它不是邊界點——邊界點按假設全被 F 收走了,而 y 站在 F 外面。它也不是 F 的內點——內點得有一圈整個住進 F,圈心當然也在 F 裡,與 y ∉ F 矛盾。三種身分恰居其一(定義 9.7 的 trap 驗過),內點與邊界點都已排除,y 只能是外點:有一圈整個落在 𝒞(F) 裡。
That neighborhood hides an open set containing y, and this open set lies inside 𝒞(F) — so 𝒞(F) is a neighborhood of each of its points. Theorem 9.9 then certifies 𝒞(F) as open, and F is closed.∎
收口與 9.9 對接:外點的那一圈是 y 的 neighborhood,裡面藏著含 y 的 open set,而整圈都在補集內,所以 𝒞(F) 也是 y 的 neighborhood。由於 y 是補集裡任取的,9.9(c)⟹(a)(集合是自己每一點的 neighborhood 就是 open)判定 𝒞(F) open——F 是 closed。
closed ⟺ 邊界一個不漏。配上 9.9 的鏡像(open 的集合連一個邊界點都不收——每個成員都是內點,而內點不是邊界點),內、邊、外三分法把 open 與 closed 一次翻譯完畢。∎
—— 第三階段到此結束 ——

你手上多了一套三分法與兩條免翻補集的判準:open ⟺ 每個成員都是內點(9.9);closed ⟺ 邊界全收(9.10)。[0, 1] 與 (0, 1) 共用同一份邊界名單、收法卻相反,正是兩條判準最好的對照組。下一篇 §9-4 只辦一件事:把 ℝ 上「open set 究竟長什麼樣」一次講清楚——答案漂亮得出乎意料。先起身裝杯水、看看窗外再回來。