| i→n(j) < # int2bytes(i), i < 0, ∀ i, j0. i→n(j0) < i→n(j) → i→n(j0) < # int2bytes(i) → i >> 8 * abs(j0) = bytes2int(firstn(# int2bytes(i) - i→n(j0), int2bytes(i))) ⊦ i >> 8 * abs(j) = bytes2int(firstn(# int2bytes(i) - i→n(j), int2bytes(i))), j = 0 |
⊦ i < 0 ∧ 8 ≤ j → i >> j = (i - 255) / 256 >> (j - 8)
i < 0 ∧ 8 ≤ 8 * abs(j), i→n(j) < # int2bytes(i), i < 0, ∀ i, j0. i→n(j0) < i→n(j) → i→n(j0) < # int2bytes(i) → i >> 8 * abs(j0) = bytes2int(firstn(# int2bytes(i) - i→n(j0), int2bytes(i))) ⊦ (i - 255) / 256 >> (8 * abs(j) - 8) = bytes2int(firstn(# int2bytes(i) - i→n(j), int2bytes(i))), j = 0
Used simplifier rules: ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i < j → (¬ ¬ j ≤ i ↔ false);% ⊦ 0 < i ∧ 0 ≤ j → ((* j) ≤ (* i) * i0 ↔ (i + j - 1) / i ≤ i0);% ⊦ 1 ≤ i ↔ 0 < i;% ⊦ 0 < abs(i) ↔ i ≠ 0;% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i * j = j * i; Used terms: 8 * abs(j), i