| 0 ≤ i1 + j1, abs(j1) < abs(i1), i1 + j1 < abs(i1), j * i + i1 ≤ j * i0, 0 < j, j ≤ abs(i1), i0 < i, abs(j1) < j, i1 + j1 < j ⊦ j * (i + 1) + (i1 - j) ≤ j * i0 ∧ abs(i1 - j) < j, i1 = 0 |
0 ≤ i1 + j1, abs(j1) < abs(i1), i1 + j1 < abs(i1), j * i + i1 ≤ j * i0, 0 < j, j ≤ abs(i1), i0 < i, abs(j1) < j, i1 + j1 < j ⊦ i1 = 0, j * (i + 1) + i1 ≤ j + j * i0 ∧ abs(i1 - j) < j
Used simplifier rules: sub-le: ⊦ i - j ≤ i0 ↔ i ≤ j + i0; from specification int-abs%add-c: ⊦ i + j = j + i; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%sub-add-01: ⊦ i + (j - i0) = i + j - i0; from specification int-abs