| # bits0 % 8 = 0, 8 < # bits0, 8 < # bits + # bits0, ∀ bits1, bits2. # bits2 + # bits1 < # bits + # bits0 → # bits1 % 8 = 0 → bits2 = [] ∨ bits1 = [] ∨ bits2bytes(bits2 + bits1) = bits2bytes(bits2) + bits2bytes(bits1) ⊦ bits0 = [], bits = [], bits2bytes(firstn(# bits + (# bits0 - 8), bits + bits0)) = bits2bytes(bits) + bits2bytes(firstn(# bits0 - 8, bits0)) |
⊦ firstn(# bits + n, bits + bits0) = bits + firstn(n, bits0)
# bits0 % 8 = 0, 8 < # bits0, 8 < # bits + # bits0, ∀ bits1, bits2. # bits2 + # bits1 < # bits + # bits0 → # bits1 % 8 = 0 → bits2 = [] ∨ bits1 = [] ∨ bits2bytes(bits2 + bits1) = bits2bytes(bits2) + bits2bytes(bits1) ⊦ bits0 = [], bits = [], bits2bytes(bits + firstn(# bits0 - 8, bits0)) = bits2bytes(bits) + bits2bytes(firstn(# bits0 - 8, bits0))
Used terms: bits0, # bits0 - 8, bits