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