| # 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, bits), bits = [] |
⊦ 1 < # bits ∧ 1 < # bits0 → bitsand(bits, bits0) = bitsand(bits.butlast, bits0.butlast) + (bits.last ∧ bits0.last)
¬(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, bits), bits = []
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 = []
Used terms: bits, bits1