| j < 32, 0 ≤ j ⊦ bits2int(sublist(0, # int2bits(i), mklist(i < 0, i→n(j)) + int2bits(i))) < 0 ↔ ¬ 0 ≤ i |
⊦ bits ≠ [] ∧ n ≠ 0 → sublist(0, n, bits) = bits.first ' + sublist(0, n -1, bits.rest)
mklist(i < 0, i→n(j)) + int2bits(i) ≠ [] ∧ # int2bits(i) ≠ 0, j < 32, 0 ≤ j ⊦ bits2int((mklist(i < 0, i→n(j)) + int2bits(i)).first ' + sublist(0, (# int2bits(i))-1, (mklist(i < 0, i→n(j)) + int2bits(i)).rest)) < 0 ↔ ¬ 0 ≤ 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 = 0 ↔ bits = []; Used terms: mklist(i < 0, i→n(j)) + int2bits(i), # int2bits(i)