| bits0 = bits0.first ', 1 ≤ # bits, ∀ bits, bits1. # bits1 < 1 → # bits1 ≤ # bits → bits = [] ∨ bits1 = [] ∨ bitsxor(bits, bits1) = bits ∨ true ∈ bits1 ⊦ bits = [], bits0 = [], bitsxor(bits, bits0) = bits, true ∈ bits0 |
bits0 = boolvar + bits2, bits0 = boolvar ', 1 ≤ # bits, ∀ bits, bits1. # bits1 < 1 → # bits1 ≤ # bits → bits = [] ∨ bits1 = [] ∨ bitsxor(bits, bits1) = bits ∨ true ∈ bits1 ⊦ bits = [], bits0 = [], bitsxor(bits, bits0) = bits, true ∈ bits0
Used simplifier rules: ⊦ bits ≠ [] → ( (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0); (elim) Used terms: bits0, boolvar, bits2