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