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