Step
*
of Lemma
nim-sum-com
∀[x,y:ℕ]. (nim-sum(x;y) = nim-sum(y;x) ∈ ℤ)
BY
{ ((CompleteInductionOnNat THEN (D 0 THENA Auto))
THEN (CaseNat 0 `x'
THENL [(Computation THEN Auto)
; (CaseNat 0 `y' THENL [(Computation THEN Auto); (Unfold `nim-sum` 0 THEN Reduce 0)])]
)
THEN (InstLemma `div_rem_sum` [⌜x⌝;⌜2⌝]⋅ THENA Auto)
THEN (InstLemma `rem_bounds_1` [⌜x⌝;⌜2⌝]⋅ THENA Auto)
THEN (InstLemma `div_rem_sum` [⌜y⌝;⌜2⌝]⋅ THENA Auto)
THEN (InstLemma `rem_bounds_1` [⌜y⌝;⌜2⌝]⋅ THENA Auto)) }
1
1. x : ℕ
2. ∀x:ℕx. ∀[y:ℕ]. (nim-sum(x;y) = nim-sum(y;x) ∈ ℤ)
3. y : ℕ
4. ¬(x = 0 ∈ ℤ)
5. ¬(y = 0 ∈ ℤ)
6. x = (((x ÷ 2) * 2) + (x rem 2)) ∈ ℤ
7. (0 ≤ (x rem 2)) ∧ x rem 2 < 2
8. y = (((y ÷ 2) * 2) + (y rem 2)) ∈ ℤ
9. (0 ≤ (y rem 2)) ∧ y rem 2 < 2
⊢ eval rx = x rem 2 in
eval qx = x ÷ 2 in
eval ry = y rem 2 in
eval qy = y ÷ 2 in
eval s = nim-sum(qx;qy) in
eval d = if rx=ry then 0 else 1 in
(2 * s) + d
= eval rx = y rem 2 in
eval qx = y ÷ 2 in
eval ry = x rem 2 in
eval qy = x ÷ 2 in
eval s = nim-sum(qx;qy) in
eval d = if rx=ry then 0 else 1 in
(2 * s) + d
∈ ℤ
Latex:
Latex:
\mforall{}[x,y:\mBbbN{}]. (nim-sum(x;y) = nim-sum(y;x))
By
Latex:
((CompleteInductionOnNat THEN (D 0 THENA Auto))
THEN (CaseNat 0 `x'
THENL [(Computation THEN Auto)
; (CaseNat 0 `y' THENL [(Computation THEN Auto); (Unfold `nim-sum` 0 THEN Reduce 0)])]
)
THEN (InstLemma `div\_rem\_sum` [\mkleeneopen{}x\mkleeneclose{};\mkleeneopen{}2\mkleeneclose{}]\mcdot{} THENA Auto)
THEN (InstLemma `rem\_bounds\_1` [\mkleeneopen{}x\mkleeneclose{};\mkleeneopen{}2\mkleeneclose{}]\mcdot{} THENA Auto)
THEN (InstLemma `div\_rem\_sum` [\mkleeneopen{}y\mkleeneclose{};\mkleeneopen{}2\mkleeneclose{}]\mcdot{} THENA Auto)
THEN (InstLemma `rem\_bounds\_1` [\mkleeneopen{}y\mkleeneclose{};\mkleeneopen{}2\mkleeneclose{}]\mcdot{} THENA Auto))
Home
Index