自然數質數:證明 97 是質數、91 是合數,並排除 0 與 1

本頁導覽
  1. 目標與範圍
  2. 已知條件與符號
  3. 規則與來源
  4. 逐步主鏈
  5. 局部子步與引理
  6. 逐步反向審查
  7. 錯誤控制與反例
  8. 結論與限制
  9. 驗證及來源綁定

← 導讀目錄 · 原始 MKO

derivation-mko-prime-number-01 · production-20261019-adopted-96

目標與範圍

依 MKO 定義(p 為質數 ⇔ 2≤p 且 p 的每個自然數因數 d 都滿足 d=1 或 d=p):(1) 說明 0 與 1 不是質數;(2) 證明 2 是質數;(3) 以見證 7 證明 91 是合數,並說明只測 2、3、5 會誤判;(4) 證明「若 n=dk 且 d、k≥2,則 min(d,k)²≤n」,據此只需檢查 2 到 9,證明 97 是質數;(5) 證明 2 是唯一的偶質數。

只在包含 0 的自然數中工作,使用自然數整除與精確的整數比較(MKO 假設 a1、a2),不用浮點平方根。平方根界由本稿證明的引理給出。不處理質因數分解的唯一性、質數無窮多或大整數的質數證書;不改動 canonical MKO 或英文 edition。

已知條件與符號

  • order_basics
  • division_algorithm
  • mul_zero
  • numeric_evaluation
  • G1 — p、d 是包含 0 的自然數;整除依 MKO 自然數整除,見證必須是自然數(MKO 假設 a1)。
  • G2 — 因數判定用自然數整除與精確整數比較,不用近似平方根或浮點除法(MKO 假設 a2)。
  • G3 — 候選:0、1、2、91、97,以及大於 2 的偶數。
  • p — 候選的自然數
  • d\mid p — d 整除 p
  • m=\min(d,k) — 因數對中較小者
  • n\bmod m — n 除以 m 的餘數

規則與來源

  • order_basics · prerequisite — 實數的序:任兩數恰有 u<v、u=v、u>v 之一;u<v 且 v<w 推出 u<w;u<v 推出 u+w<v+w;u<v 且 w>0 推出 uw<vw;u<v 且 w<0 推出 uw>vw。
  • division_algorithm · prerequisite — 帶餘除法:對整數 a 與正整數 b,存在唯一的整數 q、r 使 a=bq+r 且 0≤r<b。
  • mul_zero · prerequisite — 乘以零:u·0=0。理由:u·0=u·(0+0)=u·0+u·0,兩邊同減 u·0 得 0=u·0。
  • numeric_evaluation · prerequisite — 明確整數或有理數算式的精確求值;可以獨立重算。
  • def_unfold · prerequisite — 展開定義:把一個已定義的詞換成它的定義內容(或反向收回),命題的真假不變。
  • exists_elim · prerequisite — ∃消去:由 ∃x∈D, P(x),可取一個新名字 a 表示某個滿足 P(a) 的元素;只要最後結論不含 a,就可用 a 推理。
  • contradiction · prerequisite — 反證法:若假設 ¬P 推出矛盾(某命題與其否定同時成立),則 P 成立。
  • mul_one · prerequisite — 乘法單位元:1·u=u。
  • case_analysis · prerequisite — 分情況論證:若 P∨Q 成立,且 P⇒R、Q⇒R 都已證,則 R 成立。所有情況必須涵蓋全部可能。
  • exists_intro · prerequisite — ∃引入:若找到 a∈D 使 P(a) 成立,則 ∃x∈D, P(x)。
  • mul_comm · prerequisite — 乘法交換律:uv=vu(在交換的數系中,例如 ℤ、ℚ、ℝ、ℂ)。
  • quantifier_negation · prerequisite — 量詞否定:¬(∀x, P(x)) 等價於 ∃x, ¬P(x);¬(∃x, P(x)) 等價於 ∀x, ¬P(x)。
  • forall_intro · prerequisite — ∀引入(全稱推廣):若某命題對一個「任意的」元素 x 證成,而證明沒有對 x 加任何額外假設,則它對論域中所有 x 成立。
  • mko_prime_def · cited — 自然數 p 為質數,當且僅當 2≤p,且每個自然數 d 若 d∣p,則 d=1 或 d=p。0 與 1 都不是質數。 · mko-prime-number
  • mko_dvd_def · cited — 對自然數 a、b,a∣b 當且僅當存在自然數 k 使 b=a·k。 · mko-natural-divisibility
  • rem_test · prerequisite — 對自然數 n 與正自然數 m:m∣n ⇔ n 除以 m 的餘數為 0(由帶餘除法的唯一性得到)。
  • L_div_bound · lemma — 若 d∣n、n>0,且 n=dk,則 d≥1、k≥1 且 d≤n。
  • L_small_factor · lemma — 若 n=d·k,且 d≥2、k≥2,則 m=min(d,k) 滿足 2≤m、m∣n 且 m²≤n。

