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