| boolvar ' + bits0 = mklist(boolvar, n) + sgn(boolvar ' + bits0), # sgn(boolvar ' + bits0) ≤ 1 + # bits0 ⊦ #(boolvar ' + bits0) = #(mklist(boolvar, n) + sgn(boolvar ' + bits0)), mklist(boolvar, 1 + # bits0 - # sgn(boolvar ' + bits0)) + sgn(boolvar ' + bits0) = boolvar ' + bits0, ¬ boolvar ∈ sgn(boolvar ' + bits0) ∧ n = 0 |
Used simplifier rules: sgn-mklist: ⊦ sgn(mklist(boolvar, n) + sgn(boolvar ' + bits)) = sgn(boolvar ' + bits);% ⊦ #(bits + bits0) = # bits + # bits0;% ⊦ # mklist(boolvar, n) = n;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ m + n = m + n0 ↔ n = n0;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m;