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