| ¬((i * i) % 10 = 0 ∧ 2 * abs(i0) ≠ 0 ∧ i * i ≠ 0), 0 < i, ∀ i1, i0. i→n(i1) < i→n(i) → 0 ≤ i1 → mkDecimal(sqrt(mkDecimal(i1 * i1, 2 * abs(i0)).int), mkDecimal(i1 * i1, 2 * abs(i0)).scale / 2) = mkDecimal(i1, i0) ⊦ mkDecimal(sqrt(i * i), abs(2 * abs(i0)) / 2) = mkDecimal(i, i0), i = 0, i0 ≠ 0 ∧ i % 10 = 0 |
0 < i, ∀ i1, i0. i→n(i1) < i→n(i) → 0 ≤ i1 → mkDecimal(sqrt(mkDecimal(i1 * i1, 2 * abs(i0)).int), mkDecimal(i1 * i1, 2 * abs(i0)).scale / 2) = mkDecimal(i1, i0) ⊦ i = 0, mkDecimal(sqrt(i * i), abs(i0)) = mkDecimal(i, i0), i0 ≠ 0 ∧ i % 10 = 0, i % 10 = 0 ∧ i0 ≠ 0
Used simplifier rules: square-zero: ⊦ i * i = 0 ↔ i = 0; from specification int-mult%abs-07: ⊦ abs(i) = 0 ↔ i = 0; from specification int-abs%two-zero: ⊦ 2 * i = 0 ↔ i = 0; from specification int-mult%mod-square-10: ⊦ (i * i) % 10 = 0 ↔ i % 10 = 0; from specification int-gcd%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-01: ⊦ abs(abs(i)) = abs(i); from specification int-abs%abs-eqall: ⊦ abs(i * j) = abs(i) * abs(j); from specification int-mult