自然數模同餘:餘數定義、見證形式、運算保持與取消的限制

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

← 導讀目錄 · 原始 MKO

derivation-mko-modular-congruence-01 · production-20261019-adopted-96

目標與範圍

依 MKO 定義(n>0,a≡b (mod n) ⇔ a mod n=b mod n):(1) 判定 100≡23 (mod 7);(2) 證明它等價於見證形式「存在自然數 k、l 使 a+nk=b+nl」,並給出 100 與 23 的見證;(3) 說明同餘是等價關係;(4) 證明加法與乘法保持同餘,並由 15≡1 (mod 7) 得 115≡24、1500≡23 (mod 7);(5) 以 2·3≡2·0 (mod 6) 說明不能無條件取消公因子;(6) 說明不同模數不能串接,並說明模數 0 被排除。

只處理自然數 a、b 與正模數 n(MKO 假設 a1、a2);餘數由帶餘除法定義。證明兩種定義等價、同餘是等價關係、加法與乘法保持同餘。取消律在 gcd(c,n)=1 時成立這一正面結果不在本稿證明。不處理負整數或模數 0;不改動 canonical MKO 或英文 edition。

已知條件與符號

  • division_algorithm
  • distributive
  • eq_refl_symm_trans
  • numeric_evaluation
  • G1 — a、b 是自然數,模數 n 是正自然數(MKO 假設 a1);本條目排除 n=0(MKO 假設 a2)。
  • G2 — a mod n 是帶餘除法的餘數:唯一的 r 使 a=nq+r 且 0≤r<n;a 為自然數時商 q 也是自然數。
  • G3 — 例子:模 7 的 100、23、15、1;模 6 的 2·3 與 2·0;模 7 與模 3 的 100、23、5。
  • a\equiv b\pmod n — a 與 b 模 n 同餘
  • a\bmod n — a 除以 n 的餘數,0≤a mod n<n
  • k,\ l — 見證形式中的自然數
  • n — 正模數

規則與來源

  • division_algorithm · prerequisite — 帶餘除法:對整數 a 與正整數 b,存在唯一的整數 q、r 使 a=bq+r 且 0≤r<b。
  • distributive · prerequisite — 分配律:u(v+w)=uv+uw;配合乘法交換律也有 (v+w)u=vu+wu。
  • eq_refl_symm_trans · prerequisite — 等號的性質:u=u;若 u=v 則 v=u;若 u=v 且 v=w 則 u=w。
  • numeric_evaluation · prerequisite — 明確整數或有理數算式的精確求值;可以獨立重算。
  • def_unfold · prerequisite — 展開定義:把一個已定義的詞換成它的定義內容(或反向收回),命題的真假不變。
  • add_comm · prerequisite — 加法交換律:u+v=v+u。
  • add_assoc · prerequisite — 加法結合律:(u+v)+w=u+(v+w)。
  • exists_intro · prerequisite — ∃引入:若找到 a∈D 使 P(a) 成立,則 ∃x∈D, P(x)。
  • eq_congruence · prerequisite — 等式同用:若 u=v,對兩邊做同一個有定義的運算 f,得 f(u)=f(v)。只對一邊做運算不屬於此規則。
  • mul_assoc · prerequisite — 乘法結合律:(uv)w=u(vw)。
  • mul_comm · prerequisite — 乘法交換律:uv=vu(在交換的數系中,例如 ℤ、ℚ、ℝ、ℂ)。
  • forall_elim · prerequisite — ∀消去(代入特例):若 ∀x∈D, P(x) 成立且 a∈D,則 P(a) 成立。
  • mko_cong_def · cited — 對自然數 a、b 與正自然數 n,a≡b (mod n) 當且僅當 a mod n=b mod n;等價地,存在自然數 k、l 使 a+n·k=b+n·l。 · mko-modular-congruence
  • L_shift · lemma — 對 n>0 與自然數 x、m:(x+n·m) mod n=x mod n。
  • L_witness · lemma — 對 n>0 與自然數 a、b:a mod n=b mod n ⇔ 存在自然數 k、l 使 a+nk=b+nl。
  • L_add_mul · lemma — 若 a≡b (mod n) 且 c≡d (mod n),則 a+c≡b+d (mod n) 且 ac≡bd (mod n)。

逐步主鏈

S01 · definition

操作前

a\equiv b\pmod n

操作後

a\bmod n=b\bmod n\quad(n>0)

條件:n>0

規則:mko_cong_def · 依賴:G1, G2, mko_cong_def

葉節點依據:mko_cong_def + def_unfold

依 MKO 的定義,同餘是在固定的同一個正模數下比較兩個餘數。它不是數值相等:兩數可以不同而同餘。

S02 · implies

操作前

100

操作後