逐步主鏈

S01 · definition

操作前

p\ \text{prime}

操作後

2\le p\ \land\ \forall d\in\mathbb{N}\,(d\mid p\Rightarrow d=1\lor d=p)

條件:無

規則:mko_prime_def · 依賴:G1, mko_prime_def

葉節點依據:mko_prime_def + def_unfold

依 MKO 的定義,質數要同時滿足兩個條件:p≥2,以及 p 沒有 1 與 p 以外的自然數因數。要否定只需其中一個條件失敗;要肯定則必須排除所有可能的非平凡因數。

S02 · implies

操作前

d\mid n,\ n>0

操作後

1\le d\le n

條件:n>0

規則:L_div_bound · 依賴:mko_dvd_def, L_div_bound

葉節點依據:mul_zero + order_basics + exists_elim

正數的因數夾在 1 與它自己之間:依引理 L_div_bound(S02.1、S02.2 證明)。這讓「列出所有因數」成為有限的工作。

S03 · implies

操作前

p=0,\ p=1

操作後

0,\ 1\ \text{not prime}

條件:無

規則:mko_prime_def · 依賴:S01, S02, G3

葉節點依據:mko_prime_def + order_basics + mul_zero

2≤0 與 2≤1 都不成立,所以 0、1 都不是質數。值得注意:1 的因數依 S02 只有 1(1≤d≤1),所以 1 其實通過「因數只有 1 與自身」的條件,它被排除完全是因為 2≤p。0 則兩個條件都失敗:0=2·0,所以 2∣0 而 2∉{1,0}。

S04 · implies

操作前

p=2

操作後

2\ \text{prime}

條件:無

規則:mko_prime_def · 依賴:S01, S02

葉節點依據:mko_prime_def + case_analysis + order_basics

2≥2。若 d∣2,依 S02 有 1≤d≤2,而 1 與 2 之間的自然數只有 1 與 2,所以 d=1 或 d=2。兩個條件都成立,2 是質數(N22 為獨立核對)。

S05 · implies

操作前

91=7\cdot 13

操作後

7\mid 91,\ 7\notin\{1,91\};\ 91\ \text{not prime}

條件:無

規則:mko_prime_def · 依賴:S01, mko_dvd_def, G3

葉節點依據:mko_prime_def + exists_intro + numeric_evaluation

7·13=91(N1),所以 7∣91,見證是 13。7≠1、7≠91,因數條件失敗,91 不是質數;7 是合數見證(MKO 段落 2)。

S06 · implies

操作前

91\bmod 2=91\bmod 3=91\bmod 5=1

操作後

2,3,5\nmid 91,\ \text{yet}\ 91\ \text{is composite}

條件:無

規則:rem_test · 依賴:S05, rem_test

葉節點依據:rem_test + numeric_evaluation

