2006/10/21

實數建構 ─ 實數加法與乘法

承接上一篇《實數建構 ─ 有理增數列與實數系之全序》,本篇建立實數的四則運算。減法和除法只是加法和乘法的反運算,所以實際上僅需建立加法與乘法。

首先提出一點:在這個建構方式下,有理數很自然地包含在實數內。每個實數背後是同值的有界遞增有理數列的集合(所謂 equivalent class),而有理數 q 所對應的 equiv. class 就是 {q, q, q, ...} 這個「增」數列所代表的那個 equiv. class。

以下列出加法和乘法的公理(axioms):

  • (A1) 若 x \in R、y \in R,則 x + y \in R。(封閉性)
  • (A2) x + y = y + x forall x, y \in R。(交換律)
  • (A3) (x + y) + z = x + (y + z), forall x, y, z \in R。(結合律)
  • (A4) 存在一個元素 0 \in R 使得 0 + x = x forall x \in R。(單位元素存在)
  • (A5) 對於所有元素 x 均存在元素 -x 使得 x + (-x) = 0。(反元素存在)

  • (M1) 若 x \in R、y \in R,則 xy \in R。(封閉性)
  • (M2) xy = yx forall x, y \in R。(交換律)
  • (M3) (xy)z = x(yz), forall x, y, z \in R。(結合律)
  • (M4) x(y + z) = xy + xz, forall x, y, z \in R。(分配律)
  • (M5) 存在一個元素 1 \in R 使得 1x = x forall x \in R。(單位元素存在)
  • (M6) 對於所有不等於 0 的元素 x 均存在元素 1/x 使得 x(1/x) = 1。(反元素存在)

因此我們定義實數加法和乘法時,必須確保遵循上述公理。定義方式事實上很簡單,對於兩個實數 ξ 和 η,從兩者背後的 equiv. classes 各任意抽一個數列出來,記為 ξ ∼ x = {x_1, x_2, x_3, ...} 和 η ∼ y = {y_1, y_2, y_3, ...},然後定義 ξ + η 為數列 {x_1 + y_1, x_2 + y_2, x_3 + y_3, ...} 所屬的 class。這個新的有理數列仍然遞增有上界,因此立刻滿足 (A1)。(A2) 和 (A3) 從有理數系的交換律和結合律立即可得。(A4) 所要求的 0 元素就是 {0, 0, 0, ...} 所屬的 class。乘法亦類似,從兩個實數背後的 equiv. class 各抽出一個數列,然後把「兩個正實數的積」定義為「兩數列逐項相乘所成的新數列」所屬的 equiv. class,再另外定義 "ξ > 0, η < 0 ==> ξη = - ξ(-η)" 等涉及負數的狀況。(M1) 顯然成立,(M2) 到 (M4) 由有理數系的交換律、結合律、分配律立得,(M5) 所要求的單位元素 1 就取 {1, 1, 1, ...} 所屬的 class。

麻煩的是反元素,也就是 (A5) 和 (M6)。就 (A5) 而言,如果對任意實數 ξ ∼ x = {x_1, x_2, x_3, ...},直接找 η ∼ x' = {-x_1, -x_2, -x_3, ...} 想使 ξ + η = 0,這樣會有麻煩 ─ x' 不是有界增數列,而是有界減數列,根本不屬於 B!因此我們必須另外找一個有界增數列相應於 η 使 ξ + η = 0。找法如下:找兩個數列 {u_n} 和 {v_n},{u_n} 為 x 的子數列(顯然有上界遞增,而且和 x 處於同一個 equiv. class 之內 ─ {u_n} 和 x 代表的是同一個實數),{v_n} 有下界遞減且每項均為 x 的上界。讓這兩個數列間的差 u_n - v_n 趨近於零,即 u_n + (-v_n) 趨近於零,那麼就找到 η ∼ y = {-v_1, -v_2, -v_3, ...} 使得 ξ + η = 0。(要嚴謹論證的話,必須從有界遞增有理數列同值的定義驗證 {u_1 - v_1, u_2 - v_2, u_3 - v_3, ...} ∼ {0, 0, 0, ...}。)這樣的 η 就沒問題,因為 {v_n} 遞減有下界,所以 {-v_n} 遞增有上界,的確定義了一個實數。

這兩個數列的精確找法仍是無窮二分搜尋:首先取 u_1 為 x_1,v_1 為 x 的某個上界,然後取兩者中點 m。如果 m 為 x 的上界,就取 u_2 = u_1、v_2 = m;如果 m 不是 x 的上界,代表存在 k 使得 x_k > m,取 u_2 = x_k,v_2 = v_1。如此「取 u_n 和 v_n 中點得到 u_{n + 1} 和 v_{n + 1}」以至無窮,就得到所求的兩個數列。因為二分搜尋的緣故,這兩個數列對應項的差每次都至少減半(說「至少」是因為 m 不為 x 上界時減少超過一半),所以最後會趨近於零(由夾擠原理)。

(M6) 亦類似。ξ ∼ x = {x_1, x_2, x_3, ...},不妨設 x_n > 0 forall n。依上述方式找到 {u_n} 和 {v_n} 後,就找到正實數 η ∼ y = {1/v_1, 1/v_2, 1/v_3, ...},{v_n} 遞減有下界,因此 {1/v_n} 遞增有上界(在 B 裡面,沒問題),u_n - v_n 趨近於零,因此 u_n / v_n 趨近於 1(由極限操作規則),所以的確 ξη = 1。如果 ξ < 0,只要一開始找 x 的上界當作 v_1 時找一個負數,就不會發生 v_n = 0 的麻煩,其餘論證仍然成立。

這些公理確定成立後,一般我們熟悉的實數四則運算便盡皆成立。例如消去律 "x, y, z \in R, x + z = y + z ==> x = y" 可這麼證明:x = x + 0 = x + (z + (-z)) = (x + z) + (-z) = (y + z) + (-z) = y + (z + (-z)) = y + 0 = y,每一步都是從加法公理而來。

--
下次是完結篇:傳說中的實數完備性!