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