| # bits1 < # bits ⊦ bitsand(bits, true ' + bits1) = (true ' + mklist(true, # bits - 1 + # bits1)) + bits1, bits = [], false ∈ bits |
# bits = n + 1 + # bits1 ∧ 1 + # bits1 ≤ # bits, # bits1 < # bits ⊦ bitsand(bits, true ' + bits1) = (true ' + mklist(true, n)) + bits1, bits = [], false ∈ bits
Used simplifier rules: ⊦ m + 1 ≤ n ↔ m < n;% ⊦ ¬ m < n ↔ n ≤ m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m;% ⊦ m ≤ n ∧ n < n0 → m < n0; (forward)% ⊦ m < n ∧ n ≤ n0 → m < n0; (forward)% ⊦ ¬ n < n;%n ≤ m ⊦ n0 = m - n ↔ m = n0 + n; (elim) Used terms: # bits, 1 + # bits1, n