| j + 1 = 2 ^ i * (i0 + 1) + j0, 2 ^ i * i0 + j0 < 0, j0 ≤ 0, j0 < i, i0 ≤ 0, i0 < i, 0 ≤ i, j < 0, 0 < i, abs(j0) < 2 ^ i ⊦ (i0 - 1) / 2 = (j + 1 - 2 ^ i * 2) / (2 ^ i * 2) |
i0 - 1 = i1 * 2 + j1 ∧ j1 ≤ 0 ∧ abs(j1) < 2 ∧ i1 ≤ 0 ∧ 0 < 2 ∧ i0 - 1 < 0, j + 1 = 2 ^ i * (i0 + 1) + j0, 2 ^ i * i0 + j0 < 0, j0 ≤ 0, j0 < i, i0 ≤ 0, i0 < i, 0 ≤ i, j < 0, 0 < i, abs(j0) < 2 ^ i ⊦ i1 = (j + 1 - 2 ^ i * 2) / (2 ^ i * 2)
Used simplifier rules: sub-ls: ⊦ i - j < i0 ↔ i < j + i0; from specification int-abs%lsone: ⊦ i < 1 ↔ i ≤ 0; from specification int-abs%⊦ 0 < j ∧ i < 0 → ( i0 = i / j ∧ j0 = i % j ↔ i = i0 * j + j0 ∧ j0 ≤ 0 ∧ abs(j0) < j ∧ i0 ≤ 0); (elim) Used terms: i0 - 1, 2, i1, j1