| ⊦ bits.first ∧ bits ≠ [] → bits2int(sgn(true ' + bits)) = bits2int(bits) |
bits ≠ [], bits.first ↔ boolvar ⊦ sgn(boolvar ' + bits) = sgn(bits)
Used simplifier rules: bits2int-sgn: ⊦ bits2int(sgn(bits)) = bits2int(bits);%bits2int-neg: ⊦ bits2int(true ' + bits) = ~ bits2uint(bitsinvert(true + bits) +1);%bits2int-sgn: ⊦ bits2int(sgn(bits)) = bits2int(bits);%bits2int-inj: ⊦ bits ≠ [] ∧ bits0 ≠ [] → (bits2int(bits) = bits2int(bits0) ↔ sgn(bits) = sgn(bits0));% ⊦ boolvar + bits = boolvar ' + bits;% ⊦ bitsinvert(true ' + bits) = false + bitsinvert(bits);% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ ~ i = j ↔ i + j = 0; Used terms: bits, true