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