| 8 < n0 * 8, ∀ n1. n1 < n0 * 8 → n1 % 8 = 0 → n1 = 0 ∨ bits2bytes(mklist(true, n1)) = mklist(i2b(~1), n1 / 8) ⊦ bits2bytes(firstn(n0 * 8 - 8, mklist(true, n0 * 8))) + i2b(bits2int(lastn(8, mklist(true, n0 * 8)))) ' = mklist(i2b(~1), n0), n0 = 0 |
⊦ m ≤ n → firstn(m, mklist(boolvar, n)) = mklist(boolvar, m)
n0 * 8 - 8 ≤ n0 * 8, 8 < n0 * 8, ∀ n1. n1 < n0 * 8 → n1 % 8 = 0 → n1 = 0 ∨ bits2bytes(mklist(true, n1)) = mklist(i2b(~1), n1 / 8) ⊦ bits2bytes(mklist(true, n0 * 8 - 8)) + i2b(bits2int(lastn(8, mklist(true, n0 * 8)))) ' = mklist(i2b(~1), n0), n0 = 0
Used simplifier rules: ⊦ m * n = n * m;% ⊦ m0 * m * n = (m0 * m) * n;% ⊦ m0 * m < m ↔ m0 = 0 ∧ m ≠ 0;% ⊦ ¬ m ≤ n ↔ n < m;%n0 ≤ n ⊦ n - n0 ≤ m ↔ n ≤ m + n0;% ⊦ m * n ≤ m1 * n + n ↔ ¬ ¬(m ≤ m1 + 1 ∨ n = 0);% ⊦ ¬ m + n < m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m; Used terms: n0 * 8, true, n0 * 8 - 8