| # bits1 < # bits0, # bits1 ≤ # bits0 + n0 ⊦ sgn(bitsand(mklist(boolvar, n0) + boolvar ' + bits0, false ' + bits1)) = sgn(bitsand(boolvar ' + bits0, false ' + bits1)), n0 = 0, # bits1 = # bits0, bits0 = [] |
n ≤ # bits ⊦ ∃ bits0, bits1. bits = bits0 + bits1 ∧ # bits1 = n
∃ bits3, bits2. bits0 = bits3 + bits2 ∧ # bits2 = 1 + # bits1, # bits1 < # bits0, # bits1 ≤ # bits0 + n0 ⊦ sgn(bitsand(mklist(boolvar, n0) + boolvar ' + bits0, false ' + bits1)) = sgn(bitsand(boolvar ' + bits0, false ' + bits1)), n0 = 0, # bits1 = # bits0, bits0 = []
Used simplifier rules: ⊦ m + 1 ≤ n ↔ m < n;% ⊦ m ≠ n → (¬ m < n ↔ n < m);% ⊦ m < n → ¬ n < m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m; Used terms: 1 + # bits1, bits0