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