| # bits0 = 1 + # bits1, # bits1 < # bits0, # bits1 < # bits2 + # bits0 ⊦ bits2 + bits0 = [], # bits1 = # bits2 + # bits0, bits0 = [], bits1 = [], sgn(bitsand(bits0.rest, false ' + bits1)) = sgn(bitsand(bits0, false ' + bits1)) |
bits0 = boolvar + bits, # bits0 = 1 + # bits1, # bits1 < # bits0, # bits1 < # bits2 + # bits0 ⊦ bits2 + bits0 = [], # bits1 = # bits2 + # bits0, bits0 = [], bits1 = [], sgn(bitsand(bits, false ' + bits1)) = sgn(bitsand(bits0, false ' + bits1))
Used simplifier rules: bits ≠ [] ⊦ (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0; (elim) Used terms: bits0, boolvar, bits