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