| 8 < # bits, # bits % 8 = 0, 8 < # bits, ∀ bits0. # bits0 < # bits → # bits0 % 8 = 0 → bits0 = [] ∨ bytes2bits(bits2bytes(bits0)) = bits0 ⊦ bits = [], bytes2bits(bits2bytes(firstn(# bits - 8, bits)) + i2b(bits2int(lastn(8, bits)))) = bits |
# bits % 8 = 0, 8 < # bits, ∀ bits0. # bits0 < # bits → # bits0 % 8 = 0 → bits0 = [] ∨ bytes2bits(bits2bytes(bits0)) = bits0 ⊦ bits = [], bytes2bits(bits2bytes(firstn(# bits - 8, bits))) + byte2bits(i2b(bits2int(lastn(8, bits)))) = bits
Used simplifier rules: bytes2bits-append: ⊦ bytes2bits(bytes + bytes0) = bytes2bits(bytes) + bytes2bits(bytes0);%bytes2bits-one: ⊦ bytes2bits(by ') = byte2bits(by);% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ bytes + by = bytes + by ';