| j0 < 2, 0 ≤ i0, 0 ≤ j0, 0 ≤ i ⊦ ((i0 * 2 + j0) % (2 ^ i * 2)) / 2 = i0 % 2 ^ i |
j0 < 2, 0 ≤ i0, 0 ≤ j0, 0 ≤ i ⊦ j0 = 0, ((i0 * 2 + j0) % (2 ^ i * 2)) / 2 = i0 % 2 ^ i
Used simplifier rules: two-zero: ⊦ 0 ≤ j → 2 ^ j ≠ 0;%add-zero: ⊦ i + 0 = i; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2%mod-mult-02: 0 ≠ j, i0 ≠ 0 ⊦ (i0 * i) % (i0 * j) = i % j * i0; from specification int-div%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%commutativity: ⊦ i * j = j * i; from specification int-mult%div-mult-03: j ≠ 0 ⊦ (i * j) / j = i; from specification int-div Used formulas: j0 = 0