| ⊦ i < 0 → bits2int(sgn(true ' + int2bits(i))) = i |
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);%int2bits-not-empty: ⊦ int2bits(j) ≠ [];%int2bits-first-01: ⊦ j < 0 → int2bits(j).first;%int2bits-first-01: ⊦ j < 0 → int2bits(j).first;%int2bits-sgn: ⊦ sgn(int2bits(i)) = int2bits(i);%int2int-inj: ⊦ bits2int(int2bits(i)) = i;%int2bits-not-empty: ⊦ int2bits(j) ≠ [];% ⊦ boolvar + bits = boolvar ' + bits;% ⊦ bitsinvert(true ' + bits) = false + bitsinvert(bits);% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ ~ i = j ↔ i + j = 0; Used terms: int2bits(i), true