| mklist(boolvar, m) = boolvar0 + bits ∧ mklist(boolvar, m) ≠ [], boolvar0 ↔ boolvar, ∀ boolvar. sgn(mklist(boolvar, m)) = boolvar ' ⊦ sgn(mklist(boolvar, m)) = boolvar ', m = 0 |
mklist(boolvar, m) = boolvar ' + bits, ∀ boolvar. sgn(mklist(boolvar, m)) = boolvar ' ⊦ m = 0, sgn(mklist(boolvar, m)) = boolvar '
Used simplifier rules: ⊦ boolvar ∈ mklist(boolvar, m) ↔ m ≠ 0;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ' + bits = bits0 → boolvar ∈ bits0; (forward)% ⊦ mklist(boolvar, m) = [] ↔ m = 0;% ⊦ boolvar + bits = boolvar ' + bits;