| j0 < 2, 0 ≤ j0, 2 ^ i ≤ i0, 0 ≤ i0, 0 ≤ i ⊦ 2 ^ i * 2 ≤ i0 * 2 + j0 |
j * i + j0 < j * i0, abs(j0) < j ⊦ i ≤ i0
Used simplifier rules: ls-pos-2pot: ⊦ 0 ≤ j → (2 ^ j < 2 ^ j0 ↔ j < j0);% ⊦ i ≤ j → (j ≤ i ↔ i = j); (s)% ⊦ i ≤ j ↔ ¬ j < i; (ss)%forward-le-01: ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward) from specification int-abs% ⊦ j0 < j ∧ 0 ≤ i ∧ 0 ≤ i0 ∧ 0 ≤ j0 → (i * j + j0 < i0 * j ↔ i < i0); (s)% ⊦ ¬ i < i; (s)%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%commutativity: ⊦ i * j = j * i; from specification int-mult%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2% ⊦ 0 ≤ i → abs(i) = i; (s)%j0 ≠ 0, j ≤ j0 ⊦ i < (* j) → i < (* j0); (s) Used terms: 2, i0, j0, 2 ^ i