| sgn(mklist(false, m) + false ' + true ' + bits) = false ' + true ' + bits, 2 + # bits = # bits1, # bits1 = # bitsand(bits1, false ' + true ' + bits), bits3.first, # bits3 ≤ m ⊦ bits3 + bits1 = [], bits2 + mklist(false, m) = [], bits1 = [], mklist(false, m) + bitsand(bits1, false ' + true ' + bits) = lastn(2 + # bits + m, fillsgn(2 + # bits + m, (bits2 + bitsand(mklist(false, m), bits3)) + bitsand(false ' + true ' + bits, bits1))), bits3 = [] |
⊦ ¬ true ∈ bits ∧ (# bits ≤ # bits0 ∨ bits0.first) ∧ bits ≠ [] ∧ bits0 ≠ [] → bitsand(bits, bits0) = bits
¬ true ∈ mklist(false, m) ∧ (# mklist(false, m) ≤ # bits3 ∨ bits3.first) ∧ mklist(false, m) ≠ [] ∧ bits3 ≠ [], sgn(mklist(false, m) + false ' + true ' + bits) = false ' + true ' + bits, 2 + # bits = # bits1, # bits1 = # bitsand(bits1, false ' + true ' + bits), bits3.first, # bits3 ≤ m ⊦ bits3 + bits1 = [], bits2 + mklist(false, m) = [], bits1 = [], mklist(false, m) + bitsand(bits1, false ' + true ' + bits) = lastn(2 + # bits + m, fillsgn(2 + # bits + m, (bits2 + mklist(false, m)) + bitsand(false ' + true ' + bits, bits1))), bits3 = []
Used simplifier rules: ⊦ ¬ true ∈ mklist(false, n);% ⊦ # mklist(boolvar, n) = n;% ⊦ m ≤ n → (n ≤ m ↔ m = n);% ⊦ mklist(boolvar, m) = [] ↔ m = 0;% ⊦ mklist(boolvar, 0) = [];% ⊦ [] + bits = bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ sgn(false ' + true ' + bits) = false ' + true ' + bits;% ⊦ bits + bits0 = bits + bits1 ↔ bits0 = bits1;% ⊦ m + n = n + m;% ⊦ bits + [] = bits;% ⊦ m ≤ 0 ↔ m = 0;% ⊦ # bits = 0 ↔ bits = []; Used terms: bits3, mklist(false, m)