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