| j * i + j0 < j * i0 + j1, j0 < j, abs(j1) < j, 0 ≤ j0 ⊦ i ≤ i0, j * i + (j0 - j1) < j * i0 ∧ abs(j0 - j1) < j |
j * i + j0 - j1 < j * i0, abs(j1) < j, j0 < j, j * i + j0 < j * i0 + j1, i0 < i, 0 < j, abs(j1) < abs(j0 - j1), j0 < abs(j0 - j1), j ≤ abs(j0 - j1), 0 ≤ j0 ⊦ j0 = j1
Used simplifier rules: ⊦ i + 0 = i; (s)% ⊦ i - j = i0 ↔ i = i0 + j; (s)% ⊦ 0 < abs(i) ↔ i ≠ 0; (s)%forward-lsle: ⊦ i < j ∧ j ≤ j0 → i < j0; (forward) from specification int-abs% ⊦ i < j → (j ≤ i ↔ false); (as)% ⊦ i ≤ j - i0 ↔ i + i0 ≤ j; (s)% ⊦ i < j ↔ ¬ j ≤ i; (ss)%forward-lels: ⊦ i ≤ j ∧ j < j0 → i < j0; (forward) 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% ⊦ i + (j - i0) = i + j - i0; (s)% ⊦ i ≤ j ↔ ¬ j < i; (ss)