| # 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 |
bytes2bits(bytes).first ⊦ bitsinvert(bytes2bits(bytes)) + bitsinvert(byte2bits(by)) = [], bytes2bits(bytes) + byte2bits(by) = [], bytes = [], 255 = band(b2i(by), 255) + bits2uint(bitsinvert(byte2bits(by)))
Used simplifier rules: byte2bits-length: ⊦ # byte2bits(by) = 8;% ⊦ i * j = j * i;% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ (* j) = i0 + (* j0) ↔ j - j0 = i0;% ⊦ (i + j) * i0 = j0 + j * i0 ↔ i * i0 = j0;% ⊦ # bitsinvert(bits) = # bits;