| mkDecimal(j * j, j0 * 2).scale = j0 * 2, j * j = mkDecimal(j * j, j0 * 2).int ⊦ mkDecimal(abs(j) * abs(j), 2 * abs(j0)) = mkDecimal(j * j, j0 * 2) |
⊦ mkDecimal(i, j) = mkDecimal(i, abs(j))
Used simplifier rules: abs-eqall: ⊦ abs(i * j) = abs(i) * abs(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%eq-same: ⊦ mkDecimal(i, j) = mkDecimal(i0, j) ↔ i = i0; from specification decimal%square-eq: ⊦ i * i = j * j ↔ abs(i) = abs(j); from specification int-mult%abs-01: ⊦ abs(abs(i)) = abs(i); from specification int-abs Used terms: j0 * 2, j * j