| 0 ≤ 2 ^ (8 * abs(j)) + i, i < 0, 2 ^ (8 * abs(j) - 1) + i < 0 ⊦ int2bytes(i).first = i2b(~1), i >> 8 * j = ~1, j = 0, i % 2 ^ (8 * abs(j)) = 0 |
⊦ i % 2 ^ abs(j) ≠ 0 ∧ i < ~(2 ^ (abs(j) - 1)) ∧ j ≠ 0 → i >> j = i / 2 ^ abs(j) - 1
i % 2 ^ abs(8 * j) ≠ 0 ∧ i < ~(2 ^ (abs(8 * j) - 1)) ∧ 8 * j ≠ 0, 0 ≤ 2 ^ (8 * abs(j)) + i, i < 0, 2 ^ (8 * abs(j) - 1) + i < 0 ⊦ int2bytes(i).first = i2b(~1), i / 2 ^ abs(8 * j) - 1 = ~1, j = 0, i % 2 ^ (8 * abs(j)) = 0
Used simplifier rules: ⊦ i * j = j * i;% ⊦ abs(i * j) = abs(i) * abs(j);% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i < ~ j ↔ i + j < 0;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i < j → (¬ ¬ j ≤ i ↔ false);% ⊦ i * j = 0 ↔ i = 0 ∨ j = 0; Used terms: 8 * j, i