| # bits1 ≤ # bitsand(bits3 + bits, bits1), # bits = # bits1, # bits1 = # bitsand(bits1, bits) ⊦ lastn(# bits1, bitsand(bits3 + bits, bits1)) = bitsand(bits1, bits), bits3 = [], bits1 = [], bits3 + bits = [], bits2 = [], bits2 + bits1 = [] |
⊦ # bits1 ≤ # bits0 ∧ bits1 ≠ [] ∧ ¬ bits1.first → bitsand(bits + bits0, bits1) = bitsand(bits0, bits1)
¬(# bits1 ≤ # bits ∧ bits1 ≠ [] ∧ ¬ bits1.first), # bits1 ≤ # bitsand(bits3 + bits, bits1), # bits = # bits1, # bits1 = # bitsand(bits1, bits) ⊦ lastn(# bits1, bitsand(bits3 + bits, bits1)) = bitsand(bits1, bits), bits3 = [], bits1 = [], bits3 + bits = [], bits2 = [], bits2 + bits1 = []
# bits1 ≤ # bits ∧ bits1 ≠ [] ∧ ¬ bits1.first, # bits1 ≤ # bitsand(bits, bits1), # bits = # bits1, # bits1 = # bitsand(bits1, bits) ⊦ lastn(# bits1, bitsand(bits, bits1)) = bitsand(bits1, bits), bits3 = [], bits1 = [], bits3 + bits = [], bits2 = [], bits2 + bits1 = []
Used terms: bits1, bits, bits3