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