| i % 10 = 0, abs(j) ≤ maxScale(i / 10), ∀ i0, j. i→n(i0) < i→n(i) → abs(j) < maxScale(i0) → mkDecimal(i0, j).scale = 0 ⊦ j = 0, mkDecimal(i / 10, abs(j) - 1).scale = 0, i = 0 |
Used simplifier rules: abs-abs: ⊦ j ≠ 0 → abs(abs(j) - 1) = abs(j) - 1; from specification int-abs%sub-ls: ⊦ i - j < i0 ↔ i < j + i0; from specification int-abs%succ-02: ⊦ i < j + 1 ↔ i ≤ j; from specification int-abs%lels-01: ⊦ ¬ i ≤ j ↔ j < i; from specification int-abs%lenls: ⊦ i ≤ j → ¬ j < i; from specification int-abs%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2%labs: ⊦ i→n(i) < i→n(j) ↔ abs(i) < abs(j); from specification intnat%abs: j ≠ 0 ⊦ abs(i / j) = abs(i) / abs(j); from specification int-div%lels: ⊦ ¬ i < j ↔ j ≤ i; from specification int-abs%abs-div10-le: ⊦ abs(i) ≤ abs(i) / 10 ↔ i = 0; from specification int-div Used terms: i / 10, abs(j) - 1