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