| 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) |
sqrt(i * i) < abs(sqrt(i * i) + 1), sqrt(i * i) < abs(i), abs(i) < abs(sqrt(i * i) + 1), sqrt(i * i) < ~1 ⊦ sqrt(i * i) = abs(i)
Used simplifier rules: add-c: ⊦ i + j = j + i; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%numls-03: ⊦ i + (* j) < (* j0) ↔ i < j0 - j; from specification int-abs%absls-06: ⊦ i < abs(i) ↔ i < 0; from specification int-abs%succ-01: ⊦ i +1 = i + 1; from specification int-basic2%trans: ⊦ i < j ∧ j < j0 → i < j0; (forward) from specification int-basic1%lf-01: ⊦ i < j ∧ j < i0 → i +1 < i0; (forward) from specification int-basic1%lels-02: ⊦ i ≠ j → (i ≤ j ↔ i < j); from specification int-abs%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