91 除以 2、3、5 的餘數都是 1(N2 到 N4),依 rem_test 它們都不整除 91。若只測這三個就宣稱 91 是質數,結論錯誤,因為 S05 已找到因數 7。在不完整的候選表中找不到因數,不能當作質數證明(MKO 段落 2)。

S07 · implies

操作前

d\mid 97,\ d\neq 1,\ d\neq 97

操作後

97=dk,\ 2\le d\le 96,\ k\ge 2

條件:無

規則:L_div_bound · 依賴:S01, S02, G3

葉節點依據:exists_elim + order_basics + case_analysis

97≥2 成立。為證因數條件,用反證:假設有 d∣97 且 d≠1、d≠97,取見證 97=dk。由 S02,1≤d≤97,再排除 1 與 97 得 2≤d≤96。又 k≥1(S02.1);若 k=1 則 d=97,已排除;所以 k≥2。

S08 · implies

操作前

97=dk,\ d\ge 2,\ k\ge 2

操作後

m=\min(d,k):\ 2\le m,\ m\mid 97,\ m^2\le 97

條件:d\ge 2; k\ge 2

規則:L_small_factor · 依賴:S07, L_small_factor

葉節點依據:order_basics + mul_comm + exists_intro

依引理 L_small_factor(S08.1、S08.2 證明),因數對中較小的 m 也整除 97,而且 m²≤97。這就是「只需檢查到平方根」的理由,而且用的是精確整數比較。

S09 · implies

操作前

m^2\le 97

操作後

2\le m\le 9

條件:無

規則:order_basics · 依賴:S08, G2

葉節點依據:order_basics + numeric_evaluation + contradiction

若 m≥10,則 m²≥100>97(N5),與 m²≤97 矛盾;所以 m≤9。而 9²=81≤97(N6),所以 9 是滿足 m²≤97 的最大整數。這裡用的是精確的整數平方比較,不是浮點 √97。

S10 · case_split

操作前

m\in\{2,3,4,5,6,7,8,9\}

操作後

97\bmod m\in\{1,1,1,2,1,6,1,7\}\neq 0,\ \text{so}\ m\nmid 97

條件:無

規則:rem_test · 依賴:S09, rem_test

葉節點依據:rem_test + case_analysis + numeric_evaluation

逐一計算 97 除以 m 的餘數:m=2 餘 1、3 餘 1、4 餘 1、5 餘 2、6 餘 1、7 餘 6、8 餘 1、9 餘 7(N7 到 N14)。沒有一個是 0,依 rem_test,2 到 9 都不整除 97。這與 S08、S09 的「存在 2≤m≤9 且 m∣97」矛盾。

S11 · implies

操作前

\text{assumption of S07 leads to a contradiction}

操作後

\forall d\,(d\mid 97\Rightarrow d=1\lor d=97);\ 97\ \text{prime}

條件:無

規則:contradiction · 依賴:S07, S10

葉節點依據:contradiction + quantifier_negation + mko_prime_def

S07 的假設「有 d∣97 且 d∉{1,97}」推出 S10 的矛盾,所以假設不成立:97 的每個因數都是 1 或 97。加上 97≥2,依定義 97 是質數。N15 以內建質數判定獨立核對。

S12 · implies

操作前

91,\ 9^2\le 91<10^2

操作後

\text{the complete search}\ 2\le m\le 9\ \text{finds}\ 7

條件:無

規則:L_small_factor · 依賴:S05, S08, G2

葉節點依據:order_basics + rem_test + numeric_evaluation

同一個界套用到 91:9²=81≤91<100=10²(N18、N19),所以合數 91 必有 2 到 9 之間的因數;完整搜尋在 m=7 找到(91 除以 7 餘 0,N17),與 S05 一致。對照 S06:只測 2、3、5 是不完整的搜尋,才會漏掉 7。

S13 · implies

操作前

