| 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 |
0 ≤ i, 0 ≤ j, 2 ^ i ≤ j ⊦ i→n(i + 1) < # 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))).rest
Used simplifier rules: ⊦ ¬ i ≤ j ↔ j < i;% ⊦ i < j ∧ j ≤ j0 → i < j0; (forward)% ⊦ i ≤ j ∧ j < j0 → i < j0; (forward)% ⊦ i < j ∧ j < i0 → i +1 < i0; (forward)% ⊦ ¬ 2 ^ i < 0; Used terms: i, j