| ¬(# bits % 8 ≠ 0 ∧ 8 < # bits), ((8 - # bits % 8) + # bits) % 8 = 0, 8 < (8 - # bits % 8) + # bits ⊦ 8 + # bits = # bits % 8, bits = [], # bits % 8 = 0, bits2bytes(bits) = bits2bytes(firstn(8, mklist(bits.first, 8 - # bits % 8) + bits)) + bits2bytes(restn(# bits % 8, bits)) |
((8 - # bits % 8) + # bits) % 8 = 0, # bits ≤ 8, 8 < (8 - # bits % 8) + # bits ⊦ i2b(bits2int(bits)) ' = bits2bytes(firstn(8, mklist(bits.first, 8 - # bits % 8) + bits)) + bits2bytes(restn(# bits % 8, bits)), # bits % 8 = 0, bits = [], 8 + # bits = # bits % 8, 8 - # bits % 8 = 0
Used simplifier rules: bits2bytes-base: ⊦ # bits ≤ 8 → bits2bytes(bits) = i2b(bits2int(bits)) ';% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m < m + n ↔ n ≠ 0;% ⊦ m ≤ n ∧ n < n0 → m < n0; (forward)% ⊦ ¬ m < n ↔ n ≤ m;