| i < ~1, i < 0 ⊦ n = 0, bits2int(fillsgn(n - 1, int2bits((i - 1) / 2))) + 2 ^ n→i(# fillsgn(n - 1, int2bits((i - 1) / 2))) = (i - 1) / 2 + 2 ^ n→i(# fillsgn(n, int2bits(i)) - 1), fillsgn(n - 1, int2bits((i - 1) / 2)) = [] |
⊦ bits ≠ [] → bits2int(fillsgn(n, bits)) = bits2int(bits)
int2bits((i - 1) / 2) ≠ [], i < ~1, i < 0 ⊦ n = 0, bits2int(int2bits((i - 1) / 2)) + 2 ^ n→i(# fillsgn(n - 1, int2bits((i - 1) / 2))) = (i - 1) / 2 + 2 ^ n→i(# fillsgn(n, int2bits(i)) - 1), fillsgn(n - 1, int2bits((i - 1) / 2)) = []
Used simplifier rules: ⊦ int2bits(j) ≠ []; Used terms: int2bits((i - 1) / 2), n - 1