| (bytes2bits(bytes) + byte2bits(by)).first ⊦ bitsinvert(bytes2bits(bytes)) + bitsinvert(byte2bits(by)) = [], bytes2bits(bytes) + byte2bits(by) = [], bytes = [], ~1 = bits2uint(bitsinvert(bytes2bits(bytes)) + bitsinvert(byte2bits(by))) + bits2int(bytes2bits(bytes)) * 256 + band(b2i(by), 255) |
⊦ bits ≠ [] → ((bits + bits0).first ↔ bits.first)
bytes2bits(bytes) ≠ [], bytes2bits(bytes).first ⊦ bitsinvert(bytes2bits(bytes)) + bitsinvert(byte2bits(by)) = [], bytes2bits(bytes) + byte2bits(by) = [], bytes = [], ~1 = bits2uint(bitsinvert(bytes2bits(bytes)) + bitsinvert(byte2bits(by))) + bits2int(bytes2bits(bytes)) * 256 + band(b2i(by), 255)
Used simplifier rules: bytes2bits-empty-01: ⊦ bytes2bits(bytes) = [] ↔ bytes = []; Used terms: byte2bits(by), bytes2bits(bytes)