| i / 256 >> 8 * (abs(j) - 1) = bytes2int(firstn((# int2bytes(i / 256) - i→n(j)) + 1, int2bytes(i / 256))), 1 ≤ i→n(j), 0 < i, i→n(j) ≤ # int2bytes(i / 256), 255 < i, 0 ≤ i, 1 ≤ # int2bytes(i / 256), ∀ 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 / 256 >> 8 * (abs(j) - 1) = bytes2int(firstn((# int2bytes(i / 256) - i→n(j)) + 1, int2bytes(i / 256) + i2b(i % 256) ')), j = 0 |
⊦ n < # bytes → firstn(n, bytes) = firstn(n, bytes.butlast)
Used simplifier rules: ⊦ (bytes + by ').butlast = bytes;% ⊦ #(bytes + bytes0) = # bytes + # bytes0;% ⊦ # by ' = 0 +1;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ m + n < m + n0 ↔ n < n0;% ⊦ m ≤ n → (n < m ↔ false);% ⊦ ¬ m ≤ n ↔ n < m;%n0 ≤ n ⊦ n - n0 < m ↔ n < m + n0;% ⊦ ¬ m < n ↔ n ≤ m;% ⊦ m + m0 ≤ m ↔ m0 = 0;% ⊦ i→n(i) = 0 ↔ i = 0;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m; Used terms: int2bytes(i / 256) + i2b(i % 256) ', (# int2bytes(i / 256) - i→n(j)) + 1