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