| ((8 - # bits % 8) + # bits) % 8 = 0, 8 < (8 - # bits % 8) + # bits, 8 < # bits ⊦ bits = [], 8 + # bits = # bits % 8, # bits % 8 = 0, i2b(bits2int(firstn(# bits % 8, bits))) = i2b(bits2int(mklist(bits.first, 8 - # bits % 8) + firstn(8 - (8 - # bits % 8), bits))), bits2int(firstn(# bits % 8, bits)) = bits2int(mklist(bits.first, 8 - # bits % 8) + firstn(8 - (8 - # bits % 8), bits)) |
⊦ m0 ≤ n ∧ n ≤ m → m - (n - m0) = (m - n) + m0
# bits % 8 ≤ 8 ∧ 8 ≤ 8, ((8 - # bits % 8) + # bits) % 8 = 0, 8 < (8 - # bits % 8) + # bits, 8 < # bits ⊦ bits = [], 8 + # bits = # bits % 8, # bits % 8 = 0, i2b(bits2int(firstn(# bits % 8, bits))) = i2b(bits2int(mklist(bits.first, 8 - # bits % 8) + firstn((8 - 8) + # bits % 8, bits))), bits2int(firstn(# bits % 8, bits)) = bits2int(mklist(bits.first, 8 - # bits % 8) + firstn((8 - 8) + # bits % 8, bits))
Used simplifier rules: n ≠ 0 ⊦ m % n ≤ n; Used terms: # bits % 8, 8, 8