| ¬ i2b(b2i(by)) ≠ i2b(0), b2i(by) = 0, # bytes1 = # int2bytes(bytes2int(bytes1)), bytes2int(bytes1) < 0, bytes2int(bytes1) < ~1, ∀ bytes0. # bytes0 < #(bytes1 + by ') → true → # bytes0 = # int2bytes(bytes2int(bytes0)) → bytes0 = int2bytes(bytes2int(bytes0)) ⊦ bytes1 = [], bytes1 + by ' = int2bytes(bytes2int(bytes1)) + i2b(0) ', bytes2int(bytes1) * 256 = ~256 |
# bytes1 = # int2bytes(bytes2int(bytes1)), bytes2int(bytes1) < ~1, bytes2int(bytes1) < 0, ∀ bytes0. # bytes0 < #(bytes1 + i2b(0) ') → true → # bytes0 = # int2bytes(bytes2int(bytes0)) → bytes0 = int2bytes(bytes2int(bytes0)) ⊦ bytes1 = int2bytes(bytes2int(bytes1)), bytes1 = [], bytes2int(bytes1) * 256 = ~256
Used simplifier rules: ⊦ b2i(i2b(0)) = 0;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ bytes + by ' = bytes0 + by0 ' ↔ bytes = bytes0 ∧ by = by0;% ⊦ i2b(b2i(by)) = by;