| 2 * (i1 * 2 + j1) + j0 = i0 * 4 + j2, abs(j2) < abs(2 * j1 + j0), 4 ≤ abs(2 * j1 + j0), i0 * 4 + j2 < 0, i0 ≤ 0, j2 ≤ 0, i1 * 2 + j1 < 0, i1 ≤ 0, j1 ≤ 0, i0 * 4 + j2 < ~3, abs(j0) < 2, j0 ≤ 0, abs(j1) < 2, abs(j2) < 4 ⊦ j0 = ~1, i1 = i0, 2 * j1 + j0 = 0 |
Used simplifier rules: nummult-le-02: ⊦ 0 < i ∧ 0 ≤ j → ((* j) ≤ (* i) * i0 ↔ (i + j - 1) / i ≤ i0);%lels-02: ⊦ i ≠ j → (i ≤ j ↔ i < j); from specification int-abs%abs-08: ⊦ i < 0 → abs(i) = ~ i; from specification int-abs%neg-13: ⊦ ~ i < j ↔ 0 < j + i; from specification int-abs%numls-02: ⊦ (* j) < i0 + (* j0) ↔ j - j0 < i0; from specification int-abs%minus-one: ⊦ i < 0 → (~2 < i ↔ i = ~1); from specification int-basic1%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2%add-zero-rev: ⊦ 0 + i = i; from specification int-basic2%zero-neq-01: ⊦ 0 < i → (i * j = 0 ↔ j = 0); from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%commutativity: ⊦ i * j = j * i; from specification int-mult%abs-eqall: ⊦ abs(i * j) = abs(i) * abs(j); from specification int-mult%lels-03: ⊦ i < j → (¬ ¬ j ≤ i ↔ false); from specification int-abs Used formulas: j0 = 0