證明與條件:憑什麼從已知走到結論
適用入口/先備/邊界
適用入口:10 年級,對應課綱 N-10-7「邏輯」。本篇把命題、否定、推論方向、充分必要條件,以及「且/或」,放在倍數、方程式與數線情境中理解。課綱 N-10-7 列有這些內容,並標示 ★、#:★表示建議不作為評量的直接命題對象,但可融入其他課題的評量;#表示不必另設獨立教學單元,宜在適當課題中教授。因此,本篇是供相關數學課題穿插閱讀的概念主文,不是新增一個獨立形式邏輯課程,也不把符號操作另行升格為必測單元。國家教育研究院:數學領域課綱(107年6月)
必要先備:課程手冊列出的先備為「畢氏定理以及平面幾何的推理」。本篇實際閱讀另須能辨認整數、實數、倍數與偶數,會代入計算、比較大小,並能使用平方差分解與「兩數相乘為零,至少一數為零」的已學性質。數線的實心、空心端點與區間記號會隨例子說明,不預設已完整學過集合運算。
讀完應能做到:把一個全稱敘述改成精確的否定;針對指定方向提出證明或反例,分清逆、否、逆否;分別檢查兩個方向,說明充分、必要或充要;把「且/或」條件畫成保留正確端點的數線範圍。
本篇邊界:不列真值表,不做形式邏輯運算或布林代數,不另開一般證明方法課,也不展開數學歸納法、無理數證明或幾何證明訓練。以下代數與幾何只提供已學題材。課程中的融入與補充,不等於將本篇所有內容列為獨立評量要求。
一、算對幾個答案,和知道為什麼一定對,是兩件事
「4 的倍數一定是偶數。」
你大概不會懷疑這句話。4、8、12、16,全都符合。
但把話倒過來:「偶數一定是 4 的倍數。」事情立刻不同。2 是偶數,卻不是 4 的倍數。
兩句話用到幾乎相同的詞,差別只是從哪個條件走向哪個結論,真假卻不一樣。真正需要學的不是替這兩句話各背一個名稱,而是辨認:目前知道的事情,究竟足不足以保證接下來的結論?
已有計算,為什麼還需要證明?
在數學發展中,計算和論證並不是「沒有工具」與「突然有工具」的簡單交替。耶魯大學巴比倫典藏收有古巴比倫數學泥板 YBC 7289;館方將它介紹為含有 近似值的數學學習泥板。這件史料至少告訴我們:在《幾何原本》所呈現的論證組織以前,人們已有數值計算與書寫傳授的工具,不能把前人描寫成只會憑感覺猜測。巴比倫文物館
不過,「這個量可以算到多準」和「這類對象為什麼都具有某個性質」,並不是同一個問題。
以我們已學過的三角形為例,核算幾組邊長,可以確認那些個案的平方關係;即使每次都算得非常準,仍須另外交代:為什麼換成另一個符合條件的三角形,結論也必然成立?又為什麼能從平方關係反過來判定角度?
這裡的限制不是單純「算得慢」,而是只交出若干個案的答案,尚未提供涵蓋全部對象的理由。若手上只有已核算的個案,面對未核算的對象,就還缺少能直接保證結論的依據。這是對方法能力的比較,不是宣稱所有古代計算者都不會推理。
《幾何原本》第一卷呈現了一種重要的知識組織方式:先列定義、公設與共同概念,再將命題和證明接起來,讓後面的論證可以引用前面已建立的結果。這樣,讀者不只拿到結論,還可以追問每一步依據何在。這裡把它當作可查的代表文本,不把證明方法、今天的邏輯符號,或本篇討論的內容都歸給一位發明者。Clark University
其中第 47 命題,從直角三角形出發,建立三邊的平方關係;第 48 命題則另作證明,從三邊的平方關係判定相應的角是直角。用今天的語言說,兩個方向需要各自的根據,不是第一個方向成立,第二個就自動成立。Clark University
第 48 命題如何利用第 47 命題?它先依原三角形的兩條邊長,構造相應的直角三角形;再用第 47 命題和原先給定的平方關係,確認兩個三角形的第三邊也相等,最後利用三邊對應相等的結果,判定相應角相等。因此,原來要判定的角也是直角。這不是把原定理的句子直接倒轉,而是補上讓反方向成立的推理。Clark University
因此,在這部文本中可以看到的能力,不只是多算出一組邊長,而是把「某個條件能推出什麼」組織成可以檢查、可以再引用的關係。已證結果不必每次從頭建立,而能在符合其前提時,成為後續論證的材料。這是對文本所展示能力的解讀,不是宣稱所有證明都在這部書中首次出現。Clark University
這種能力也有邊界。關於理想幾何對象的精確證明,不等於拿尺量到三個近似長度,就已證明某個實物的角度恰好是直角。證明的保證跟著它的前提走;實物是否符合前提,仍是另一項要檢查的事。
接下來,我們不重做整套幾何論證,而用熟悉的數,把這種「保證從哪裡來」的結構看清楚。
二、先說清楚談哪些對象,才能問一句話是真是假
「8 是 4 的倍數」是真的;「6 是 4 的倍數」是假的。兩句都有明確的真假意義,因此都是命題。命題不等於正確的話;錯誤但意義明確的敘述,也可以是命題。
這裡說真假意義明確,不是要求我們當下就知道答案。一句敘述是否為命題,和我們是否已經證明它,仍是不同的問題。
「請找出一個 4 的倍數」是要求,不是在宣稱某件事為真或為假,因而不是這裡所說的命題。
再看
如果沒有指定 的值,也沒有說明是對所有 還是某個 而言,這只是等待對象代入的條件,還不能直接替整句指定一個真假。例如代入 成立,代入 不成立。
加上「對每一個實數 ,都有 」,就成為可以判斷的完整命題,而且是假的,因為實數 2 不符合。
這裡有兩個不能省略的部分:談論範圍,以及聲稱涵蓋多少對象。「每一個」「所有」聲稱沒有例外;「至少有一個」「存在」只要求找到一個符合者。這些詞稱為量詞,但本篇用它們來讀清數學句子,不另外進行符號演算。
範圍也不是裝飾。例如「所有正數都大於零」中的對象原本就是正數,不能拿負數當反例;否定一句話時,也不能偷偷把它的談論範圍換掉。
三、反例與否定:不是把話說得相反,而是準確指出失敗在哪裡
「不是不大於」究竟是多少?
在實數範圍內, 的否定是
而不是 。
理由就在邊界:取 ,「」和「」同時成立,它們就不可能互為否定。正確的否定要做到:對同一個對象,原敘述與否定敘述恰好一真一假;不能同時成立,也不能同時不成立。
「所有都成立」的否定,為什麼不是「所有都不成立」?
考慮這個教學用命題:
對所有實數 ,都有 。
先試 ,都沒有出問題。但取
就有
回查時要確認兩件事: 確實在原先指定的實數範圍內;它也確實使原來要求的 失敗。因此它是有效反例。
原命題的正確否定是:
至少存在一個實數 ,使得 。
原命題說「沒有任何例外」;否定它,只需說「至少有一個例外」。並不需要聲稱全部實數都失敗。
如果誤寫成「對所有實數 ,都有 」,這句話在 時又失敗。結果原句和這個誤寫的句子都是假的,正好說明它們不是互為否定。
因此,把「所有指定對象都具有某性質」改成否定時,要同時做兩件事:把「所有」改成「至少存在一個」,並把性質改成它的否定。反過來,「至少存在一個指定對象具有某性質」的否定,就是「所有指定對象都不具有該性質」。談論範圍保持不變。
反例和證明,承擔的工作不同
一個合格反例足以推翻「所有都成立」,因為原句本來就不容許例外。但若只從無窮多個對象中挑幾個來驗算,全部成功,仍沒有處理未檢查的對象。
這不表示逐一檢查永遠不能成為證明。若題目明定的範圍只有有限個對象,而且確實逐一檢查完、沒有遺漏,窮盡檢查可以完成證明。要分清的是:你檢查的是全部,還是只檢查了其中一些。
四、從已知走到結論:一般推理如何涵蓋所有對象
現在把談論範圍固定為整數。用 表示整數集合,令 ,並把兩個條件簡記為
讀作「若 成立,則 成立」。在這個例子裡,我們要判斷的是:對談論範圍中的每一個整數,只要它符合 ,是否就一定符合 。
不再逐個試數,而是抓住每個對象共同具有的形式
任取一個 4 的倍數 。依倍數的定義,一定有某個整數 ,使得
於是
因為 是整數,所以 也是整數; 已寫成「2 乘以一個整數」,依偶數的定義, 就是偶數。
這段推理沒有指定 必須是 4、8 或 12,也沒有指定 必須是哪一個整數。它處理的是任意一個符合前提的 ,因此涵蓋全部 4 的倍數。
回查還能看出:這裡沒有偷偷加上「正整數」限制。 或 為負整數時,每一步仍然成立,所以 0 與負的 4 倍數也都包括在內。
從逐個驗算走到這個證明,真正新增的機制,是用 保留所有符合前提的可能,再用對每個整數 都成立的運算連到結論。不是字母本身具有魔力,而是推理沒有依賴某個特例才具有的性質。
想推翻一個方向,要找到哪一種反例?
若有人聲稱 ,有效的反例必須同時符合:前提 成立,結論 卻不成立。
例如拿 去反駁「4 的倍數一定是偶數」沒有用,因為 3 根本不符合「是 4 的倍數」這個前提。它沒有展示「符合前提卻得到錯誤結論」的情況。
整個全稱推論「所有 4 的倍數都是偶數」的否定,應是「存在一個整數,它是 4 的倍數,卻不是偶數」。剛才的證明已經排除了這種情況。
五、把一句話倒轉或加上「不」,不代表還是同一件事
仍沿用上一節的整數範圍與 。符號 表示條件 不成立, 表示條件 不成立。
逆命題:交換出發點與目的地
原命題是
它的逆命題是
逆命題不成立。取 :,所以前提「是偶數」成立;但 不是整數,所以結論「是 4 的倍數」不成立。
這個反例的兩個部分都已核對,因而足以推翻逆命題。原命題的證明並沒有出錯;錯的是把原命題的保證反過來使用。
否命題:前後條件都否定,但不交換位置
否命題是
它同樣被 推翻:2 不是 4 的倍數,前提成立;2 卻是偶數,結論不成立。
「否命題」不等於「原命題整句的否定」。前者是按指定方式改寫的一個新推論;後者是上一節所說的「存在一個符合前提、卻不符合結論的對象」。兩者不要因為都有一個「否」字,就當作同一件事。
逆否命題:交換位置,再分別否定
逆否命題是
這次成立。假設某個整數不是偶數;若它仍是 4 的倍數,依第四節的證明,它就必須是偶數,與已知不符。因此它不能是 4 的倍數。
為什麼原命題和逆否命題能互相保證?可以直接看它們排除的是哪種情況。
原命題不能容許「 成立、 不成立」。逆否命題也不能容許這種情況:因為這時它的前提「 不成立」成立,結論「 不成立」卻失敗。反過來,任何讓逆否命題失敗的對象,也正是讓原命題失敗的對象。
所以兩者有完全相同的反例條件:其中一個沒有反例,另一個也沒有;其中一個有反例,另一個也有。這就是
等價的理由,不需要靠真值表記憶。
名稱提醒:課程手冊把 稱為 的「對偶命題」,把 稱為「否逆命題」。它們分別就是本篇的逆否命題與否命題;看到不同名稱時,以改寫方式判斷,而不是只看名稱。
六、充分與必要:足以保證,和不可缺少,怎麼分?
「4 的倍數一定是偶數」已經證明。它可以從兩邊來讀。
從條件 看:只要知道 是 4 的倍數,就足以保證它是偶數。因此, 是 的充分條件。
從結論 看:一個數要是 4 的倍數,就不能缺少「是偶數」這項性質;如果它不是偶數,就不可能是 4 的倍數。因此, 是 的必要條件。
這是同一個方向的兩種讀法:
但「足以保證」不等於「只有這一種可能」;「不可缺少」也不等於「有它就夠了」。
偶數不一定是 4 的倍數,例如 2。因此,「是 4 的倍數」對「是偶數」而言,是充分但不必要的條件;反過來,「是偶數」對「是 4 的倍數」而言,是必要但不充分的條件。
注意:單憑 ,只能先說充分與必要的方向;要再加上「不必要」或「不充分」,還必須證明反方向不成立。這裡的 正是那份證據。
充要條件,必須把兩個方向都證明
在實數範圍內,考慮
先看第一個方向。若 ,則
利用已學過的零乘積性質,至少一個因式為零,因此
也就是 或 。
再看反方向。若 ,則 ;若 ,則 。所以不論符合這兩種情況中的哪一種,都能回到原方程式。
兩個方向都建立後,才能寫
符號 表示左右能互相推出,也就是互為充要條件。回查時,兩個候選值都已代回原式,而第一個方向又說明沒有第三種解,因此兼顧了「沒有漏掉」與「沒有多收」。
雙向證明不一定要分成兩份文字;也可以寫成每一步都能反向成立的等價推理。不過,無論採哪種寫法,兩個方向都成立的理由不能缺少。
如果把右邊擅自縮成 ,第一個方向就失敗: 符合 ,卻不符合 。此時 只是 的充分條件,不是必要條件。
但若題目一開始就限定 ,負的候選值不在範圍內, 才能與 互相推出。充要關係必須連同談論範圍一起閱讀。
也不是任意兩個條件都至少有一個方向成立。例如在整數範圍內,「是 2 的倍數」不能推出「是 3 的倍數」,反例是 2;反方向也不成立,反例是 3。6 同時符合兩個條件,並不能彌補這兩個反例。
七、「且」與「或」不是語氣差別,而是範圍差別
現在換一個情境,談論範圍是全部實數,並重新定義
這裡的 不再指前面的倍數與偶數。
把符合 的實數放進集合 ,符合 的實數放進集合 。集合在這裡只是把符合條件的數收在一起,讓範圍能被看見。
「且」:同一個數,兩個條件都要符合
且 ,表示同一個 既要不大於 1,又要不小於 。因此
它對應集合的交集 :只保留兩個範圍共同具有的數。
這個範圍記為 。方括號表示包含端點,因為 與 1 都同時符合原來兩個不等式。
完整回查不只看中間的 0: 時,兩個條件都成立; 時,兩個也都成立。若 ,它失敗在 ;若 ,它失敗在 。所以範圍內全收、範圍外全排除,沒有缺口。
「或」:至少符合一個,也容許兩個都符合
或 ,表示同一個 至少符合其中一項。它對應聯集 :凡是進入任一範圍的數,都收進來。
這裡的答案是全部實數,記為 。理由可以涵蓋每一個實數:若 ,它已符合 ;若 ,它一定也大於 ,因而符合 。沒有實數會同時落在兩個範圍之外。
回查幾個容易誤會的位置: 只符合 ,仍應收進來;2 只符合 ,也應收進來;0 同時符合兩個條件,更應收進來。數學中的「或」在這裡是至少一個成立,不是「恰好只有一個成立」。
圖 1|粗線表示符合條件的數。「且」只留下共同部分 ;「或」收下至少符合一個條件的位置,因此涵蓋全部實數。實心點表示包含端點;箭頭表示繼續延伸,視窗邊緣不是有限端點。
原條件的等號,不能在畫圖時丟掉
若題目改成「 且 」,答案就變成
左端 保留,右端 1 排除,因為 不成立。圓括號與空心點表示不包含端點;是否畫實心或空心,必須回到原條件決定,不能憑圖形印象。
也可以問:一個實數「不在 裡」表示什麼?它不是跑到兩端之外的所有位置同時去,而是符合以下至少一項:
不能寫成「 且 」,因為沒有實數能同時小於 又大於 1。
特別回查兩個端點: 與 1 原本就在 裡,所以都不屬於它的否定範圍。原條件與否定條件,對每一個實數恰好有一個成立。
圖 2|在實數範圍中, 的否定是 或 。原範圍包含 ,否定範圍就排除這兩點。上下兩列對每個實數恰有一列收下它,既不重複,也不遺漏。
八、今天的一個具體用途:讓資料篩選規則符合真正的要求
資料庫篩選不是只找幾筆「看起來對的資料」,而是把條件施加在資料列上。以 PostgreSQL 18 的官方文件為例,WHERE 的語義是依搜尋條件判定資料列是否保留;條件結果為真才保留。條件可以用 AND、OR 等方式結合。這是在說規則的意義,不是在指定資料庫內部必須採用哪一種執行順序。PostgreSQL
以下是教學情境,不是真實系統案例:有一張資料表,每列有一個已確定的有限數值 ,現在要保留所有落在 的資料。我們在數學模型中把這些數值視為實數,假設沒有缺值或其他特殊值,並以已儲存的數值作比較。
先放入 五筆資料,作為回查的例子。但規則的要求不只限於這五筆,而是要對所有符合上述假設的可能數值都正確。
正確的篩選條件可以寫成以下 WHERE 子句;它是完整查詢中的條件片段:
WHERE x >= -1 AND x <= 1
不必會寫程式,也能讀出它的數學要求:同一列的 要同時通過下界與上界。
單獨的「」是入選的必要條件,卻不充分,因為 2 通過下界但超過上界;單獨的「」也必要但不充分,因為 通過上界但低於下界。只有把兩者用「且」結合,才與「落在指定範圍」互為充要條件。
因此,這五筆教學資料中,應保留 ,排除 。
假如誤寫成
WHERE x >= -1 OR x <= 1
那麼 的資料會因為符合第一項而被保留,雖然它明明不在目標範圍。這不是軟體算錯,而是規則表達錯了。第七節的推理更指出,在本情境假設下,這個條件會把所有數值都收進來;上述五筆資料也就全部被保留。
現在檢查另一句承諾:
所有被保留的資料,其 都落在 。
它的否定是:
存在至少一筆被保留的資料,其 或 。
因此,只要真的找到一筆被錯收的 資料,就足以推翻這項承諾。但反例還須確認「被保留」這個前提:一筆存在於原表、實際上已被排除的超界資料,並不能反駁承諾。
還有一個較不顯眼的方向:光是「收進來的都合格」,並不保證「合格的都收進來」。例如一個只收 的錯誤篩選器,收進來的值都在範圍內,卻漏掉上述原表中 與 的合格資料。完整的要求必須兼顧不錯收與不漏收,也就是檢查兩個方向。
甚至當結果一筆也沒有時,「所有被保留的資料都合格」在這份空結果中仍成立,因為沒有被保留卻越界的資料。但對上述原表而言, 都應被保留,全部丟棄仍然是錯誤篩選。沒有錯收,不等於沒有漏收。
在這個模型中,正確的 AND 規則之所以兩者兼顧,是因為任何被它選入的值都同時滿足上下界,而任何同時滿足上下界的值也都會通過規則。這是一般理由,不只是試過幾筆。
回查時,再用 確認應保留的位置,用 確認應排除的位置,並特別檢查等號。這些測試能幫忙發現實作錯誤,但除非已完整涵蓋一個明確的有限範圍,不能單靠少量測試就宣稱所有可能情況都已證明。即使已查完某一次資料表中的所有資料,也不等於已證明規則對未來所有可能輸入都正確。
實際資料系統仍有額外限制。PostgreSQL 的條件可能涉及 NULL,也就是缺少確定值的情況;WHERE 不會把結果為 NULL 的列當作真而保留。本篇「原條件與其否定恰有一個成立」的數學討論,因此不能不加檢查就直接套用到包含缺值的資料情境。這裡只指出限制,不延伸教授資料庫的其他邏輯規則。PostgreSQL
此外,資料型別的儲存範圍與精度有限,也可能有 NaN、正負無窮等特殊值;本例已將它們排除。儲存時若發生近似或捨入,篩選所判斷的是儲存後的值。篩選規則對儲存值正確,不代表測量或轉換前的真實量也必定符合相同範圍。PostgreSQL
九、證明讓一句話不只可以相信,也可以檢查
本篇從「4 的倍數都是偶數」出發,最後走到資料篩選,表面上題材不同,真正處理的是同一件事:把一句承諾中的對象、條件、方向與例外說清楚。
反例告訴我們,一句涵蓋所有對象的話究竟在哪個對象上失敗。否定讓我們準確描述這種失敗,而不是另說一句聽起來相反的話。充分與必要區分「有這個就夠」和「沒有這個不行」;充要則要求兩個方向都有證據。「且/或」把多個要求組成可以逐點核對的範圍。
當你再看到「只要」「必須」「所有」「至少一個」時,能多問的不是一串術語,而是:談哪些對象?承諾哪個方向?理由涵蓋全部了嗎?有沒有一個符合前提、卻使結論失敗的對象?
證明不是替結論加上肯定語氣,而是交出一條能讓別人逐步檢查、知道保證到哪裡為止的理由。