| n→i(# uint2bits(i)) = i0 + 1, int2bits(i) = boolvar ' + bits, 0 < i, boolvar ∈ int2bits(i) ⊦ 2 ^ i0 = bits2uint(bitsinvert(bits)) + i + 1, bits ≠ [] ∧ bits.first |
⊦ 0 ≤ i → int2bits(i) = uint2bits(i)
0 ≤ i, n→i(# uint2bits(i)) = i0 + 1, uint2bits(i) = boolvar ' + bits, 0 < i, boolvar ∈ uint2bits(i) ⊦ 2 ^ i0 = bits2uint(bitsinvert(bits)) + i + 1, bits ≠ [] ∧ bits.first
Used simplifier rules: ⊦ ¬ i ≤ j ↔ j < i;% ⊦ i < j → ¬ j < i; Used terms: i