Step
*
of Lemma
div_floor_mod_sum
∀[a:ℤ]. ∀[n:ℕ+]. (a = (((a ÷↓ n) * n) + (a mod n)) ∈ ℤ)
BY
{ ((UnivCD THENA Auto)
THEN Unfolds ``div_floor modulus`` 0
THEN (InstLemma `div_rem_sum` [⌜a⌝;⌜n⌝]⋅ THENA Auto)
THEN MoveToConcl (-1)
THEN (InstLemma `rem_bounds_z` [⌜a⌝;⌜n⌝]⋅ THENA Auto)
THEN MoveToConcl (-1)
THEN GenConclTerms Auto [⌜a rem n⌝;⌜a ÷ n⌝]⋅
THEN RepeatFor 2 ((D 0 THENA Auto))
THEN HypSubst' (-1) 0
THEN AutoSplit
THEN (CallByValueReduce 0 THENA Auto)
THEN AutoSplit) }
1
1. a : ℤ
2. n : ℕ+
3. ¬n < 0
4. v : ℤ
5. (a rem n) = v ∈ ℤ
6. v1 : ℤ
7. (a ÷ n) = v1 ∈ ℤ
8. |v| < |n|
9. a = ((v1 * n) + v) ∈ ℤ
10. v < 0
⊢ ((v1 * n) + v) = (((v1 - 1) * n) + |n| + v) ∈ ℤ
Latex:
Latex:
\mforall{}[a:\mBbbZ{}]. \mforall{}[n:\mBbbN{}\msupplus{}]. (a = (((a \mdiv{}\mdownarrow{} n) * n) + (a mod n)))
By
Latex:
((UnivCD THENA Auto)
THEN Unfolds ``div\_floor modulus`` 0
THEN (InstLemma `div\_rem\_sum` [\mkleeneopen{}a\mkleeneclose{};\mkleeneopen{}n\mkleeneclose{}]\mcdot{} THENA Auto)
THEN MoveToConcl (-1)
THEN (InstLemma `rem\_bounds\_z` [\mkleeneopen{}a\mkleeneclose{};\mkleeneopen{}n\mkleeneclose{}]\mcdot{} THENA Auto)
THEN MoveToConcl (-1)
THEN GenConclTerms Auto [\mkleeneopen{}a rem n\mkleeneclose{};\mkleeneopen{}a \mdiv{} n\mkleeneclose{}]\mcdot{}
THEN RepeatFor 2 ((D 0 THENA Auto))
THEN HypSubst' (-1) 0
THEN AutoSplit
THEN (CallByValueReduce 0 THENA Auto)
THEN AutoSplit)
Home
Index