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