| mkDecimal(i / 10, abs(j) - 1).int = i / (10 * 10 ^ maxScale(i / 10)), i % 10 = 0, maxScale(i / 10) < abs(j), ∀ i0, j. i→n(i0) < i→n(i) → maxScale(i0) ≤ abs(j) → mkDecimal(i0, j).int = i0 / 10 ^ maxScale(i0) ⊦ j = 0, i / (10 * 10 ^ maxScale(i / 10)) = i / 10 ^ (maxScale(i / 10) + 1), i = 0 |
⊦ 0 < i → j ^ i = j ^ i -1 * j
Used simplifier rules: maxScale-not-negt: ⊦ ¬ maxScale(i) < 0;%pred: ⊦ (i + 1)-1 = i; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2%commutativity: ⊦ i * j = j * i; from specification int-mult%numls-02: ⊦ (* j) < i0 + (* j0) ↔ j - j0 < i0; from specification int-abs%mone-06: ⊦ ~1 < i ↔ 0 ≤ i; from specification int-abs%lels-01: ⊦ ¬ i ≤ j ↔ j < i; from specification int-abs Used terms: maxScale(i / 10) + 1, 10