Main derivation
S01 · definition
Before
(G,*)\ \text{given by table } TAfter
\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}Conditions: none
Rule: mko_finite_group_def · Uses: G1, mko_finite_group_def
Leaf basis: mko_finite_group_def + group_axioms
By the MKO, (G,*) is a finite group when four things hold: closure, associativity for every triple, a two-sided identity, and a two-sided inverse for every element. Commutativity is not among them; whether the table is symmetric is irrelevant to being a group.
S02 · implies
Before
T(a,b)\ \text{for all } a,b\in GAfter
a*b=(a+b)\bmod 4
Conditions: none
Rule: finite_exhaustion · Uses: G1, mod_notation
Leaf basis: finite_exhaustion + mod_notation + numeric_evaluation
Compare all 16 cells row by row: row a consists of the remainders of a+0, a+1, a+2, a+3 on division by 4. For example row 1, from 1,2,3,4, gives 1,2,3,0; row 2, from 2,3,4,5, gives 2,3,0,1; row 3, from 3,4,5,6, gives 3,0,1,2; row 0 is unchanged. All 16 cells match, so the table T is a*b=(a+b) mod 4.
S03 · implies
Before
a,b\in G
After
a*b\in G
Conditions: none
Rule: finite_exhaustion · Uses: G1, S02
Leaf basis: finite_exhaustion + division_algorithm
Closure: all 16 entries of T lie in {0,1,2,3}. It also follows from S02: a remainder r satisfies 0≤r<4, so it is one of 0, 1, 2, 3.
S04 · implies
Before
x-y=mk,\ k\in\mathbb{Z}After
x\bmod m=y\bmod m
Conditions: m>0
Rule: L_same_rem · Uses: division_algorithm, mod_notation
Leaf basis: division_algorithm + mod_notation
The associativity argument needs a lemma on remainders, L_same_rem: two integers that differ by an integer multiple of m leave the same remainder on division by m. The proof is in sub-steps S04.1 and S04.2 and uses only existence and uniqueness in the division algorithm.
S05 · equivalent
Before
(a*b)*c
After
(a+b+c)\bmod 4
Conditions: a,b,c\in G
Rule: L_same_rem · Uses: S02, S04, division_algorithm
Leaf basis: L_same_rem + division_algorithm + eq_replace
By S02, (a*b)*c=((a+b) mod 4 + c) mod 4. Write a+b=4q+r with r=(a+b) mod 4; then (r+c)−(a+b+c)=r−(a+b)=−4q is an integer multiple of 4, so by Lemma L_same_rem (m=4), (r+c) mod 4=(a+b+c) mod 4. Here a, b, c are arbitrary elements of G.
S06 · equivalent
Before
a*(b*c)
After
(a+b+c)\bmod 4
Conditions: a,b,c\in G
Rule: L_same_rem · Uses: S02, S04, division_algorithm
Leaf basis: L_same_rem + division_algorithm + eq_replace
Likewise a*(b*c)=(a+(b+c) mod 4) mod 4. Write b+c=4p+s with s=(b+c) mod 4; then (a+s)−(a+b+c)=−4p, and the lemma gives (a+s) mod 4=(a+b+c) mod 4.
S07 · implies
Before
(a*b)*c=(a+b+c)\bmod 4=a*(b*c)
After
\forall a,b,c\in G:\ (a*b)*c=a*(b*c)
Conditions: none
Rule: eq_refl_symm_trans · Uses: S05, S06, G3
Leaf basis: eq_refl_symm_trans + forall_intro
Both sides equal (a+b+c) mod 4, so transitivity of equality gives (a*b)*c=a*(b*c). S05 and S06 hold for arbitrary a, b, c in G, so this one argument covers all 4³=64 ordered triples, as G3 requires. N4 separately enumerates the 64 triples one by one as a cross-check; both are complete checks of this finite model, not samples.
S08 · implies
Before
\text{row } 0 \text{ and column } 0 \text{ of } TAfter
\forall a\in G:\ 0*a=a\ \land\ a*0=a
Conditions: none
Rule: finite_exhaustion · Uses: G1
Leaf basis: finite_exhaustion
Row 0 is 0,1,2,3, so 0*a=a for all four a (left identity); column 0 (the first entry of each row) is 0,1,2,3 in order, so a*0=a (right identity). Both sides hold, so 0 is a two-sided identity.
S09 · implies
Before
a\in G
After
0'=0,\ 1'=3,\ 2'=2,\ 3'=1;\ a*a'=a'*a=0
Conditions: none
Rule: finite_exhaustion · Uses: G1, S08
Leaf basis: finite_exhaustion + numeric_evaluation
Find where each row takes the identity value 0: 0*0=0; 1*3=0 and 3*1=0; 2*2=0; 3*1=0 and 1*3=0. Both products are checked for each pair, so 0, 3, 2, 1 are two-sided inverses of 0, 1, 2, 3 respectively.
S10 · implies
Before
\text{closure, associativity, identity, inverses}After
(G,*)\ \text{is a finite group}Conditions: none
Rule: mko_finite_group_def · Uses: S03, S07, S08, S09
Leaf basis: mko_finite_group_def + and_intro_elim
S03, S07, S08 and S09 supply the four conditions, so by the MKO's definition (G,*) is a finite group.
S11 · implies
Before
(K,\circ)\ \text{given by its table}After
\text{closed},\ a\circ b=b\circ a,\ 0\ \text{two-sided identity},\ a\circ a=0Conditions: none
Rule: finite_exhaustion · Uses: G2
Leaf basis: finite_exhaustion
Inspect the 9 cells of candidate B: every output lies in {0,1,2} (closed); 1∘2=1=2∘1 and the other mirror cells agree too (the table is symmetric); row 0 and column 0 are both 0,1,2 (0 is a two-sided identity); 0∘0=0, 1∘1=0 and 2∘2=0 (each element is its own two-sided inverse).
S12 · implies
Before
(a,b,c)\in K^3,\ 0\in\{a,b,c\}After
(a\circ b)\circ c=a\circ(b\circ c)
Conditions: none
Rule: case_analysis · Uses: S11
Leaf basis: case_analysis + finite_counting_basics + numeric_evaluation
If a triple contains 0, split by its position, each case using that 0 is a two-sided identity: if a=0 both sides are b∘c; if b=0 both are a∘c; if c=0 both are a∘b. There are 3³−2³=27−8=19 such triples, and all pass. So a sample of triples containing the identity would wrongly suggest that ∘ is associative.
S13 · implies
Before
(1\circ 1)\circ 2\ \text{vs}\ 1\circ(1\circ 2)After
0\circ 2=2\neq 0=1\circ 1
Conditions: none
Rule: def_unfold · Uses: G2
Leaf basis: def_unfold + numeric_evaluation
Read the table: 1∘1=0, so (1∘1)∘2=0∘2=2; 1∘2=1, so 1∘(1∘2)=1∘1=0. Since 2≠0, the triple (1,1,2) violates associativity.
S14 · implies
Before
\exists (a,b,c):\ (a\circ b)\circ c\neq a\circ(b\circ c)
After
(K,\circ)\ \text{is not a group}Conditions: none
Rule: quantifier_negation · Uses: S11, S12, S13, G3
Leaf basis: quantifier_negation + mko_finite_group_def
A group needs associativity for every triple; S13 gives a counterexample, so by quantifier negation the universal statement is false and (K,∘) is not a group. This happens even though symmetry, identity and inverses in S11 and the 19 triples of S12 all pass: judging by table symmetry or a few cases would be wrong.