| 0 ≤ 2 * abs(i2) ⊦ mkDecimal((i * 10 ^ abs(i2) + i1 * 10 ^ abs(i0)) * 10 ^ abs(i2) - i1 * 10 ^ (abs(i0) + abs(i2)), 2 * abs(i2) + abs(i0)) = mkDecimal(i * 10 ^ (2 * abs(i2)), abs(abs(i0)) + 2 * abs(i2)) |
⊦ (i * 10 ^ abs(i2) + i1 * 10 ^ abs(i0)) * 10 ^ abs(i2) = i * 10 ^ (2 * abs(i2)) + i1 * 10 ^ (abs(i0) + abs(i2))
Used simplifier rules: commutativity: ⊦ i * j = j * i; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%abs-03: ⊦ 0 ≤ abs(i); from specification int-abs%zero-ge: ⊦ 0 < i → (0 ≤ i * j ↔ 0 ≤ j); from specification int-mult%sub-eq: ⊦ i - j = i0 ↔ i = i0 + j; from specification int-abs%eq-same: ⊦ mkDecimal(i, j) = mkDecimal(i0, j) ↔ i = i0; from specification decimal%add-c: ⊦ i + j = j + i; from specification int-basic2%abs-01: ⊦ abs(abs(i)) = abs(i); from specification int-abs