| mkDecimal(0, 0) ≤ dec0 ⊦ sqrt(dec0 * dec0, i) = dec0 |
⊦ isSquare(dec) → sqrt(dec, i) = mkDecimal(sqrt(dec.int), dec.scale / 2)
isSquare(dec0 * dec0), mkDecimal(0, 0) ≤ dec0 ⊦ mkDecimal(sqrt((dec0 * dec0).int), (dec0 * dec0).scale / 2) = dec0
Used simplifier rules: isSquare-square: ⊦ isSquare(dec * dec);%mult-a: ⊦ dec0 * dec1 * dec2 = (dec0 * dec1) * dec2; from specification decimal-simple-ops%mult-c: ⊦ dec_i * dec_j = dec_j * dec_i; from specification decimal-simple-ops Used terms: i, dec0 * dec0