| (bytes2bits(bytes) + byte2bits(by)).first ∧ bytes2bits(bytes) + byte2bits(by) ≠ [], (bytes2bits(bytes) + byte2bits(by)).first ⊦ bytes = [], ~ bits2uint(bitsinvert(bytes2bits(bytes) + byte2bits(by)) +1) = bits2int(bytes2bits(bytes)) * 256 + band(b2i(by), 255) |
(bytes2bits(bytes) + byte2bits(by)).first ⊦ bytes2bits(bytes) + byte2bits(by) = [], bytes = [], bits2uint((bitsinvert(bytes2bits(bytes)) + bitsinvert(byte2bits(by)))+1) + bits2int(bytes2bits(bytes)) * 256 + band(b2i(by), 255) = 0
Used simplifier rules: ⊦ ~ i = j ↔ i + j = 0;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bitsinvert(bits + bits0) = bitsinvert(bits) + bitsinvert(bits0);