| 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) |
⊦ 0 ≤ i → abs(sqrt(i)) = sqrt(i)
0 ≤ i * i, sqrt(i * i) ≤ abs(i), abs(i) < abs(sqrt(i * i) + 1), sqrt(i * i) < abs(sqrt(i * i) + 1) ⊦ sqrt(i * i) = abs(i)
Used simplifier rules: square-gez: ⊦ 0 ≤ i * i; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%commutativity: ⊦ i * j = j * i; from specification int-mult Used terms: i * i