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