| ⊦ bits2 = [], bits2 + bits1 = [], bits0 = [], lastn(# bits1, fillsgn(# bits1, bitsand(bits1, bits0))) = lastn(# bits1, fillsgn(# bits1, bitsand(bits2 + bits1, bits0))), ¬ # bits1 < # bits0 ∧ ¬ bits0.first |
⊦ # bits1 ≤ # bits0 ∧ bits1 ≠ [] ∧ bits1.first → bitsand(bits + bits0, bits1) = bits + 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))), ¬ # bits1 < # bits0 ∧ ¬ bits0.first
# bits0 ≤ # bits1 ∧ bits0 ≠ [] ∧ bits0.first ⊦ bits2 = [], bits2 + bits1 = [], bits0 = [], lastn(# bits1, fillsgn(# bits1, bitsand(bits1, bits0))) = lastn(# bits1, fillsgn(# bits1, bits2 + bitsand(bits1, bits0))), ¬ # bits1 < # bits0 ∧ ¬ bits0.first
Used terms: bits0, bits1, bits2