| ((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(# bits % 8, bits))), bits2int(firstn(# bits % 8, bits)) = bits2int(mklist(bits.first, 8 - # bits % 8) + firstn(# bits % 8, bits)) |
⊦ bits ≠ [] ∧ (bits.first ↔ boolvar) → bits2int(mklist(boolvar, n) + bits) = bits2int(bits)
Used simplifier rules: ⊦ firstn(n, bits) = [] ↔ n = 0;% ⊦ n ≠ 0 ∧ bits ≠ [] → (firstn(n, bits).first ↔ bits.first); Used terms: firstn(# bits % 8, bits), 8 - # bits % 8, bits.first