100=7\cdot 14+2,\ 0\le 2<7,\ 100\bmod 7=2

條件:7>0

規則:division_algorithm · 依賴:G2, G3, division_algorithm

葉節點依據:division_algorithm + numeric_evaluation

7·14=98,100−98=2,且 0≤2<7(N1、N2)。依帶餘除法的唯一性,100 mod 7=2。

S03 · implies

操作前

23

操作後

23=7\cdot 3+2,\ 23\bmod 7=2

條件:7>0

規則:division_algorithm · 依賴:G2, G3, division_algorithm

葉節點依據:division_algorithm + numeric_evaluation

7·3=21,23−21=2,0≤2<7(N3、N4),所以 23 mod 7=2。

S04 · equivalent

操作前

100\bmod 7=2=23\bmod 7

操作後

100\equiv 23\pmod 7

條件:無

規則:mko_cong_def · 依賴:S01, S02, S03

葉節點依據:mko_cong_def + eq_refl_symm_trans

兩個餘數都是 2,依定義 100≡23 (mod 7),雖然 100≠23。

S05 · equivalent

操作前

(x+nm)\bmod n

操作後

x\bmod n

條件:n>0

規則:L_shift · 依賴:G2, L_shift

葉節點依據:division_algorithm + distributive

加上 n 的自然數倍不改變餘數:依引理 L_shift(S05.1、S05.2 證明)。後面的等價與運算保持都靠它。

S06 · equivalent

操作前

a\bmod n=b\bmod n

操作後

\exists k,l\in\mathbb{N}:\ a+nk=b+nl

條件:n>0

規則:L_witness · 依賴:S01, L_witness

葉節點依據:division_algorithm + distributive + eq_refl_symm_trans

依引理 L_witness(S06.1、S06.2 證明),餘數定義與 MKO 的見證形式等價。見證形式的好處是全在自然數中,不必做減法。

S07 · implies

操作前

100=7\cdot 14+2,\ 23=7\cdot 3+2

操作後

100+7\cdot 3=23+7\cdot 14=121;\quad 100+7\cdot 0=23+7\cdot 11

條件:無

規則:exists_intro · 依賴:S02, S03, S06

葉節點依據:exists_intro + numeric_evaluation

依 S06.1 的構造,k=3、l=14:100+21=121=23+98(N5)。另一組見證 k=0、l=11:100=23+77(N6)。見證不唯一。

S08 · implies

操作前

\equiv\pmod n\ \text{for one fixed}\ n

操作後

\text{reflexive, symmetric, transitive}

條件:n\ \text{fixed}

規則:eq_refl_symm_trans · 依賴:S01, eq_refl_symm_trans

葉節點依據:eq_refl_symm_trans + def_unfold

在固定的 n 下,a≡b 就是 a mod n=b mod n,是餘數之間的等式。等號的自反、對稱、遞移直接給出 a≡a;a≡b ⇒ b≡a;a≡b 且 b≡c ⇒ a≡c。所以同餘在 ℕ 上是等價關係(MKO 段落 0)。

S09 · implies

操作前

15=7\cdot 2+1,\ 1=7\cdot 0+1

操作後

15\equiv 1\pmod 7

條件:無

規則:mko_cong_def · 依賴:G3, division_algorithm

葉節點依據:division_algorithm + numeric_evaluation

15 mod 7=1(N7),1 mod 7=1,所以 15≡1 (mod 7)。

S10 · implies

操作前

a\equiv b,\ c\equiv d\pmod n

操作後

a+c\equiv b+d,\ ac\equiv bd\pmod n

條件:n>0

規則:L_add_mul · 依賴:S05, L_add_mul

葉節點依據:distributive + division_algorithm + eq_refl_symm_trans

依引理 L_add_mul(S10.1、S10.2 證明),加法與乘法保持同一模數下的同餘。

S11 · implies

操作前

100\equiv 23,\ 15\equiv 1\pmod 7

操作後

115\equiv 24,\quad 1500\equiv 23\pmod 7

條件:無

規則:forall_elim · 依賴:S04, S09, S10

葉節點依據:forall_elim + numeric_evaluation

套用 S10:100+15=115≡23+1=24,100·15=1500≡23·1=23 (mod 7)。逐項重算核對(MKO 段落 1):115=7·16+3、24=7·3+3,餘數都是 3;1500=7·214+2、23 mod 7=2,餘數都是 2(N8 到 N11)。

S12 · implies

操作前

2\cdot 3\equiv 2\cdot 0\pmod 6

操作後

3\not\equiv 0\pmod 6

條件:無

規則:numeric_evaluation · 依賴:S01, G3

葉節點依據:numeric_evaluation + mko_cong_def

