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