| ¬ abs(i) < abs(256), i % 256 = 0, i→n(j) < # int2bytes(i), i < 0, ~256 ≤ i, ∀ 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))) ⊦ j = 0, i / 256 >> 8 * (abs(j) - 1) = bytes2int(firstn(# int2bytes(i) - i→n(j), int2bytes(i))) |
i→n(j) < 2, ∀ 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))) ⊦ ~1 >> 8 * (abs(j) - 1) = bytes2int(firstn(2 - i→n(j), i2b(~1) ' + i2b(0) ')), j = 0
Used simplifier rules: int2bytes-minus-256: ⊦ int2bytes(~256) = i2b(~1) ' + i2b(0) ';% ⊦ m < n → n ≠ 0; (forward)% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ # by ' = 0 +1;% ⊦ #(bytes + bytes0) = # bytes + # bytes0;% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i ≤ j → (j ≤ i ↔ i = j);% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ (* j) < i0 + (* j0) ↔ j - j0 < i0;% ⊦ ~ i < j ↔ 0 < j + i;% ⊦ i < 0 → abs(i) = ~ i;