| ∀ bits1, bits0. # bits0 < # bits → true → bits0 = [] ∨ bitsor(bits0, false ' + bits1) = bits0 ∨ false ∈ bits0 ⊦ bitsor(bits, false ' + bits1) = bits, bits = [], false ∈ bits, # bits ≠ 1 ∧ bits1 ≠ [] |
⊦ bits0 ≠ [] ∧ bits = false ' → bitsor(bits, bits0) = bits0
¬(false ' + bits1 ≠ [] ∧ bits = false '), ∀ bits1, bits0. # bits0 < # bits → true → bits0 = [] ∨ bitsor(bits0, false ' + bits1) = bits0 ∨ false ∈ bits0 ⊦ bitsor(bits, false ' + bits1) = bits, bits = [], false ∈ bits, # bits ≠ 1 ∧ bits1 ≠ []
Used simplifier rules: ⊦ bits = bits + bits0 ↔ bits0 = [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ' ≠ [];% ⊦ boolvar ' + bits ≠ [];% ⊦ boolvar ∈ boolvar0 ' ↔ boolvar ↔ boolvar0; Used terms: false ' + bits1, bits