| # int2bits(j) < i→n(i0), # int2bits(j) < i→n(i), 1 < i0, 0 < i0, 0 < i, i < i0, i ≤ i0, i→n(i0) ≤ (i→n(i0) - # int2bits(j)) + i→n(i), # int2bits(j) < (i→n(i0) - # int2bits(j)) + i→n(i), ¬ 0 ≤ j → j < 0 ⊦ bits2int(restn(i→n(i0) - i→n(i), mklist(¬ 0 ≤ j, i→n(i0) - # int2bits(j))) + 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) |
⊦ m ≤ n → restn(m, mklist(boolvar, n)) = mklist(boolvar, n - m)
i→n(i0) - i→n(i) ≤ i→n(i0) - # int2bits(j), # int2bits(j) < i→n(i0), # int2bits(j) < i→n(i), 1 < i0, 0 < i0, 0 < i, i < i0, i ≤ i0, i→n(i0) ≤ (i→n(i0) - # int2bits(j)) + i→n(i), # int2bits(j) < (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)
Used simplifier rules: ⊦ i < j → ¬ j < i;% ⊦ ¬ i ≤ j ↔ j < i;% ⊦ 1 < i → abs(i) = i;% ⊦ 0 < j → abs(j) = j;% ⊦ i→n(i) ≤ i→n(j) ↔ abs(i) ≤ abs(j);%n0 ≤ n ⊦ n - n0 ≤ m ↔ n ≤ m + n0;% ⊦ ¬ m ≤ n ↔ n < m;% ⊦ m + n = n + m;% ⊦ m ≤ n → (n < m ↔ false); Used terms: i→n(i0) - # int2bits(j), ¬ 0 ≤ j, i→n(i0) - i→n(i)