| 0 ≤ i * i → sqrt(i * i) ^2 ≤ i * i ∧ i * i < sqrt(i * i) +1 ^2 ⊦ sqrt(i * i) = abs(i) |
abs(i) < abs(sqrt(i * i) + 1), abs(sqrt(i * i)) < abs(sqrt(i * i) + 1), abs(sqrt(i * i)) ≤ abs(i) ⊦ 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% ⊦ i * i < j * j ↔ abs(i) < abs(j); (s)% ⊦ i +1 = i + 1; (s)% ⊦ i * i ≤ j * j ↔ abs(i) ≤ abs(j); (s)%commutativity: ⊦ i * j = j * i; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult% ⊦ 0 ≤ i * i; (s)