| uint2bits(~ i) = bits + true ' + bits0, bitsinvert(uint2bits(~ i)) +1 = bitsinvert(bits) + true ' + bits0, i < 0, i < ~1 ⊦ bits.first, bits = [], true ∈ bits0, false ∈ sgn(bitsinvert(bits) + true ' + bits0).rest |
bits = boolvar + bits1, uint2bits(~ i) = bits + true ' + bits0, bitsinvert(uint2bits(~ i)) +1 = bitsinvert(bits) + true ' + bits0, i < 0, i < ~1 ⊦ boolvar, bits = [], true ∈ bits0, false ∈ sgn(bitsinvert(bits) + true ' + bits0).rest
Used simplifier rules: ⊦ bits ≠ [] → ( (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0); (elim) Used terms: bits, boolvar, bits1