§2-1  函數是一種集合

一條公式、一張對照表——兩者的共同本質是什麼?把函數定義成有序對的集合,究竟換到了什麼?

從販賣機說起

投幣,按下「B3」,掉出一瓶烏龍茶。販賣機最讓人放心的一點是:同一顆按鈕,永遠掉同一款——今天按 B3 出烏龍茶、明天按 B3 出咖啡的機器,會被抗議到下架。「每個輸入,恰好對應一個輸出」,這件日常小事就是本篇主角的全部靈魂。

一百年前的數學家會說:函數就是公式,像 f(x) = x² + 3x − 5 這樣,餵進一個數、算出一個數。可是公式觀很快就捉襟見肘——|x| 得「分段」寫(x ≥ 0 時取 x、x < 0 時取 −x),當年甚至有人爭論它算不算「正經函數」;而一張罰球紀錄表——九名球員各對應一個進球數——明明每個輸入恰有一個輸出,卻沒有任何公式可言。第一次修正把定義放寬成:「一條對應規則,替 A 的某個子集裡的每個 x 指定唯一的 f(x) ∈ B」。方向對了,但「規則」兩個字自己就是一團迷霧——什麼算規則、誰來裁定?

最後的解法乾脆徹底:不描述對應怎麼來,只記錄對應本身。把每一筆「輸入 a 對到輸出 b」寫成有序對 (a, b),函數就是這些有序對湊成的集合——也就是它自己的圖形。這樣一來,函數住進了 §1 剛蓋好的笛卡兒積裡,「規則」的迷霧散盡,只剩一條硬規矩要守:第一分量一經指定,第二分量就唯一確定——販賣機條款。

官方定義:函數、定義域與值域(2.1)

2.1  DEFINITION
Let A and B be sets. A function from A to B is a set f of ordered pairs in A × B such that whenever (a, b) and (a, b′) both belong to f, then b = b′.
The domain D(f) collects the first members of the pairs in f; the range R(f) collects the second members.
When D(f) = A, say f maps A into B and write f : A → B.
For (a, b) ∈ f, write b = f(a) and call b the value of f at a, or the image of a under f.
函數就是 A × B 裡的一個有序對集合,守一條規矩:同一個第一分量不得配兩個不同的第二分量。所有出現過的第一分量收成 domain(定義域)D(f),所有第二分量收成 range(值域)R(f);D(f) 恰好是整個 A 時寫 f : A → B。「(a, b) ∈ f」慣例改寫成 b = f(a)。
正例:{(1, 4), (2, 4), (3, 6)} 是函數——兩個輸入共享同一個輸出不犯規,規矩只管「一個輸入配兩個輸出」。反例:{(1, 4), (1, 5), (3, 6)} 不是——輸入 1 配了兩個輸出,販賣機條款陣亡;例 1 會用整條圓來放大這個病徵。
A B 鉛直線至多命中一點 函數=笛卡兒積裡挑出的點集(藍)

這張圖在說 2.1 的全部內容:函數就是笛卡兒積裡的一個點集——它的圖形不是函數的「附圖」,它就是函數本人。販賣機條款翻成幾何語言:每條鉛直線至多命中一點。

三件細節值得停留。其一,定義完全不提「規則」「公式」「算法」——對應怎麼來的不重要,對應本身記錄在案就算數,罰球紀錄表因此與 x² + 3x − 5 平起平坐。其二,f 與 f(x) 從此涇渭分明:f 是整個集合(整部機器),f(x) 是餵進 x 之後的那一個輸出——把絞肉機與絞肉混為一談的人不多,把函數與函數值混為一談的卻不少,記號上分清楚值得這一點功夫。其三,range 是「實際出現過的輸出」全體——它住在 B 裡,但不必填滿 B;這條伏筆到 §2-3 的 surjective 才收。

A B D(f) R(f) f a f(a) 變換視角:D(f) 住在 A 裡、R(f) 住在 B 裡,箭頭一人一支

這張圖在畫同一個定義的第二種讀法:把 f 看成「搬運」——D(f) 的每個點被送進 B,落點全體構成 R(f)。圖形觀與變換觀是同一份資料的兩種瀏覽模式,往後依場合切換。

試金石:誰是函數,誰不是

例 1單位圓不是函數,右半圓也不是——上半圓才是
拿一個熟面孔測試販賣機條款:圓 x² + y² = 1 明明是 ℝ × ℝ 裡好端端的有序對集合,離函數卻差一步。
判定 C = {(x, y) : x² + y² = 1} 是不是函數;若不是,指出修剪成函數的辦法。
  1. 驗販賣機條款:取 x = 0,則 (0, 1) 與 (0, −1) 都屬於 C——同一個第一分量配了兩個第二分量,C 不是函數。幾何讀法:鉛直線 x = 0 戳中圓兩次。事實上 −1 < x < 1 的每條鉛直線都戳中兩次,違規不是孤例是常態。
  2. 修剪:只留上半圓 {(x, y) ∈ C : y ≥ 0},每條鉛直線至多命中一次——這是函數(高中會寫 y = √(1 − x²);開根號的嚴格存在性要到 §6 才立案,但此處的集合寫法完全不依賴那條公式)。下半圓同理是另一個函數。兩個函數疊回去才是整條圓。
有序對集合是不是函數,全看販賣機條款一條——而「不是函數」的集合往往能修剪出好幾個函數。這個「修剪」的動作下一段立正式名字。
戳中兩點:不是函數 上半圓:恰中一點,是函數

這張圖在證例 1 的兩個判定:整條圓(左)被鉛直線戳中兩點,違反販賣機條款;修剪成上半圓(右)之後每條鉛直線至多命中一點——同一批點,剪掉一半就成了合格的函數。

修剪與加寬:restriction 與 extension

例 1 的「修剪」值得一個正式名字。設 f 是函數而 D₁ ⊆ D(f),把 f 裡第一分量落在 D₁ 的有序對挑出來——f₁ = {(a, b) ∈ f : a ∈ D₁}——所得的函數稱為 f 在 D₁ 上的 restriction(限制),記作 f | D₁;它在 D₁ 上的輸出與 f 一字不差,只是服務範圍縮小。反向的動作叫 extension(擴張):g₂ 的定義域更大、而在原範圍 D(g) 上與 g 完全一致,就稱 g₂ 是 g 的擴張。§3 的 3.3 證明裡「限制定義域再重新編號」用的正是這裡的 restriction——當時賒的帳,本篇補上正式出生證明。修剪在 §2-2 還有一場重頭戲:不是函數的問題可以修剪解決,「不能反著讀」的問題也可以。

—— 第一階段到此結束 ——

函數的身分定案:它不是公式也不是「規則」,而是笛卡兒積裡守著販賣機條款的有序對集合——公式、表格、機器都只是這份資料的瀏覽模式。定義域與值域各就各位,restriction 與 extension 備妥。下一篇 §2-2 讓函數動起來:兩部機器接力(合成)、以及什麼時候能把機器反著開(反函數)。起來裝杯水、活動一下手腕再繼續。