| i < ~1, i < 0 ⊦ n = 0, >>>(n, i, 1) = (i - 1) / 2 + 2 ^ n→i(# fillsgn(n, int2bits(i)) - 1) |
⊦ i < ~1 ∧ n ≠ 0 → >>>(n, i, 1) = bits2uint(fillsgn(n -1, int2bits((i - 1) / 2)))
i < ~1 ∧ n ≠ 0, i < ~1, i < 0 ⊦ n = 0, bits2uint(fillsgn(n -1, int2bits((i - 1) / 2))) = (i - 1) / 2 + 2 ^ n→i(# fillsgn(n, int2bits(i)) - 1)
Used simplifier rules: ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i < 0 → (~1 ≤ i ↔ i = ~1);%i < 0 ⊦ (* i) + j = j - ~ i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i;% ⊦ i - j = i0 ↔ i = i0 + j; Used terms: i, n