| bits1 + (¬ boolvar)' = false ' + bits0, int2bits(i) = (false ' + bits1) + boolvar ', false ∈ bits1, (¬ boolvar) ∈ bits0, false ∈ int2bits(i), 0 < i, 2 < i ⊦ i = 0, bits1 = [], (sgn((false ' + bits1) + (¬ boolvar)')[1 + # bits1] ↔ ¬ boolvar) ∧ sgn((false ' + bits1) + (¬ boolvar)')[1 + # bits1, boolvar] = int2bits(i) |
bits ≠ [] ⊦ bits + bits0 = boolvar ' + bits1 ↔ (boolvar ↔ bits.first) ∧ bits1 = bits.rest + bits0
bits1 ≠ [], (false ↔ bits1.first) ∧ bits0 = bits1.rest + (¬ boolvar)', int2bits(i) = (false ' + bits1) + boolvar ', false ∈ bits1, (¬ boolvar) ∈ bits0, false ∈ int2bits(i), 0 < i, 2 < i ⊦ i = 0, bits1 = [], (sgn((false ' + bits1) + (¬ boolvar)')[1 + # bits1] ↔ ¬ boolvar) ∧ sgn((false ' + bits1) + (¬ boolvar)')[1 + # bits1, boolvar] = int2bits(i)
Used terms: bits0, false, (¬ boolvar)', bits1