| 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 |
int2bits(j) = boolvar0 ' + bits0, 2 ^ i = j + 1, boolvar0 ∈ int2bits(j) ⊦ false ∈ bits0, ∃ i. 2 ^ i = j + 1
Used simplifier rules: int2bits-not-empty: ⊦ int2bits(j) ≠ [];%⊦ bits = boolvar ' + bits0 ∧ bits = boolvar0 ' + bits1 → (boolvar ↔ boolvar0) ∧ bits0 = bits1; (forward)% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ' + bits = bits0 → boolvar ∈ bits0; (forward)% ⊦ boolvar + bits = boolvar ' + bits;