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