2·3=6,6 mod 6=0;2·0=0,0 mod 6=0,所以 2·3≡2·0 (mod 6)。但 3 mod 6=3≠0=0 mod 6,所以 3≢0 (mod 6)(N12、N13)。因此從 c·a≡c·b 直接取消 c 不合法;這裡 gcd(2,6)=2≠1(N14),正是 MKO 段落 2 所說要考慮 c 與 n 的最大公因數。

S13 · implies

操作前

100\equiv 23\pmod 7,\ 23\equiv 5\pmod 3

操作後

100\not\equiv 5\pmod 7,\ 100\not\equiv 5\pmod 3

條件:無

規則:numeric_evaluation · 依賴:S04, S08, G3

葉節點依據:numeric_evaluation + mko_cong_def

23=3·7+2、5=3·1+2,所以 23≡5 (mod 3)(N15)。若誤把兩個不同模數的同餘串接,會得到 100≡5。但 100 mod 7=2≠5=5 mod 7(N17),100 mod 3=1≠2=5 mod 3(N16),兩個模數下都不成立。S08 的遞移性只對同一個 n 成立。

局部子步與引理

S05.1 · implies

操作前

x=nq+r,\ 0\le r<n

操作後

x+nm=n(q+m)+r

條件:無

規則:distributive · 依賴:G2, distributive

葉節點依據:distributive + add_comm + add_assoc

寫 x=nq+r(G2)。則 x+nm=nq+nm+r=n(q+m)+r,q+m 是自然數。

S05.2 · implies

操作前

x+nm=n(q+m)+r,\ 0\le r<n

操作後

(x+nm)\bmod n=r=x\bmod n

條件:n>0

規則:division_algorithm · 依賴:S05.1, division_algorithm

葉節點依據:division_algorithm

x+nm 已寫成 n·(自然數)+r 且 0≤r<n,依帶餘除法的唯一性,它的餘數就是 r,也就是 x mod n。S05.1 與 S05.2 合起來證得引理 L_shift。

S06.1 · implies

操作前

a=nq+r,\ b=nq'+r

操作後

a+nq'=b+nq

條件:無

規則:distributive · 依賴:G2, distributive

葉節點依據:distributive + add_comm + add_assoc + exists_intro

(⇒ 方向)設共同餘數為 r:a=nq+r、b=nq′+r。則 a+nq′=nq+nq′+r=b+nq(N20 為恆等式核對)。取 k=q′、l=q,都是自然數。

S06.2 · implies

操作前

a+nk=b+nl

操作後

a\bmod n=(a+nk)\bmod n=(b+nl)\bmod n=b\bmod n

條件:n>0

規則:L_shift · 依賴:S05

葉節點依據:eq_congruence + eq_refl_symm_trans + division_algorithm

(⇐ 方向)依 L_shift,a mod n=(a+nk) mod n;兩個相等的數有相同餘數;再依 L_shift,(b+nl) mod n=b mod n。S06.1 與 S06.2 合起來證得引理 L_witness。

S10.1 · implies

操作前

a=nq_1+r,\ b=nq_2+r,\ c=nq_3+s,\ d=nq_4+s

操作後

(a+c)\bmod n=(r+s)\bmod n=(b+d)\bmod n

條件:無

規則:L_shift · 依賴:S05, G2, distributive

葉節點依據:distributive + add_comm + add_assoc + division_algorithm

設 a、b 的共同餘數為 r,c、d 的共同餘數為 s。則 a+c=n(q₁+q₃)+(r+s)、b+d=n(q₂+q₄)+(r+s)(N19)。依 L_shift,兩者的餘數都等於 (r+s) mod n,所以 a+c≡b+d。注意 r+s 可能 ≥n,所以要再取一次餘數,而不是直接說餘數是 r+s。

S10.2 · implies

操作前

ac=(nq_1+r)(nq_3+s)

操作後

ac=n(nq_1q_3+q_1s+rq_3)+rs,\ (ac)\bmod n=(rs)\bmod n=(bd)\bmod n

條件:無

規則:L_shift · 依賴:S05, G2, distributive

葉節點依據:distributive + mul_assoc + mul_comm + division_algorithm

展開:(nq₁+r)(nq₃+s)=n(nq₁q₃+q₁s+rq₃)+rs(N18)。同理 bd=n(nq₂q₄+q₂s+rq₄)+rs。依 L_shift,兩者的餘數都等於 (rs) mod n,所以 ac≡bd。S10.1 與 S10.2 合起來證得引理 L_add_mul。

