| i1 + 2 = i2 * 2 + j0, i2 = i0 + 1, i1 < ~3, i1 < 0, abs(j0) < 2, 0 < 2, i1 + 2 < 0, j0 ≤ 0, i2 ≤ 0 ⊦ i0 / 2 = i1 / 4 |
i0 < 0, 2 * i0 + j0 < ~3, abs(j0) < 2, 2 * i0 + j0 < 0, j0 ≤ 0 ⊦ i0 / 2 = (2 * i0 + j0) / 4
Used simplifier rules: forward-le-02: ⊦ j < i ∧ i ≤ 0 → j < 0; (forward) from specification int-abs%forward-le-04: ⊦ j ≤ i ∧ i ≤ 0 → j ≤ 0; (forward) from specification int-abs%j0 ≠ 0, j < j0 ⊦ i < (* j) → i < (* j0); (s)% ⊦ i + (* j) < (* j0) ↔ i < j0 - j; (s)% ⊦ i ≤ ~1 ↔ i < 0; (s)% ⊦ i + (* j) ≤ (* j0) ↔ i ≤ j0 - j; (s)%commutativity: ⊦ i * j = j * i; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%add-c: ⊦ i + j = j + i; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2% ⊦ i * (i0 + 1) + j = i + j0 ↔ i * i0 + j = j0; (s)