| # 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 |
⊦ # bits = 8 → byte2bits(i2b(bits2int(bits))) = bits
# lastn(8, bits) ≠ 8, # 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
# lastn(8, bits) = 8, # bits % 8 = 0, 8 < # bits, ∀ bits0. # bits0 < # bits → # bits0 % 8 = 0 → bits0 = [] ∨ bytes2bits(bits2bytes(bits0)) = bits0 ⊦ bits = [], bytes2bits(bits2bytes(firstn(# bits - 8, bits))) + lastn(8, bits) = bits
Used terms: lastn(8, bits)