| 1 < # bits1 ∧ 1 < # bits, # bits1 = # bits, ∀ boolvar0, boolvar, bits1, bits0. # bits0 < # bits → # bits1 = # bits0 → bits0 = [] ∨ bitsand(boolvar ' + bits1, boolvar0 ' + bits0) = (boolvar ∧ boolvar0)' + bitsand(bits1, bits0) ⊦ bitsand(boolvar ' + bits1, boolvar0 ' + bits) = (boolvar ∧ boolvar0)' + (bitsand(bits1.butlast, bits.butlast) + (bits1.last ∧ bits.last)), bits = [] |
# bits1 = # bits, ∀ boolvar0, boolvar, bits1, bits0. # bits0 < # bits → # bits1 = # bits0 → bits0 = [] ∨ bitsand(boolvar ' + bits1, boolvar0 ' + bits0) = (boolvar ∧ boolvar0)' + bitsand(bits1, bits0) ⊦ bits1 = [], # bits = 1, bitsand(boolvar ' + bits1, boolvar0 ' + bits) = (boolvar ∧ boolvar0)' + bitsand(bits1.butlast, bits.butlast) + (bits1.last ∧ bits.last)', bits = []
Used simplifier rules: ⊦ # bits = 0 ↔ bits = [];% ⊦ 1 < m ↔ ¬(m = 0 ∨ m = 1);% ⊦ bits + boolvar = bits + boolvar ';