| i→n(i) < # lastn(i→n(i), uint2bits(j)), 2 ^ i < j, 0 ≤ i, 2 ^ i ≤ j, i→n(i) + 1 < # uint2bits(j), i→n(i) < # uint2bits(j) ⊦ uint2bits(j) = butlastn(i→n(i), uint2bits(j)) + fillsgn(i→n(i) + 1, sgn(false ' + lastn(i→n(i), uint2bits(j)))).rest, lastn(i→n(i), uint2bits(j)) = [] |
⊦ n ≤ # bits → # lastn(n, bits) = n
Used simplifier rules: ⊦ m < n → ¬ n < m;% ⊦ ¬ m ≤ n ↔ n < m;% ⊦ m < n → m ≤ n;% ⊦ i→n(i) < i→n(j) ↔ abs(i) < abs(j);% ⊦ 0 ≤ i → abs(i) = i;% ⊦ ¬ i < i; Used terms: uint2bits(j), i→n(i)