逐步反向審查

  • S13 · premise_audit · S08, numeric_evaluation — 具體反例;說明遞移性的前提「同一模數」不能省。
  • S12 · premise_audit · S01, numeric_evaluation — 一個反例足以否定「無條件取消」;本稿不證明 gcd(c,n)=1 時取消合法。
  • S11 · premise_audit · S10, forall_elim, numeric_evaluation — 這是一般結果的實例;直接重算只是核對,不取代 S10 的證明。
  • S10.2 · premise_audit · S05, distributive — 只用分配律與 L_shift;沒有使用 L_add_mul 本身。
  • S10.1 · premise_audit · S05, distributive — 只用 L_shift 與分配律;沒有使用 L_add_mul 本身。
  • S10 · premise_audit · L_add_mul — 不宣稱反向:由 ac≡bd 不能推出 a≡b 或 c≡d(S12)。
  • S09 · premise_audit · division_algorithm, mko_cong_def — 兩個餘數直接計算。
  • S08 · premise_audit · S01, eq_refl_symm_trans — 遞移性要求兩個同餘式用同一個 n;不同模數的餘數不是同一種量(S13)。
  • S07 · premise_audit · S06, exists_intro, numeric_evaluation — 存在性只需一組見證;這裡給兩組以示不唯一。
  • S06.2 · premise_audit · S05, eq_congruence — 用到的是已證的 L_shift,不是 L_witness 本身。
  • S06.1 · premise_audit · distributive, add_comm, exists_intro — 只用加法交換、結合與見證引入;沒有使用引理本身。
  • S06 · inverse_equivalence · L_witness — 兩個方向分別在 S06.1、S06.2 證明。
  • S05.2 · premise_audit · division_algorithm — 關鍵是唯一性與 0≤r<n;沒有使用引理本身。
  • S05.1 · premise_audit · distributive, add_comm, add_assoc — 只用分配律與加法律(N21 為格點恆等式核對);沒有使用引理本身。
  • S05 · inverse_equivalence · L_shift — 兩邊是同一個數,等式雙向成立。
  • S04 · inverse_equivalence · mko_cong_def — 定義本身是雙向的:同餘恰好當餘數相等。
  • S03 · premise_audit · division_algorithm, numeric_evaluation — 同 S02。
  • S02 · premise_audit · division_algorithm, numeric_evaluation — 餘數必須落在 0 到 6;這保證它是唯一的。
  • S01 · premise_audit · G1, G2, mko_cong_def — 此步只展開定義;n>0 是餘數有定義所必需。

錯誤控制與反例

不能混用模數

MKO 指出的誤解之一:混用不同模數。100≡23 (mod 7) 與 23≡5 (mod 3) 不能串成 100≡5;事實上在兩個模數下都不成立(S13)。

不得無條件取消公因子

MKO 指出的另一個誤解:在同餘式兩側無條件取消共同因子。2·3≡2·0 (mod 6) 但 3≢0 (mod 6)(S12)。取消需要考慮 c 與 n 的最大公因數;本稿不證明正面的條件。

模數 0 被排除

MKO 指出的第三個誤解:允許零模數。帶餘除法需要正除數,a mod 0 在本條目中沒有定義;各程式語言對 x mod 0 的處理不一(有的報錯),本條目刻意不採用這些慣例(MKO 假設 a2)。

同餘不是數值相等

100≡23 (mod 7) 而 100≠23。同餘比較的是固定模數下的餘數(MKO 段落 0)。

  • 由 2·3≡2·0 (mod 6) 兩邊消去 2,得 3≡0 (mod 6) → reject — 3 mod 6=3≠0;gcd(2,6)=2≠1。
  • 100≡23 (mod 7) 且 23≡5 (mod 3),所以 100≡5 (mod 7) → reject — 100 mod 7=2,5 mod 7=5;遞移性只對同一模數成立。
  • 依某些程式語言的慣例 7 mod 0=7,所以可在本條目中判定 7≡7 (mod 0) → reject — 本條目要求 n 為正自然數,n=0 被刻意排除。
  • 100≡23 (mod 7),所以 100=23 → reject — 同餘只表示餘數相等;100≠23。
  • 100≡23 (mod 7) 的見證 (k,l) 唯一 → reject — (3,14) 與 (0,11) 都可以。

結論與限制

100≡23 (mod 7),因為兩者除以 7 都餘 2;餘數定義與見證形式等價,100 與 23 的見證可取 (k,l)=(3,14) 或 (0,11)。同餘在固定模數下是等價關係,並被加法與乘法保持:115≡24、1500≡23 (mod 7)。2·3≡2·0 (mod 6) 但 3≢0 (mod 6),所以不能無條件取消公因子;不同模數的同餘不能串接;模數 0 被排除。

  • 取消律的正面結果(gcd(c,n)=1 時 ca≡cb ⇒ a≡b)不在本稿證明。
  • 帶餘除法(含唯一性)作為前置規則引用;自然數 a 的商為自然數,其理由見自然數整除的教學稿。

驗證及來源綁定

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

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

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