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