| int2bits(i) = boolvar ' + bits, 0 < i, boolvar ∈ int2bits(i) ⊦ 2 ^ (n→i(# uint2bits(i)) - 1) = bits2uint(bitsinvert(bits)) + i + 1, bits ≠ [] ∧ bits.first |
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
Used simplifier rules: ⊦ i0 = i - j ↔ i = i0 + j; (elim) Used terms: n→i(# uint2bits(i)), 1, i0