| ∀ i1, i2, j, j0. i→n(i1) + i→n(i2) < i→n(0) + i→n(i0) → true → mkDecimal(i1, j) - mkDecimal(i2, j0) = mkDecimal(i1 * 10 ^ abs(j0) - i2 * 10 ^ abs(j), abs(j) + abs(j0)) ⊦ j = 0, mkDecimal(~ i0, j0) = mkDecimal(~(i0 * 10 ^ abs(j)), abs(j) + abs(j0)) |
⊦ 0 ≤ j0 → mkDecimal(i, j) = mkDecimal(i * 10 ^ j0, abs(j) + j0)
Used simplifier rules: minus-left: ⊦ ~ i * j = ~(i * j); from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%commutativity: ⊦ i * j = j * i; from specification int-mult%add-c: ⊦ i + j = j + i; from specification int-basic2%eq-same: ⊦ mkDecimal(i, j) = mkDecimal(i0, j) ↔ i = i0; from specification decimal%abs-03: ⊦ 0 ≤ abs(i); from specification int-abs Used terms: abs(j), j0, ~ i0