| bytes2bits(bytes).first ⊦ bitsinvert(bytes2bits(bytes)) + bitsinvert(byte2bits(by)) = [], bytes2bits(bytes) + byte2bits(by) = [], bytes = [], (bits2uint(bitsinvert(bytes2bits(bytes))) + 1) * 256 = (bits2uint(bitsinvert(bytes2bits(bytes)) + bitsinvert(byte2bits(by))) + band(b2i(by), 255)) + 1 |
⊦ # bits0 ≠ 0 → bits2uint(bits + bits0) = bits2uint(bits) * 2 ^ n→i(# bits0) + bits2uint(bits0)
# bitsinvert(byte2bits(by)) ≠ 0, bytes2bits(bytes).first ⊦ bitsinvert(bytes2bits(bytes)) + bitsinvert(byte2bits(by)) = [], bytes2bits(bytes) + byte2bits(by) = [], bytes = [], (bits2uint(bitsinvert(bytes2bits(bytes))) + 1) * 256 = ((bits2uint(bitsinvert(bytes2bits(bytes))) * 2 ^ n→i(# bitsinvert(byte2bits(by))) + bits2uint(bitsinvert(byte2bits(by)))) + band(b2i(by), 255)) + 1
Used simplifier rules: byte2bits-length: ⊦ # byte2bits(by) = 8;% ⊦ # bitsinvert(bits) = # bits; Used terms: bitsinvert(byte2bits(by)), bitsinvert(bytes2bits(bytes))