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