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