| ⊦ (∃ dec0. dec0 * dec0 = dec) ↔ isSquare(dec.int) ∧ dec.scale % 2 = 0 |
isSquare(dec.int) ∧ dec.scale % 2 = 0 ⊦ ∃ dec0. dec0 * dec0 = dec
Used simplifier rules: square-isSquare: ⊦ isSquare((dec * dec).int); from specification decimal-simple-ops%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%square-scale-01: ⊦ (dec * dec).scale % 2 = 0; from specification decimal-simple-ops