| int2bits(i).first ∧ int2bits(i) ≠ [], i < 0 ⊦ ~ bits2uint(bitsinvert(true + int2bits(i).rest) +1) = i |
int2bits(i).first, i < 0 ⊦ bits2uint((false ' + bitsinvert(int2bits(i).rest))+1) + i = 0
Used simplifier rules: int2bits-not-empty: ⊦ int2bits(j) ≠ [];% ⊦ ~ i = j ↔ i + j = 0;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bitsinvert(true ' + bits) = false + bitsinvert(bits);% ⊦ boolvar + bits = boolvar ' + bits;