| ¬(bits1 ≠ [] ∧ bits = true '), # bits1 = 1, # bits = 1, ∀ boolvar0, boolvar, bits1, bits0. # bits0 < 1 → # bits1 = # bits0 → bits0 = [] ∨ bitsand(boolvar ' + bits1, boolvar0 ' + bits0) = (boolvar ∧ boolvar0)' + bitsand(bits1, bits0) ⊦ bits1 = [], bits = [], bitsand(boolvar ' + bits1, boolvar0 ' + bits) = (boolvar ∧ boolvar0)' + bitsand(bits1, bits) |
# bits1 = 1, ∀ boolvar0, boolvar, bits1, bits0. # bits0 < 1 → # bits1 = # bits0 → bits0 = [] ∨ bitsand(boolvar ' + bits1, boolvar0 ' + bits0) = (boolvar ∧ boolvar0)' + bitsand(bits1, bits0) ⊦ bits1 = [], bitsand(boolvar ' + bits1, boolvar0 ' + false ') = (boolvar ∧ boolvar0)' + false '
Used simplifier rules: and-zero-03: ⊦ bits ≠ [] → bitsand(bits, false ') = false ';% ⊦ boolvar ' ≠ [];% ⊦ boolvar ' = boolvar0 ' ↔ boolvar ↔ boolvar0;% ⊦ # boolvar ' = 0 +1;% ⊦ # bits = 1 ∧ bits ≠ true ' → bits = false '; (forward)