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