| # int2bits(i) = m + 1, j < 32, 0 ≤ j ⊦ bits2int((mklist(i < 0, i→n(j)) + int2bits(i)).first ' + sublist(0, m, (mklist(i < 0, i→n(j)) + int2bits(i)).rest)) < 0 ↔ ¬ 0 ≤ i, mklist(¬ 0 ≤ i, i→n(j)) + int2bits(i) = [] |
mklist(i < 0, i→n(j)) + int2bits(i) = boolvar + bits ∧ mklist(i < 0, i→n(j)) + int2bits(i) ≠ [], # int2bits(i) = m + 1, j < 32, 0 ≤ j ⊦ bits2int(boolvar ' + sublist(0, m, bits)) < 0 ↔ ¬ 0 ≤ i, mklist(¬ 0 ≤ i, i→n(j)) + int2bits(i) = []
Used simplifier rules: ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ mklist(boolvar, m) = [] ↔ m = 0;% ⊦ i→n(i) = 0 ↔ i = 0;% ⊦ int2bits(j) ≠ [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;%bits ≠ [] ⊦ (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0; (elim) Used terms: mklist(i < 0, i→n(j)) + int2bits(i), boolvar, bits