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