| ¬(byte2bits(by) ≠ [] ∧ byte2bits(by).first), bytes2bits(bytes).first ⊦ bitsinvert(bytes2bits(bytes)) + bitsinvert(byte2bits(by)) = [], bytes2bits(bytes) + byte2bits(by) = [], bytes = [], 255 = band(b2i(by), 255) + bits2uint(bitsinvert(byte2bits(by))) |
bytes2bits(bytes).first, 0 ≤ b2i(by) ⊦ bitsinvert(bytes2bits(bytes)) + bitsinvert(byte2bits(by)) = [], bytes2bits(bytes) + byte2bits(by) = [], bytes = [], 255 = bits2uint(bitsinvert(byte2bits(by))) + b2i(by)
Used simplifier rules: byte2bits-empty: ⊦ byte2bits(by) ≠ [];%byte2bits-first: ⊦ byte2bits(by).first ↔ b2i(by) < 0;% ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward)% ⊦ band(i, j) = band(j, i);% ⊦ band(i, band(i0, j)) = band(band(i, i0), j);% ⊦ b2i(by) % 256 = b2i(by);% ⊦ 0 ≤ i → band(i, 255) = i % 256;% ⊦ ¬ i < j ↔ j ≤ i;