Step
*
of Lemma
div_floor_bounds
∀[a:ℤ]. ∀[n:ℤ-o].
  ((((a ÷↓ n) * n) ≤ a) ∧ a < ((a ÷↓ n) + 1) * n supposing 0 < n
  ∧ ((a ÷↓ n) + 1) * n < a ∧ (a ≤ ((a ÷↓ n) * n)) supposing n < 0)
BY
{ ((UnivCD THENA Auto)
   THEN Unfold `div_floor` 0
   THEN (CallByValueReduce 0 THENA Auto)
   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 ÷ n⌝;⌜a rem n⌝]⋅ THENA Auto)
   THEN RepeatFor 2 ((D 0 THENA Auto))
   THEN HypSubst' (-1) 0
   THEN D 0
   THEN (D 0 THENA Auto)
   THEN Repeat (AutoSplit)
   THEN Auto) }
1
1. a : ℤ
2. n : ℤ-o
3. ¬n < 0
4. v : ℤ@i
5. (a ÷ n) = v ∈ ℤ
6. v1 : ℤ@i
7. (a rem n) = v1 ∈ ℤ
8. |v1| < |n|
9. a = ((v * n) + v1) ∈ ℤ
10. 0 < n
11. v1 < 0
⊢ ((v - 1) * n) ≤ ((v * n) + v1)
2
1. a : ℤ
2. n : ℤ-o
3. ¬n < 0
4. v : ℤ@i
5. (a ÷ n) = v ∈ ℤ
6. v1 : ℤ@i
7. (a rem n) = v1 ∈ ℤ
8. |v1| < |n|
9. a = ((v * n) + v1) ∈ ℤ
10. 0 < n
11. v1 < 0
12. ((v - 1) * n) ≤ ((v * n) + v1)
⊢ (v * n) + v1 < ((v - 1) + 1) * n
3
1. a : ℤ
2. n : ℤ-o
3. ¬n < 0
4. v : ℤ@i
5. (a ÷ n) = v ∈ ℤ
6. v1 : ℤ@i
7. ¬v1 < 0
8. (a rem n) = v1 ∈ ℤ
9. |v1| < |n|
10. a = ((v * n) + v1) ∈ ℤ
11. 0 < n
⊢ (v * n) ≤ ((v * n) + v1)
4
1. a : ℤ
2. n : ℤ-o
3. ¬n < 0
4. v : ℤ@i
5. (a ÷ n) = v ∈ ℤ
6. v1 : ℤ@i
7. ¬v1 < 0
8. (a rem n) = v1 ∈ ℤ
9. |v1| < |n|
10. a = ((v * n) + v1) ∈ ℤ
11. 0 < n
12. (v * n) ≤ ((v * n) + v1)
⊢ (v * n) + v1 < (v + 1) * n
5
1. a : ℤ
2. n : ℤ-o
3. v : ℤ@i
4. (a ÷ n) = v ∈ ℤ
5. v1 : ℤ@i
6. (a rem n) = v1 ∈ ℤ
7. |v1| < |n|
8. a = ((v * n) + v1) ∈ ℤ
9. n < 0
10. n < 0
11. v1 < 1
⊢ (v + 1) * n < (v * n) + v1
6
1. a : ℤ
2. n : ℤ-o
3. v : ℤ@i
4. (a ÷ n) = v ∈ ℤ
5. v1 : ℤ@i
6. (a rem n) = v1 ∈ ℤ
7. |v1| < |n|
8. a = ((v * n) + v1) ∈ ℤ
9. n < 0
10. n < 0
11. v1 < 1
12. (v + 1) * n < (v * n) + v1
⊢ ((v * n) + v1) ≤ (v * n)
7
1. a : ℤ
2. n : ℤ-o
3. v : ℤ@i
4. (a ÷ n) = v ∈ ℤ
5. v1 : ℤ@i
6. ¬v1 < 1
7. (a rem n) = v1 ∈ ℤ
8. |v1| < |n|
9. a = ((v * n) + v1) ∈ ℤ
10. n < 0
11. n < 0
⊢ ((v - 1) + 1) * n < (v * n) + v1
8
1. a : ℤ
2. n : ℤ-o
3. v : ℤ@i
4. (a ÷ n) = v ∈ ℤ
5. v1 : ℤ@i
6. ¬v1 < 1
7. (a rem n) = v1 ∈ ℤ
8. |v1| < |n|
9. a = ((v * n) + v1) ∈ ℤ
10. n < 0
11. n < 0
12. ((v - 1) + 1) * n < (v * n) + v1
⊢ ((v * n) + v1) ≤ ((v - 1) * n)
Latex:
Latex:
\mforall{}[a:\mBbbZ{}].  \mforall{}[n:\mBbbZ{}\msupminus{}\msupzero{}].
    ((((a  \mdiv{}\mdownarrow{}  n)  *  n)  \mleq{}  a)  \mwedge{}  a  <  ((a  \mdiv{}\mdownarrow{}  n)  +  1)  *  n  supposing  0  <  n
    \mwedge{}  ((a  \mdiv{}\mdownarrow{}  n)  +  1)  *  n  <  a  \mwedge{}  (a  \mleq{}  ((a  \mdiv{}\mdownarrow{}  n)  *  n))  supposing  n  <  0)
By
Latex:
((UnivCD  THENA  Auto)
  THEN  Unfold  `div\_floor`  0
  THEN  (CallByValueReduce  0  THENA  Auto)
  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  \mdiv{}  n\mkleeneclose{};\mkleeneopen{}a  rem  n\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  RepeatFor  2  ((D  0  THENA  Auto))
  THEN  HypSubst'  (-1)  0
  THEN  D  0
  THEN  (D  0  THENA  Auto)
  THEN  Repeat  (AutoSplit)
  THEN  Auto)
Home
Index