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