p=2j,\ p\ge 2,\ p\neq 2

操作後

2\mid p,\ 2\notin\{1,p\};\ p\ \text{not prime}

條件:p\neq 2

規則:mko_prime_def · 依賴:S01, S04, mko_dvd_def

葉節點依據:mko_prime_def + exists_intro + forall_intro

偶數 p=2j 有因數 2(見證 j)。若 p≠2,則 2≠1 且 2≠p,因數條件失敗,p 不是質數。配合 S04,2 是唯一的偶質數(N21 對 4 到 120 的偶數做有限核對,只支持這些點)。

局部子步與引理

S02.1 · implies

操作前

n=dk,\ n>0

操作後

d\ge 1,\ k\ge 1

條件:n>0

規則:mul_zero · 依賴:mko_dvd_def, mul_zero

葉節點依據:mul_zero + contradiction

若 d=0 或 k=0,則 n=dk=0,與 n>0 矛盾。所以 d≠0、k≠0;自然數非零即至少為 1。

S02.2 · implies

操作前

k\ge 1,\ d\ge 0

操作後

n=dk\ge d\cdot 1=d

條件:無

規則:order_basics · 依賴:S02.1, order_basics

葉節點依據:order_basics + mul_one

k≥1 且 d≥0,所以 dk≥d·1=d,即 d≤n。S02.1 與 S02.2 合起來證得引理 L_div_bound。

S08.1 · implies

操作前

n=dk

操作後

d\mid n,\ k\mid n,\ \text{so}\ m\mid n

條件:無

規則:exists_intro · 依賴:mko_dvd_def, mul_comm

葉節點依據:exists_intro + mul_comm + case_analysis

n=d·k 給 d∣n(見證 k);由交換律 n=k·d 給 k∣n(見證 d)。m 是 d 或 k 其中之一,所以 m∣n;又 d、k≥2,故 m≥2。

S08.2 · implies

操作前

m\le d,\ m\le k,\ m\ge 0

操作後

m^2=m\cdot m\le d\cdot m\le d\cdot k=n

條件:無

規則:order_basics · 依賴:order_basics

葉節點依據:order_basics + mul_comm

m≤d 兩邊乘非負的 m 得 m·m≤d·m;m≤k 兩邊乘非負的 d 得 d·m≤d·k。串接得 m²≤n。S08.1 與 S08.2 合起來證得引理 L_small_factor。

逐步反向審查

  • S13 · premise_audit · S01, S04, mko_dvd_def — 一般論證對每個偶數 p≠2 成立;有限核對 N21 不是證明的一部分。
  • S12 · premise_audit · S05, L_small_factor — 引理保證合數在界內有因數;這裡只是說明完整搜尋與部分搜尋的差別。
  • S11 · sufficient_goal_reduction · S07, S10, contradiction, mko_prime_def — 目標 G:97 是質數。足夠條件 H:97≥2 且沒有非平凡因數;H⇒G 由定義。H 由反證法證成,沒有把 G 當作前提;N15 只是交叉核對,不是證明的一部分。
  • S10 · premise_audit · S09, rem_test, case_analysis — 八種情況窮盡 2≤m≤9 的所有 m;這是完整檢查,不是抽樣。
  • S09 · premise_audit · S08, order_basics, G2 — 上界必須涵蓋所有 m²≤97 的 m;取 9 不多也不少。
  • S08.2 · premise_audit · order_basics — 乘以非負數保持 ≤;沒有使用引理本身。
  • S08.1 · premise_audit · mko_dvd_def, mul_comm, exists_intro — 只用交換律與見證;沒有使用引理本身。
  • S08 · premise_audit · S07, L_small_factor — 引理需要 d、k 都至少為 2,由 S07 提供。
  • S07 · premise_audit · S02, exists_elim — 這是反證法的假設與它的直接推論;結論要到 S11 才釋放假設。
  • S06 · premise_audit · S05, rem_test — 這一步只顯示部分檢查的不足,不改變 S05 的結論。
  • S05 · premise_audit · S01, mko_dvd_def, numeric_evaluation — 否定只需一個非平凡因數。
  • S04 · premise_audit · S01, S02, case_analysis — 因數範圍 1 到 2 已窮盡;沒有遺漏的候選。
  • S03 · premise_audit · S01, S02, mul_zero — 否定只需一個條件失敗;這裡同時說明哪個條件對 1 是決定性的。
  • S02.2 · premise_audit · order_basics, mul_one — 乘以非負數保持 ≤;沒有使用引理本身。
  • S02.1 · premise_audit · mul_zero, contradiction — 只用乘以零;沒有使用引理本身。
  • S02 · premise_audit · L_div_bound — 需要 n>0;n=0 時每個 d 都整除 0,沒有上界(S03)。
  • S01 · premise_audit · G1, mko_prime_def — 此步只展開定義,不推出新事實。

