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