| 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) |
int2bits(i) = (false ' + bits1) + boolvar ', false ∈ bits1, false ∈ int2bits(i), 0 < i, 2 < i ⊦ i = 0, bits1 = [], bits1.first, (sgn((false ' + bits1) + (¬ boolvar)')[1 + # bits1] ↔ ¬ boolvar) ∧ sgn((false ' + bits1) + (¬ boolvar)')[1 + # bits1, boolvar] = int2bits(i)
Used simplifier rules: ⊦ m + n = n + m;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ∈ boolvar0 ' ↔ boolvar ↔ boolvar0;% ⊦ boolvar ∈ bits + bits0 ↔ ¬ ¬(boolvar ∈ bits ∨ boolvar ∈ bits0);