| (i * 10 ^ (j0 - 1) * 10) % 10 = 0 ∧ abs(j) + j0 ≠ 0, 0 ≤ j0, 0 < j0, ∀ j1, i, j. i→n(j1) < i→n(j0) → 0 ≤ j1 → mkDecimal(i, j) = mkDecimal(i * 10 ^ j1, abs(j) + j1) ⊦ mkDecimal(i, j) = mkDecimal((i * 10 ^ (j0 - 1) * 10) / 10, abs(abs(j) + j0) - 1) |
0 ≤ j0, 0 < j0, ∀ j1, i, j. i→n(j1) < i→n(j0) → 0 ≤ j1 → mkDecimal(i, j) = mkDecimal(i * 10 ^ j1, abs(j) + j1) ⊦ abs(j) + j0 = 0, mkDecimal(i, j) = mkDecimal(i * 10 ^ (j0 - 1), abs(abs(j) + j0) - 1)
Used simplifier rules: one: ⊦ 1 * i = i; from specification int-mult%div-mult-num: j ≠ 0, j0 % j = 0 ⊦ (i * (* j0)) / (* j) = i * j0 / j; from specification int-div%commutativity: ⊦ i * j = j * i; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%mod-zero-num: i0 % j = 0, j ≠ 0 ⊦ (i * (* i0)) % (* j) = 0; from specification int-div