| # int2bits(j) < i→n(i0), # int2bits(j) < i→n(i), 1 < i0, 0 < i0, 0 < i, i < i0, i ≤ i0, # int2bits(j) < (i→n(i0) - # int2bits(j)) + i→n(i), i→n(i0) ≤ (i→n(i0) - # int2bits(j)) + i→n(i), ¬ 0 ≤ j → j < 0 ⊦ bits2int(mklist(¬ 0 ≤ j, i→n(i0) - # int2bits(j) - (i→n(i0) - i→n(i))) + int2bits(j)) = j, i→n(i0) = # int2bits(j), mklist(¬ 0 ≤ j, i→n(i) - # int2bits(j)) + int2bits(j) = [], i = 0, i0 = 0, i→n(i0) + i→n(i) = # int2bits(j) |
⊦ bits ≠ [] ∧ (bits.first ↔ boolvar) → bits2int(mklist(boolvar, n) + bits) = bits2int(bits)
Used simplifier rules: ⊦ j < 0 → int2bits(j).first;% ⊦ ¬ i ≤ j ↔ j < i;% ⊦ i ≤ j → (¬ ¬ j < i ↔ false);% ⊦ int2bits(j).first ↔ j < 0;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j;% ⊦ bits2int(int2bits(i)) = i;% ⊦ int2bits(j) ≠ [];% ⊦ i < j → (¬ ¬ j ≤ i ↔ false); Used terms: int2bits(j), i→n(i0) - # int2bits(j) - (i→n(i0) - i→n(i)), ¬ 0 ≤ j