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