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