| # mklist(false, # bits1) = n + # bits0, # bits0 < # mklist(false, # bits1) ⊦ mklist(false, # bits1) = mklist(false, n) + mklist(false, # bits0), bits2 + mklist(false, # bits1) = [], bits0 = [], mklist(false, # bits1) = [], n = 0, bits0.first |
# bits1 = n + # bits0, # bits0 < # bits1 ⊦ n = 0, mklist(false, # bits1) = mklist(false, n) + mklist(false, # bits0), bits2 + mklist(false, # bits1) = [], bits0 = [], bits1 = [], bits0.first
Used simplifier rules: ⊦ # bits = 0 ↔ bits = [];% ⊦ mklist(boolvar, m) = [] ↔ m = 0;% ⊦ # mklist(boolvar, n) = n;