| # bits = n0 + # bits0, n = # fillsgn(n, bits), # bits0 ≤ # bits, bits0.first, true ∈ bits, # bits < n, # bits0 < n ⊦ bits0 = [], bits = [], lastn(n, fillsgn(n, bits0)) = lastn(n, fillsgn(n, mklist(true, n0) + bits0)), false ∈ bits |
⊦ n ≤ # bits → fillsgn(n, bits) = bits
¬ n ≤ # bits0, # bits = n0 + # bits0, n = # fillsgn(n, bits), # bits0 ≤ # bits, bits0.first, true ∈ bits, # bits < n, # bits0 < n ⊦ bits0 = [], bits = [], lastn(n, fillsgn(n, bits0)) = lastn(n, fillsgn(n, mklist(true, n0) + bits0)), false ∈ bits
Used simplifier rules: ⊦ m < n → (n ≤ m ↔ false); Used terms: bits0, n