| 0 ≤ i * i → sqrt(i * i) ^2 ≤ i * i ∧ i * i < sqrt(i * i) +1 ^2 ⊦ sqrt(i * i) = abs(i) |
abs(sqrt(i * i)) ≤ abs(i), abs(i) < abs(sqrt(i * i) + 1), abs(sqrt(i * i)) < abs(sqrt(i * i) + 1) ⊦ sqrt(i * i) = abs(i)
Used simplifier rules: Square-def: ⊦ i ^2 = i * i;%forward-lels: ⊦ i ≤ j ∧ j < j0 → i < j0; (forward) from specification int-abs%square-ls: ⊦ i * i < j * j ↔ abs(i) < abs(j); from specification int-mult%succ-01: ⊦ i +1 = i + 1; from specification int-basic2%square-le: ⊦ i * i ≤ j * j ↔ abs(i) ≤ abs(j); from specification int-mult%commutativity: ⊦ i * j = j * i; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%square-gez: ⊦ 0 ≤ i * i; from specification int-mult