| ⊦ bits ≠ [] ∧ ¬ bits.first → bits2uint(bitsinvert(bits)) = 2 ^ n→i(# bits) + ~ bits2int(bits) - 1 |
⊦ bits = [], 2 ^ n→i(# bits) = bits2uint(bitsinvert(bits)) + bits2int(bits) + 1, bits.first
Used simplifier rules: ⊦ i - j = i0 ↔ i = i0 + j;% ⊦ i - j - i0 = i - j + i0;% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + ~ j = i - j;