| bits2uint(bitsinvert(uint2bits(i))) = 2 ^ n→i(# uint2bits(i)) - i + 1, uint2bits(i) = false ' + true ' + bits, 0 < i ⊦ 2 ^ (1 + n→i(# bits)) = 1 + bits2uint(bitsinvert(bits)) + i |
uint2bits(i) = false ' + true ' + bits, 2 ^ n→i(# uint2bits(i)) = bits2uint(bitsinvert(uint2bits(i))) + i + 1, 0 < i ⊦ 2 ^ (1 + n→i(# bits)) = 1 + bits2uint(bitsinvert(bits)) + i
Used simplifier rules: ⊦ i - j = i0 ↔ i = i0 + j;