| ¬(¬ 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 |
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 ∧ ¬ # bits < # bits0 ∧ ¬ bits0.first
Used simplifier rules: ⊦ ¬ m ≤ n ↔ n < m;