| 0 ≤ min(maxScale(i / 10), abs(j) - 1), i % 10 = 0, mkDecimal(i / 10, abs(j) - 1).int = i / 10 ^ (min(maxScale(i / 10), abs(j) - 1) + 1), 0 ≤ min(maxScale(i / 10), abs(j) - 1), ∀ i0, j. i→n(i0) < i→n(i) → true → mkDecimal(i0, j).int = i0 / 10 ^ min(maxScale(i0), abs(j)) ⊦ i = 0, mkDecimal(i / 10, abs(j) - 1).int = i / 10 ^ min(maxScale(i / 10) + 1, abs(j)), j = 0 |
⊦ ¬ j < i → min(j, i) = i
Used simplifier rules: Sub-def: ⊦ i + (j - i) = 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%leone: ⊦ 1 ≤ i ↔ 0 < i; from specification int-abs%abs-06: ⊦ 0 < abs(i) ↔ i ≠ 0; from specification int-abs%sub-ls-01: ⊦ i < j - i0 ↔ i + i0 < j; from specification int-abs%lels: ⊦ ¬ i < j ↔ j ≤ i; from specification int-abs%min-right: ⊦ j ≤ i → min(i, j) = j; from specification int-min%min-a: ⊦ min(i, min(j, j0)) = min(min(i, j), j0); from specification int-min%min-c: ⊦ min(i, j) = min(j, i); from specification int-min%Min-left: ⊦ j < i → min(j, i) = j; from specification int-min Used terms: abs(j) - 1, maxScale(i / 10)