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