| # bits < 8 * n, # bits2bytes(bits) < n, bits.first ⊦ # bits % 8 = 0, n * 8 = # bits, bits = [], mklist(i2b(~1), n - # bits2bytes(bits)) + bits2bytes(bits) = bits2bytes(mklist(true, n * 8 - # bits) + bits) |
# bits = m * 8 + n0 ∧ n0 < 8 ∧ 8 ≠ 0, # bits < 8 * n, # bits2bytes(bits) < n, bits.first ⊦ n0 = 0, n * 8 = # bits, bits = [], mklist(i2b(~1), n - # bits2bytes(bits)) + bits2bytes(bits) = bits2bytes(mklist(true, n * 8 - # bits) + bits)
Used simplifier rules: n ≠ 0 ⊦ m0 = m / n ∧ n0 = m % n ↔ m = m0 * n + n0 ∧ n0 < n; (elim) Used terms: # bits, 8, m, n0