Step
*
1
1
of Lemma
isOdd-sum
1. n : ℤ
2. 0 < n
3. ∀[f:ℕn - 1 ⟶ ℤ]. uiff(↑isOdd(Σ(f[x] | x < n - 1));↑isOdd(||filter(λx.isOdd(f[x]);upto(n - 1))||))
4. f : ℕn ⟶ ℤ
5. Σ(f[x] | x < n) = (Σ(f[x] | x < n - 1) + f[n - 1]) ∈ ℤ
⊢ uiff(↑isOdd(Σ(f[x] | x < n - 1) + f[n - 1]);↑isOdd(||filter(λx.isOdd(f[x]);upto(n - 1))
@ if isOdd(f[n - 1]) then [n - 1] else [] fi ||))
BY
{ ((D 3 With ⌜f⌝ THENA Auto)
THEN MoveToConcl (-1)
THEN (GenConclTerm ⌜Σ(f[x] | x < n - 1)⌝⋅ THENA Auto)
THEN (GenConclTerm ⌜f[n - 1]⌝⋅ THENA Auto)
THEN (RWO "length-append" 0 THENA Auto)
THEN (GenConclTerm ⌜||filter(λx.isOdd(f[x]);upto(n - 1))||⌝⋅ THENA Auto)
THEN (RWO "isOdd-add" 0 THENA Auto)
THEN (BoolCase ⌜same-parity(v;v1)⌝⋅ THENA Auto)
THEN ((FLemma `same-parity-implies-even-odd` [-1] ORELSE FLemma `not-same-parity-implies-even-odd` [-4]) THENA Auto)
THEN D -1
THEN Auto) }
1
1. n : ℤ
2. 0 < n
3. f : ℕn ⟶ ℤ
4. Σ(f[x] | x < n) = (Σ(f[x] | x < n - 1) + f[n - 1]) ∈ ℤ
5. v : ℤ
6. Σ(f[x] | x < n - 1) = v ∈ ℤ
7. v1 : ℤ
8. f[n - 1] = v1 ∈ ℤ
9. v2 : ℕ
10. ||filter(λx.isOdd(f[x]);upto(n - 1))|| = v2 ∈ ℕ
11. ↑same-parity(v;v1)
12. ↑isEven(v)
13. ↑isEven(v1)
14. ↑isOdd(v2) supposing ↑isOdd(v)
15. ↑isOdd(v) supposing ↑isOdd(v2)
16. ¬↑same-parity(v2;||if isOdd(v1) then [n - 1] else [] fi ||)
⊢ ¬True
2
1. n : ℤ
2. 0 < n
3. f : ℕn ⟶ ℤ
4. Σ(f[x] | x < n) = (Σ(f[x] | x < n - 1) + f[n - 1]) ∈ ℤ
5. v : ℤ
6. Σ(f[x] | x < n - 1) = v ∈ ℤ
7. v1 : ℤ
8. f[n - 1] = v1 ∈ ℤ
9. v2 : ℕ
10. ||filter(λx.isOdd(f[x]);upto(n - 1))|| = v2 ∈ ℕ
11. ↑same-parity(v;v1)
12. ↑isOdd(v)
13. ↑isOdd(v1)
14. ¬↑same-parity(v2;||if isOdd(v1) then [n - 1] else [] fi ||)
15. ↑isOdd(v2)
16. ↑isOdd(v)
⊢ ¬True
3
1. n : ℤ
2. 0 < n
3. f : ℕn ⟶ ℤ
4. Σ(f[x] | x < n) = (Σ(f[x] | x < n - 1) + f[n - 1]) ∈ ℤ
5. v : ℤ
6. Σ(f[x] | x < n - 1) = v ∈ ℤ
7. v1 : ℤ
8. ¬↑same-parity(v;v1)
9. f[n - 1] = v1 ∈ ℤ
10. v2 : ℕ
11. ||filter(λx.isOdd(f[x]);upto(n - 1))|| = v2 ∈ ℕ
12. ↑isEven(v)
13. ↑isOdd(v1)
14. ↑isOdd(v2) supposing ↑isOdd(v)
15. ↑isOdd(v) supposing ↑isOdd(v2)
16. ¬False
⊢ ¬↑same-parity(v2;||if isOdd(v1) then [n - 1] else [] fi ||)
4
1. n : ℤ
2. 0 < n
3. f : ℕn ⟶ ℤ
4. Σ(f[x] | x < n) = (Σ(f[x] | x < n - 1) + f[n - 1]) ∈ ℤ
5. v : ℤ
6. Σ(f[x] | x < n - 1) = v ∈ ℤ
7. v1 : ℤ
8. ¬↑same-parity(v;v1)
9. f[n - 1] = v1 ∈ ℤ
10. v2 : ℕ
11. ||filter(λx.isOdd(f[x]);upto(n - 1))|| = v2 ∈ ℕ
12. ↑isOdd(v)
13. ↑isEven(v1)
14. ¬False
15. ↑isOdd(v2)
16. ↑isOdd(v)
⊢ ¬↑same-parity(v2;||if isOdd(v1) then [n - 1] else [] fi ||)
Latex:
Latex:
1. n : \mBbbZ{}
2. 0 < n
3. \mforall{}[f:\mBbbN{}n - 1 {}\mrightarrow{} \mBbbZ{}]
uiff(\muparrow{}isOdd(\mSigma{}(f[x] | x < n - 1));\muparrow{}isOdd(||filter(\mlambda{}x.isOdd(f[x]);upto(n - 1))||))
4. f : \mBbbN{}n {}\mrightarrow{} \mBbbZ{}
5. \mSigma{}(f[x] | x < n) = (\mSigma{}(f[x] | x < n - 1) + f[n - 1])
\mvdash{} uiff(\muparrow{}isOdd(\mSigma{}(f[x] | x < n - 1) + f[n - 1]);\muparrow{}isOdd(||filter(\mlambda{}x.isOdd(f[x]);upto(n - 1))
@ if isOdd(f[n - 1]) then [n - 1] else [] fi ||))
By
Latex:
((D 3 With \mkleeneopen{}f\mkleeneclose{} THENA Auto)
THEN MoveToConcl (-1)
THEN (GenConclTerm \mkleeneopen{}\mSigma{}(f[x] | x < n - 1)\mkleeneclose{}\mcdot{} THENA Auto)
THEN (GenConclTerm \mkleeneopen{}f[n - 1]\mkleeneclose{}\mcdot{} THENA Auto)
THEN (RWO "length-append" 0 THENA Auto)
THEN (GenConclTerm \mkleeneopen{}||filter(\mlambda{}x.isOdd(f[x]);upto(n - 1))||\mkleeneclose{}\mcdot{} THENA Auto)
THEN (RWO "isOdd-add" 0 THENA Auto)
THEN (BoolCase \mkleeneopen{}same-parity(v;v1)\mkleeneclose{}\mcdot{} THENA Auto)
THEN ((FLemma `same-parity-implies-even-odd` [-1]
ORELSE FLemma `not-same-parity-implies-even-odd` [-4]
)
THENA Auto
)
THEN D -1
THEN Auto)
Home
Index