| mklist(boolvar, m).first ↔ boolvar, ∀ boolvar. sgn(mklist(boolvar, m)) = boolvar ' ⊦ sgn(mklist(boolvar, m)) = boolvar ', m = 0 |
mklist(boolvar, m) = boolvar0 + bits ∧ mklist(boolvar, m) ≠ [], boolvar0 ↔ boolvar, ∀ boolvar. sgn(mklist(boolvar, m)) = boolvar ' ⊦ sgn(mklist(boolvar, m)) = boolvar ', m = 0
Used simplifier rules: ⊦ mklist(boolvar, m) = [] ↔ m = 0;%bits ≠ [] ⊦ (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0; (elim) Used terms: mklist(boolvar, m), boolvar0, bits