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