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