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