| i % 10 = 0, mkDecimal(i / 10, abs(j) - 1).int = (i / 10) / 10 ^ maxScale(i / 10), min(maxScale(i / 10), abs(j) - 1) < 0, maxScale(i / 10) + 1 < abs(j), ∀ i0, j. i→n(i0) < i→n(i) → true → mkDecimal(i0, j).int = i0 / 10 ^ min(maxScale(i0), abs(j)) ⊦ j = 0, i = 0, (i / 10) / 10 ^ maxScale(i / 10) = i / 10 ^ (maxScale(i / 10) + 1) |
⊦ j < i → min(j, i) = j
Used simplifier rules: maxScale-not-negt: ⊦ ¬ maxScale(i) < 0;%sub-ls-01: ⊦ 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%lst-03: ⊦ i + j < i0 ∧ ¬ j < j0 → i + j0 < i0; from specification int-basic2%Min-right: ⊦ ¬ j < i → min(j, i) = i; 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%abs-10: ⊦ abs(i) - 1 < 0 ↔ i = 0; from specification int-abs Used terms: abs(j) - 1, maxScale(i / 10)