| 0 < i ⊦ 2 ^ (n→i(# uint2bits(i)) - 1) = bits2uint(bitsinvert(int2bits(i).rest)) + i + 1 |
⊦ bits ≠ [] ∧ bits.first → bits2uint(bitsinvert(bits)) = ~ bits2int(bits) - 1
¬(int2bits(i).rest ≠ [] ∧ int2bits(i).rest.first), 0 < i ⊦ 2 ^ (n→i(# uint2bits(i)) - 1) = bits2uint(bitsinvert(int2bits(i).rest)) + i + 1
int2bits(i).rest ≠ [] ∧ int2bits(i).rest.first, 0 < i ⊦ 2 ^ (n→i(# uint2bits(i)) - 1) = (~ bits2int(int2bits(i).rest) - 1) + i + 1
Used terms: int2bits(i).rest