| 1 = # bytes1, 0 < bytes2int(bytes1) * 256 + band(b2i(by), 255), bytes2int(bytes1) * 256 + band(b2i(by), 255) ≤ 255, 127 < bytes2int(bytes1) * 256 + band(b2i(by), 255), ∀ bytes0. # bytes0 < #(bytes1 + by ') → true → # bytes0 = # int2bytes(bytes2int(bytes0)) → bytes0 = int2bytes(bytes2int(bytes0)) ⊦ bytes1 = [], bytes1 + by ' = i2b(0) ' + i2b(bytes2int(bytes1) * 256 + band(b2i(by), 255) - 256) ' |
bytes2int(bytes1) * 256 + band(b2i(by), 255) = i + 256, 1 = # bytes1, 0 < bytes2int(bytes1) * 256 + band(b2i(by), 255), bytes2int(bytes1) * 256 + band(b2i(by), 255) ≤ 255, 127 < bytes2int(bytes1) * 256 + band(b2i(by), 255), ∀ bytes0. # bytes0 < #(bytes1 + by ') → true → # bytes0 = # int2bytes(bytes2int(bytes0)) → bytes0 = int2bytes(bytes2int(bytes0)) ⊦ bytes1 = [], bytes1 + by ' = i2b(0) ' + i2b(i) '
Used simplifier rules: ⊦ i0 = i - j ↔ i = i0 + j; (elim) Used terms: bytes2int(bytes1) * 256 + band(b2i(by), 255), 256, i