| i % 10 = 0, maxScale(i / 10) < abs(j), ∀ i0, j. i→n(i0) < i→n(i) → maxScale(i0) ≤ abs(j) → abs(j) = mkDecimal(i0, j).scale + maxScale(i0) ⊦ j = 0, abs(j) = mkDecimal(i / 10, abs(j) - 1).scale + maxScale(i / 10) + 1, i = 0 |
Used simplifier rules: abs-abs: ⊦ j ≠ 0 → abs(abs(j) - 1) = abs(j) - 1; from specification int-abs%sub-eq: ⊦ i - j = i0 ↔ i = i0 + j; 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%sub-le-01: ⊦ i ≤ j - i0 ↔ i + i0 ≤ j; from specification int-abs%succ-01: ⊦ i + 1 ≤ j ↔ i < j; from specification int-abs%lels: ⊦ ¬ i < j ↔ j ≤ i; from specification int-abs%lels-03: ⊦ i < j → (¬ ¬ j ≤ i ↔ false); from specification int-abs%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%abs-div10-le: ⊦ abs(i) ≤ abs(i) / 10 ↔ i = 0; from specification int-div Used terms: i / 10, abs(j) - 1