| ∀ bits1, bits0. # bits0 < #(bits2 + false ') → true → bits0 = [] ∨ bitsor(bits0, true ' + bits1) = true ' + bits1 ∨ true ∈ bits0 ⊦ bits1 = [], bits2 = [], bitsor(bits2, true ' + bits1.butlast) + bits1.last ' = true ' + bits1, true ∈ bits2 |
bits1 = bits + boolvar ', ∀ bits1, bits0. # bits0 < #(bits2 + false ') → true → bits0 = [] ∨ bitsor(bits0, true ' + bits1) = true ' + bits1 ∨ true ∈ bits0 ⊦ bits1 = [], bits2 = [], bitsor(bits2, true ' + bits) + boolvar ' = true ' + bits1, true ∈ bits2
Used simplifier rules: bits ≠ [] ⊦ (boolvar ↔ bits.last) ∧ bits0 = bits.butlast ↔ bits = bits0 + boolvar '; (elim) Used terms: bits1, boolvar, bits