| ∀ boolvar. m = 0 ∨ sgn(mklist(boolvar, m)) = boolvar ' ⊦ m +1 = 0 ∨ sgn(mklist(boolvar, m +1)) = boolvar ' |
∀ boolvar. sgn(mklist(boolvar, m)) = boolvar ' ⊦ sgn(boolvar ' + mklist(boolvar, m)) = boolvar ', m = 0
Used simplifier rules: sgn-one: ⊦ sgn(boolvar ') = boolvar ';% ⊦ boolvar ' = boolvar0 ' ↔ boolvar ↔ boolvar0;% ⊦ bits + [] = bits;% ⊦ mklist(boolvar, 0) = [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ mklist(boolvar, n) + boolvar ' = boolvar ' + mklist(boolvar, n);% ⊦ mklist(boolvar, 1) = boolvar ';% ⊦ mklist(boolvar, m + n) = mklist(boolvar, m) + mklist(boolvar, n);% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + 1 ≠ 0;% ⊦ m +1 = m + 1;