| # bits ≤ n ∧ bits ≠ [], # bits < n ⊦ bitsinvert(mklist(bits.first, n - # bits) + bits) = fillsgn(n, bitsinvert(bits)), bits = [] |
# bits < n ⊦ bits = [], mklist(¬ bits.first, n - # bits) + bitsinvert(bits) = fillsgn(n, bitsinvert(bits))
Used simplifier rules: inv-append: ⊦ bitsinvert(bits + bits0) = bitsinvert(bits) + bitsinvert(bits0);%inv-mklist: ⊦ bitsinvert(mklist(boolvar, n)) = mklist(¬ boolvar, n);% ⊦ m < n → m ≤ n;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;