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