| # bits = 8 * m + n0, m < # bits2bytes(bits), # bits ≤ 8 * m + 8, n0 < 8, m + 1 < # bits2bytes(bits) ⊦ lastn(m + 1, bits2bytes(bits)) = bits2bytes(mklist(bits.first, 8 * m + 8 - # bits) + bits), n0 = 0, bits = [], m + 1 = # bits2bytes(bits) |
⊦ # bits % 8 ≠ 0 → # bits2bytes(bits) = # bits / 8 + 1
¬ # bits % 8 ≠ 0, # bits = 8 * m + n0, m < # bits2bytes(bits), # bits ≤ 8 * m + 8, n0 < 8, m + 1 < # bits2bytes(bits) ⊦ lastn(m + 1, bits2bytes(bits)) = bits2bytes(mklist(bits.first, 8 * m + 8 - # bits) + bits), n0 = 0, bits = [], m + 1 = # bits2bytes(bits)
# bits % 8 ≠ 0, # bits = 8 * m + n0, m < # bits / 8 + 1, # bits ≤ 8 * m + 8, n0 < 8, m + 1 < # bits / 8 + 1 ⊦ lastn(m + 1, bits2bytes(bits)) = bits2bytes(mklist(bits.first, 8 * m + 8 - # bits) + bits), n0 = 0, bits = [], m + 1 = # bits / 8 + 1
Used terms: bits