| ⊦ boolvar ∧ bits.first ∧ bits ≠ [] → bits2int(bits + boolvar ') = ~(bits2uint(bitsinvert(bits.rest)) * 2 + 1) |
bits.first ⊦ bits = [], ~1 = bits2uint(bitsinvert(bits.rest)) * 2 + bits2int(bits + true ')
Used simplifier rules: ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ (* j) = i0 + (* j0) ↔ j - j0 = i0;% ⊦ ~ i = j ↔ i + j = 0;