| # firstn(8, mklist(bits.first, 8 - # bits % 8) + bits) ≤ 8, ((8 - # bits % 8) + # bits) % 8 = 0, 8 < (8 - # bits % 8) + # bits, 8 < # bits ⊦ i2b(bits2int(firstn(# bits % 8, bits))) ' = i2b(bits2int(firstn(8, mklist(bits.first, 8 - # bits % 8) + bits))) ', bits = [], 8 + # bits = # bits % 8, # bits % 8 = 0 |
((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(firstn(8, mklist(bits.first, 8 - # bits % 8) + bits))), bits2int(firstn(# bits % 8, bits)) = bits2int(firstn(8, mklist(bits.first, 8 - # bits % 8) + bits))
Used simplifier rules: ⊦ i2b(i) ≠ i2b(j) → i ≠ j; (forward)% ⊦ # firstn(n, bits) = n;% ⊦ by ' = by0 ' ↔ by = by0;