| # bits % 8 ≠ 0 ∧ 8 < # bits, ((8 - # bits % 8) + # bits) % 8 = 0, 8 < (8 - # bits % 8) + # bits ⊦ 8 + # bits = # bits % 8, bits = [], # bits % 8 = 0, bits2bytes(firstn(# bits % 8, bits)) + bits2bytes(restn(# bits % 8, bits)) = bits2bytes(firstn(8, mklist(bits.first, 8 - # bits % 8) + bits)) + bits2bytes(restn(# bits % 8, bits)) |
((8 - # bits % 8) + # bits) % 8 = 0, 8 < (8 - # bits % 8) + # bits, 8 < # bits ⊦ bits2bytes(firstn(# bits % 8, bits)) = bits2bytes(firstn(8, mklist(bits.first, 8 - # bits % 8) + bits)), bits = [], 8 + # bits = # bits % 8, # bits % 8 = 0
Used simplifier rules: ⊦ # bits = 0 ↔ bits = [];% ⊦ m < n → n ≠ 0; (forward)% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ bytes + bytes0 = bytes1 + bytes0 ↔ bytes = bytes1;