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