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