| int2bits(j) = boolvar ' + bits, false ∈ int2bits(j).rest ↔ (∀ i. 2 ^ i ≠ j + 1), boolvar ∈ int2bits(j) ⊦ false ∈ bits, ∃ i. 2 ^ i = j + 1 |
int2bits(j) = boolvar0 + bits0 ∧ int2bits(j) ≠ [], int2bits(j) = boolvar ' + bits, false ∈ bits0 ↔ (∀ i. 2 ^ i ≠ j + 1), boolvar ∈ int2bits(j) ⊦ false ∈ bits, ∃ i. 2 ^ i = j + 1
Used simplifier rules: int2bits-not-empty: ⊦ int2bits(j) ≠ [];%⊦ bits ≠ [] → ( (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0); (elim) Used terms: int2bits(j), boolvar0, bits0