學習目標與準備
列出集合的元素需要說明順序,證明每個元素在有限位置出現,並處理重複和空集。本章比較遞增列舉、對角列舉與有限字符串樹,檢查有關無限對象的錯誤推理。預備知識包括函數、自然數良序、有限積、等比級數和對角線定理。
取 。“可數”包含有限和可數無限。空集可數,但非空的 不可能滿射到空集,因此用滿射改寫定義時須處理空集。
1. 三種等價判別及空集
對非空集合 ,以下等價: 可數;存在單射 ;存在滿射 。
證明。 非空有限集可分配有限個不同自然數指標,可數無限集按定義有雙射,故得到單射。若給定滿射 ,將每個 送到滿足 的最小指標 。良序保證該指標存在;不同元素不能有同一指標,故得到單射。
反之設 單射,像為 。若 有限, 有限;若 無限,反複選擇尚未使用的最小元素,得到永不停止的遞增列表。每個 之前只有有限個更小的自然數,所以它不可能被無限期跳過。對列表應用 在 上的逆映射,得到 的枚舉。非空有限集在列完有限項後反複輸出某個固定項,便得從 出發的滿射。這樣各情況都已覆蓋,原列表不必無重複。
最小指標法可從任意列表去重,但不一定高效;可數性也不聲稱成员判定或列表可計算。數學枚舉存在與有效計算程序存在是不同陳述。
2. 枚舉不必按數值遞增
每個無限自然數子集都有上述遞增枚舉。對 則不然:嚴格遞增序列有第一項,之後無法到達任何更小整數,故不能覆蓋全體整數。熟悉的 為了覆蓋全部整數放弃了遞增順序。
也無法嚴格遞增地枚舉。若列表覆蓋全部元素,它須從零開始,否則零已被遺漏。設下一項為 ,則有理數 嚴格介於前兩項,無法在遞增列表中稍後出現。這不是說有理數不可數,而是該排序要求不可實現。
定理
有理數是可數的
有理數集合 至多可數,事實上是可數無限的。
每個正有理數都有唯一的最簡表示 ,其中 且 。把 放在第 行、第 欄,然後沿有限對角線 掃描。每條對角線內按分子遞增掃描(固定任何一種順序 都可以),只保留互素的數對。開頭可以是
例題
為甚麼有理數的對角掃描有效
例如 已經是最簡形式,位於對角線 。在這條對角線之前 只有有限條對角線,而它本身也只有有限個數對,所以 會在有限位置 被掃到。另一方面,只保留互素數對意味着兩個被記錄的數對不可能表示同一個 正有理數:最簡表示的唯一性迫使 相同。因此,這個掃描對 既是 滿的,也是單的。
這個論證同時證明了兩個方向。每個正有理數都有最簡數對,所以沒有遺漏;最 簡數對唯一,所以沒有重複。若所得列舉為 ,則
列出每個有理數恰好一次。零出現一次,每個非零有理數都有唯一的符號和唯一 的正絕對值。因此 可數。 它不是有限集:包含映射 從 到 是單射,所以 包含無 限多個互不相同的整數。
另一種具體列舉。 按有限高度 列舉整數分子、正分母對,並在同高度內按分子遞增排列。輸出 ;如有需要,可在首次出現後去掉重複值。每個有理數至少有一個有限高度的表示,之前僅有有限個數對,故一定到達。有理數稠密不妨礙非單調的枚舉。
3. 有限描述的族
用同時控制長度和元素大小的高度列舉所有有限整數串:先列空串;對每個正高度 ,列出長度至多 、各項絕對值至多 的串,只保留首次出現者。每一步的候選串有限;任意有限串的長度和最大絕對值均有限,故在某個高度前必出現。
因此可由系數字符串详細列舉整數系數多項式,而不是只說“列出所有公式”。末尾零會造成重複描述,可去重。用有限根數界時必須排除零多項式。
多項式作為有限形式和
定義
R 上的多項式
一個實係數多項式是一個形式和
其中每個 ,而且只有有限多個 非零。所有實係數多項式的集合 記作 。
「形式」這個字很重要。多項式不是某個單一 值下的函數值,而是一整列係數 資料;只要係數固定,整個多項式就固定。
概念視角結構
先看係數,再作代入
兩個形式多項式相等,正是指每個對應係數相同,包括省略的零係數。因此 與 相等。代入實數 後,才得到數值 。雖然記號寫成無窮求和,卻沒有收斂問題: 只有有限多個非零加項。
單個函數值所含的資訊少於係數列表。例如 與 在 都給出 ,係數卻不同。在 上,若每個實數輸入的值都相同,確實可以 推出多項式相等;本節稍後的根數上界會證明這個逆向結論。在此之前, 係數相等是定義,代入則是對已經定義的對象進行的操作。
若至少有一個係數非零, 的次數是使 的最大指標 。若所有 係數都是零,我們稱它為零多項式,並約定
這個約定可以令許多次數公式不用一直把零多項式分開處理。
非零常數的次數是 ,因為常數項是最高非零項。零多項式沒有這樣的項, 並不是零次多項式。比較次數時, 小於每個非負整數;約定 、,也包括 。 這些是處理次數的規則,並不是說多項式含有負整數指數。 零多項式沒有首項係數,也不是首一多項式。
若首項係數是 ,多項式稱為首一多項式(monic polynomial)。例如 是首一多項式,而 不是。
常見錯誤
不要只看最後寫出的項就判斷次數
若寫成
只有在 時才可斷言 。符號本身不保證最後一個係數非零。
加法、乘法與次數
設
加法是逐項相加:
乘法則使用卷積公式:
因為非零係數只有有限多個,乘積仍然是多項式。
定理
次數規則
對 ,
- ;
- 。
第二條使用了係數域沒有零因子的性質。
第一條可能是嚴格不等式,因為最高次項可以抵消。例如
乘法規則較強:若 、 非零且首項係數分別為 、,則 中 的係數是 ,它不會是零。
進一步說明為何沒有更高次項。設 、。 若 ,每個貢獻 都滿足 或 , 所以至少一個係數為零。在指標 處,只有 、 可能貢獻; 係數來自域,故其乘積非零。因此兩個非零多項式的乘積不可能是零多項式。
對加法,超過 的係數都是零。若兩者次數不同,較高的首項沒有 可抵消的對應項,所以達到上界。次數相同時,抵消卻可能一直進行到底: 的次數為 。乘法中若一個因式為零,乘積也為零, 上述約定仍使次數公式成立。
定理
多項式除法算法
設 且 。則存在唯一 使得
先證存在性。考慮非空集合
取 可知 。若 ,選 使 , 並取 ;由 ,餘式滿足條件。否則 的每個成員 都有非負整數次數,因此良序原理保證存在次數最小的 。
假設 ,兩者首項係數分別為 。 因為 ,在係數域中可以取 。構造
指數 非負,所以新增的式子仍是多項式, 仍在 內。 兩個首項 抵消,剩餘項的次數都小於 。若 , 便與 矛盾;若非零,則與最小次數矛盾。 因此 ,所求商式、餘式就是 。
唯一性同樣重要。若
且兩個餘式的次數都小於 ,則
左邊若非零,次數至少是 ;右邊次數嚴格小於 。因此兩邊都必為 零,故 且 。
證明透視
唯一性的矛盾發生在哪裏
假設商式不同,其差就是非零多項式,次數至少為 。乘以非零的 , 左邊次數便至少為 。右邊相減時可以消項,但次數不可能高於兩個 餘式中較高者。因此兩邊不可能相等,商式必須相同;代回就迫使餘式也相同。 這個論證同時用到次數界限與除式非零的假設。
由代入取得餘式
當除式是一次式時,除法算法會變成非常實用的定理。
定理
餘式定理
設 且 。當 除以 時,餘式等於 。
因為餘式次數小於 ,它只能是常數 。寫成
並代入 ,便得 。
此處 在除法恆等式中視為常數多項式,也可以是零。不能先把 恆等式除以 再代入 ,因為這樣會除以零;直接在多項式 恆等式中代入才是合法操作。
多項式整除 的意思是:同一係數域中存在多項式 使 。若 非零,這等價於餘式為零。特別地,每個多項式都整除 零多項式,但帶餘除法要求除式非零。
定理
因式定理
對 與 ,
因式定理把代數因式與根連起來:一個根給出一個一次因式,而一個一次因式也給出 一個根。
非零多項式可以有多少個根?
因式定理給出根的數量上界。
定理
根的數量上界
一個 或 上的非零 次多項式最多有 個相異根。
歸納起點是次數 :非零常數不可能取零值。假設結論對 次多項式 成立,考慮 次的 。若它無根,結論已經成立;否則取一個根 。 因式定理給出 ,其中 非零,由乘積次數規則可知 其次數為 。
若 是另一個根,代入得 。純量 在係數域中 非零,所以 。歸納假設保證這類相異根最多有 個,再加上 這個值,最多有 個。論證不要求 ;即使 也是 的根,在根的集合中仍只算一個值。
因此,若一個次數至多 的多項式有 個相異根,它必定是零多項式。
根數上界也需要精確的假設。零多項式在每個輸入處都為零,所以必須排除。 「相異」計算的是不同值,而不是某個因式出現的次數。把上界用於 可知:若兩個次數至多 的多項式在 個相異輸入處相等,則它們 相等;否則非零的差會有過多的根。在每個實數輸入處都相等是其特例, 這便補全了形式多項式與代入所得函數之間的聯繫。
已給枚舉的可數乘積與並
設 。對每個 ,假設定義域 和滿射 已作為一族數據同時給定。空集合使用 ;有限列表可使用有限的 。在這些假設下, 可數。同樣,兩個已給枚舉的集合的乘積也可數。
證明。 固定雙射 :
它依次掃描有限對角線。對於並集,只保留滿足 且 的數對,按其 指標次序輸出 。由於給定映射是滿射,並集的每個元素都會出現。對每個輸出 , 出現的指標構成 的非空子集,故有唯一最小元。把 對應到這個最小指標得到單射:一個指標只對應一個數對,因而只有一個輸出。因此並集可數;空並的情形顯然。這個構造直接使用題設給定的各集合枚舉。
對於乘積 ,使用給定的映射 與 ,只保留 。輸出 覆蓋乘積的每個元素;同樣將每個輸出對應到其有效 指標的最小值,即可證明可數。若任一因子為空,乘積為空。
統一構造有理數列表。 固定 的一個枚舉 。對每個固定的 ,按坐標和遞增、同和時按字典序列出 的指標元組,並將 送到 。每個元組都會出現,且每條對角線有限。 時使用唯一的空元組。這些規則同時給出所有 的列表,因此有限有理字符串的並可數,無須選擇未指定的列表。
非零有理係數多項式只有有限個實根。對給定可數列表中的每個非零多項式,將其實根按從小到大排列;沒有實根時使用空列表。實數集合 的每個有限子集都有唯一的遞增列表,故此規則給出整族根的列表,無須任意選擇枚舉。它們的並就是代數實數的集合,所以該集合可數。
可由某類有限字符串描述的實數至多可數,但這不能證明每個實數都有這種描述。不可數性說明後者不能未經證明地假設。
4. 有限樹節點與無限分支
令 為長度為 的二進制串集合,含 個元素。按長度再按字典序列舉, 可數;空串是長度為零的唯一節點。
無限二進制序列不是這些有限節點之一,它是在每一層選取互相相容的節點而成的無限分支。若分支被列為 ,定義新分支 ,使 。它在第 個坐標不同於第 個分支,故不等於列表中任何一項。因此儘管有限節點集合可數,無限分支仍不可數。
錯誤推理。 “每個無限序列由可數個有限前綴組成,所有有限前綴組成可數集,因此所有無限序列組成可數集。”前提說前綴屬於 ,結論卻把 的子集族當作 的子集。分支是一整個相容節點子集,而非單個節點;可數集的冪集可以不可數。可數並定理需要事先有可數的分支指標集,而這正是待證明的結論。
5. 可數基不意味著只有可數個開集
有理端點開區間組成可數族。每個開集 都是該族中一些成员的並:對每個 ,先取包含 且含於 的小區間,再用有理數稠密性在 兩側選取區間內的有理端點。取所有含於 的有理端點區間,恰好得到 。
開集卻不可數:映射 從 到開集族是單射。若 ,二者之間的點屬於第一個半直線而不屬於第二個。這不矛盾:每個開集使用可數基的一個子族,但子族本身可以不可數多個。這與節點和分支的混淆相同。
6. 選讀:很短的覆蓋也可容納不可數集
對二進制序列 ,令 。等比級數保證它在 中。令 ,並定義 ;此映射與 僅差指標重命名。
為證明單射而不使用錯誤的 “端點展開唯一”說法,設兩序列第一次在第 位不同。首項差的絕對值 是 ,而全部尾項的最大絕對值不超過
首項差嚴格更大,不可能被尾項抵銷,所以 是單射。
因此所有這些值組成的集合 不可數。固定前 位後,每個值落在 個閉區間之一中;餘項從零到 ,所以每個區間長度為 。故 有總區間長度為 的有限覆蓋,且該長度趨於零。這只是有關明確有限覆蓋長度的陳述,不需要測度論術語;基數不能直接等同於幾何長度。
構造與驗證練習
- 定義邊界。 解釋為何“可數當且僅當存在從 出發的滿射”須加非空條件,並給出適用於所有集合的版本。
- 次序。 不借助最小元零,證明 沒有嚴格遞增的枚舉。
- 覆蓋。 用有限串給出所有有理系數多項式的窮儘列舉,指出兩種重複描述的來源。
- 樹的區別。 證明最終等於零的二進制序列構成可數集,而所有無限二進制序列不構成可數集。說明“最終”允許依賴甚麼。
- 開集診斷。 學生說可數基成员的並只有可數種可能。指出混淆的對象,並給出單射反例族。
- 幾何界。 在選讀的 構造中,證明每個 都有總長度小於 的有限區間覆蓋。為何這不能枚舉 ?
完整解答
- 空集有限,故可數;但從 出發的函數必須給零賦值,不可能以空集為目標。正確表述是:“ 可數,當且僅當 為空,或存在從 到 的滿射。”對所有集合,也等價於存在單射 ,其中包含空函數。
- 任何候選遞增枚舉的首項為 。有理數 也在該集合,但小於首項,不能在嚴格遞增序列稍後出現,因此枚舉不完備。這裡使用首項,而不是假設集合有最小元。
- 先用整數與正分母對枚舉有理數。對每個有限長度,用重複對角枚舉列出有理數指標的元組,再交錯各長度,輸出相應系數多項式。同一有理數的不同分式表示可產生重複系數,末尾零可產生長度不同但相同的多項式。可數性不要求必須去重;每個多項式有有限系數元組,因而被到達。
- 對每個截斷位置 ,從第 項起為零的序列由前 位確定,只有 種。按截斷位置及有限前綴列舉,得其並可數。截斷位置可以依賴序列,不要求統一的截斷值。對任意無限序列,上述對角構造击敗每個候選列表,故不可數;按截斷位置的可數並只覆蓋最終為零的分支。
- 基是單個區間構成的可數集合,其子族形成的是冪集,不是基本身。不同子族可產生許多不同的並。實數 對應的開半直線 已按上述單射證明構成不可數族,因此原斷言錯誤。
- 選 使 。按前 位把點分組,取對應的 個閉區間,每個尾部寬度為 。它們給出所需總長度的有限覆蓋。每個區間仍可含不可數多個不同的後續分支,集合的覆蓋不是其元素的列表。二進制序列的單射構造獨立證明 不可數。
總結與術語
窮儘列舉在有限位置到達每個元素,不一定按大小排列或可計算。有限描述是一條有限串,而無限相容描述的族可以不可數。基是生成開集的集合,而不是其所有子族的集合。應用可數並論證前,應證明列舉的覆蓋性並辨認被計數的對象。