錯誤控制與反例

1 不是質數

MKO 指出的誤解:把 1 列為質數。1 的因數確實只有 1,但定義另要求 2≤p,所以 1 不是質數(S03)。0 則連因數條件也失敗,因為 2∣0。

只測少數小因數不夠

MKO 指出的另一個誤解:只測少數小因數就宣稱是質數。91 不被 2、3、5 整除,卻等於 7·13(S06)。肯定質數必須排除所有可能的非平凡因數;引理 L_small_factor 把範圍縮到 m²≤n,但範圍內的每個 m 都要檢查(S10、S12)。

平方根界要用精確整數比較

MKO 假設 a2 不允許用近似平方根。本稿以 m²≤97 與 10²=100>97 精確決定上界 9;若用四捨五入的浮點 √n 決定上界,在 n 是完全平方數附近可能少檢查一個候選。

  • 1 是質數,因為它的因數只有 1 與它自己 → reject — 定義要求 2≤p,1 不滿足。
  • 91 不被 2、3、5 整除,所以 91 是質數 → reject — 91=7·13;部分檢查不是證明。
  • 要證 97 是質數,必須試除 2 到 96 的每一個數 → reject — 引理 L_small_factor 證明若有非平凡因數,必有一個 m 滿足 2≤m≤9,所以檢查 2 到 9 已足夠。
  • 0 是質數,因為 0 沒有因數 → reject — 每個自然數都整除 0(例如 0=2·0),而且 2≤0 不成立。
  • 所有質數都是奇數 → reject — 2 是質數(S04)且是偶數。

結論與限制

0 與 1 不是質數(2≤p 失敗;1 雖只有因數 1,仍被排除);2 是質數,也是唯一的偶質數;91=7·13 是合數,只測 2、3、5 會漏掉 7;由 min(d,k)²≤n 只需檢查 2 到 9,而 97 除以 2 到 9 的餘數都不為 0,所以 97 是質數。

  • rem_test 作為前置規則使用,其證明見自然數整除的教學稿。
  • 只試除 2 到 9 中的質數(2、3、5、7)其實也足夠,但需要「最小的非平凡因數必為質數」這個額外事實,本稿沒有使用也沒有證明。
  • N15、N16、N22 使用核對器內建的質數判定,只作獨立交叉核對;N21 是有限範圍核對。

驗證及來源綁定

22 個本稿宣告算術檢查;只支持所列算式。

  • source commit: b28a5edbd46279b1db2a3f3f48bb3f447e18899f
  • adopted source SHA-256: 0bde7a02304dff72bf0e31bb574cf7cb0d9d60df1744fb45c6915cc88cba7bb7
  • original source SHA-256: 0bde7a02304dff72bf0e31bb574cf7cb0d9d60df1744fb45c6915cc88cba7bb7
  • Lean: NOT_RUN · independent AI: NOT_MEASURED

同源完整 JSON(含公式、AST、反控制與修訂記錄)