| # bits % 8 ≠ 0, # bits = 8 * m + n0, m < # bits / 8 + 1, # bits ≤ 8 * m + 8, n0 < 8, m + 1 < # bits / 8 + 1 ⊦ lastn(m + 1, bits2bytes(bits)) = bits2bytes(mklist(bits.first, 8 * m + 8 - # bits) + bits), n0 = 0, bits = [], m + 1 = # bits / 8 + 1 |
# bits = 8 * m + n0, n0 < 8, # bits ≤ 8 * m + 8, m < # bits / 8 ⊦ m = # bits / 8, bits = [], n0 = 0, lastn(m + 1, bits2bytes(bits)) = bits2bytes(mklist(bits.first, 8 * m + 8 - # bits) + bits), # bits % 8 = 0
Used simplifier rules: ⊦ m < n → n ≠ 0;% ⊦ m < n → n ≠ 0; (forward)% ⊦ m * n = n * m;% ⊦ m + n < m + n0 ↔ n < n0;% ⊦ m ≠ n → (m < n + 1 ↔ m < n);% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = m + n0 ↔ n = n0;