逐步主鏈
S01 · definition
操作前
(G,*)\ \text{given by table } T操作後
\text{closure},\ \forall a,b,c:\ (a*b)*c=a*(b*c),\ \exists e\ \text{two-sided identity},\ \forall a\ \exists a'\ \text{two-sided inverse}條件:無
規則:mko_finite_group_def · 依賴:G1, mko_finite_group_def
葉節點依據:mko_finite_group_def + group_axioms
依 MKO,(G,*) 是有限群需要四件事:封閉、對所有三元組結合、存在雙側單位元、每個元素有雙側逆元。交換律不在其中;表是否對稱與群無關。
S02 · implies
操作前
T(a,b)\ \text{for all } a,b\in G操作後
a*b=(a+b)\bmod 4
條件:無
規則:finite_exhaustion · 依賴:G1, mod_notation
葉節點依據:finite_exhaustion + mod_notation + numeric_evaluation
逐行(row)比對 16 格:第 a 行是 a+0、a+1、a+2、a+3 除以 4 的餘數。例如第 1 行 1,2,3,4 的餘數是 1,2,3,0;第 2 行 2,3,4,5 的餘數是 2,3,0,1;第 3 行 3,4,5,6 的餘數是 3,0,1,2;第 0 行不變。16 格全部相符,所以表 T 就是 a*b=(a+b) mod 4。
S03 · implies
操作前
a,b\in G
操作後
a*b\in G
條件:無
規則:finite_exhaustion · 依賴:G1, S02
葉節點依據:finite_exhaustion + division_algorithm
封閉:表 T 的 16 格輸出都在 {0,1,2,3} 中。也可由 S02 看出:餘數 r 滿足 0≤r<4,必為 0、1、2、3 之一。
S04 · implies
操作前
x-y=mk,\ k\in\mathbb{Z}操作後
x\bmod m=y\bmod m
條件:m>0
規則:L_same_rem · 依賴:division_algorithm, mod_notation
葉節點依據:division_algorithm + mod_notation
結合律的論證需要一個關於餘數的引理 L_same_rem:相差 m 的整數倍的兩個整數,除以 m 的餘數相同。證明在子步 S04.1、S04.2,只用除法演算法的存在與唯一性。
S05 · equivalent
操作前
(a*b)*c
操作後
(a+b+c)\bmod 4
條件:a,b,c\in G
規則:L_same_rem · 依賴:S02, S04, division_algorithm
葉節點依據:L_same_rem + division_algorithm + eq_replace
由 S02,(a*b)*c=((a+b) mod 4 + c) mod 4。設 a+b=4q+r,r=(a+b) mod 4;則 (r+c)−(a+b+c)=r−(a+b)=−4q 是 4 的整數倍,依引理 L_same_rem(m=4),(r+c) mod 4=(a+b+c) mod 4。a、b、c 是 G 中任意元素。
S06 · equivalent
操作前
a*(b*c)
操作後
(a+b+c)\bmod 4
條件:a,b,c\in G
規則:L_same_rem · 依賴:S02, S04, division_algorithm
葉節點依據:L_same_rem + division_algorithm + eq_replace
同理,a*(b*c)=(a+(b+c) mod 4) mod 4。設 b+c=4p+s,s=(b+c) mod 4;則 (a+s)−(a+b+c)=−4p,依引理得 (a+s) mod 4=(a+b+c) mod 4。
S07 · implies
操作前
(a*b)*c=(a+b+c)\bmod 4=a*(b*c)
操作後
\forall a,b,c\in G:\ (a*b)*c=a*(b*c)
條件:無
規則:eq_refl_symm_trans · 依賴:S05, S06, G3
葉節點依據:eq_refl_symm_trans + forall_intro
兩邊都等於 (a+b+c) mod 4,依等號的傳遞得 (a*b)*c=a*(b*c)。S05、S06 對 G 中任意 a、b、c 成立,所以這一次論證涵蓋全部 4³=64 個有序三元組,符合 G3 的要求。N4 另外把 64 個三元組逐一窮舉作交叉核對;兩者都是對這個有限模型的完整核對,不是抽樣。
S08 · implies
操作前
\text{row } 0 \text{ and column } 0 \text{ of } T操作後
\forall a\in G:\ 0*a=a\ \land\ a*0=a
條件:無
規則:finite_exhaustion · 依賴:G1
葉節點依據:finite_exhaustion
第 0 行(row)是 0,1,2,3,表示 0*a=a 對四個 a 都成立(左單位);第 0 列(column,每行的第一個數)依序是 0,1,2,3,表示 a*0=a(右單位)。左右都成立,0 是雙側單位元。
S09 · implies
操作前
a\in G
操作後
0'=0,\ 1'=3,\ 2'=2,\ 3'=1;\ a*a'=a'*a=0
條件:無
規則:finite_exhaustion · 依賴:G1, S08
葉節點依據:finite_exhaustion + numeric_evaluation
在每一行(row)找出值為單位元 0 的位置:0*0=0;1*3=0 且 3*1=0;2*2=0;3*1=0 且 1*3=0。每一對都檢查左右兩個乘積,所以 0、3、2、1 分別是 0、1、2、3 的雙側逆元。
S10 · implies
操作前
\text{closure, associativity, identity, inverses}操作後
(G,*)\ \text{is a finite group}條件:無
規則:mko_finite_group_def · 依賴:S03, S07, S08, S09
葉節點依據:mko_finite_group_def + and_intro_elim
S03、S07、S08、S09 分別給出四個條件,依 MKO 的定義,(G,*) 是有限群。
S11 · implies
操作前
(K,\circ)\ \text{given by its table}操作後
\text{closed},\ a\circ b=b\circ a,\ 0\ \text{two-sided identity},\ a\circ a=0條件:無
規則:finite_exhaustion · 依賴:G2
葉節點依據:finite_exhaustion
逐格查候選乙的 9 格:輸出都在 {0,1,2}(封閉);1∘2=1=2∘1,其餘對稱位置也相等(表對稱);第 0 行(row)與第 0 列(column)都是 0,1,2(0 是雙側單位元);0∘0=0、1∘1=0、2∘2=0(每個元素是自己的雙側逆元)。
S12 · implies
操作前
(a,b,c)\in K^3,\ 0\in\{a,b,c\}操作後
(a\circ b)\circ c=a\circ(b\circ c)
條件:無
規則:case_analysis · 依賴:S11
葉節點依據:case_analysis + finite_counting_basics + numeric_evaluation
若三元組含 0,依位置分情形,每種情形都用 0 是雙側單位元:a=0 時兩邊都是 b∘c;b=0 時兩邊都是 a∘c;c=0 時兩邊都是 a∘b。這樣的三元組有 3³−2³=27−8=19 個,全部通過。所以若只抽查含單位元的三元組,會誤以為 ∘ 結合。
S13 · implies
操作前
(1\circ 1)\circ 2\ \text{vs}\ 1\circ(1\circ 2)操作後
0\circ 2=2\neq 0=1\circ 1
條件:無
規則:def_unfold · 依賴:G2
葉節點依據:def_unfold + numeric_evaluation
查表:1∘1=0,所以 (1∘1)∘2=0∘2=2;1∘2=1,所以 1∘(1∘2)=1∘1=0。2≠0,三元組 (1,1,2) 違反結合律。
S14 · implies
操作前
\exists (a,b,c):\ (a\circ b)\circ c\neq a\circ(b\circ c)
操作後
(K,\circ)\ \text{is not a group}條件:無
規則:quantifier_negation · 依賴:S11, S12, S13, G3
葉節點依據:quantifier_negation + mko_finite_group_def
群需要對所有三元組結合;S13 給出反例,依量詞否定這個全稱命題為假,所以 (K,∘) 不是群。這發生在 S11 的對稱、單位元與逆元全部通過、S12 的 19 個三元組也全部通過之後:只看表的對稱或少數案例會誤判。