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