| 2 ≠ 0, ∃ j0. dec.scale = j0 * 2, j * j = dec.int ⊦ mkDecimal(abs(j) * abs(j), 2 * abs(dec.scale) / 2) = dec |
j * j = dec.int, dec.scale = j0 * 2 ⊦ mkDecimal(abs(j) * abs(j), 2 * abs(j0)) = dec
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%abs-eqall: ⊦ abs(i * j) = abs(i) * abs(j); from specification int-mult