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