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