| fillsgn(i→n(i), int2bits(j)) ≠ [] ∧ fillsgn(i→n(i), int2bits(j)).first, 0 ≤ 2 ^ i + j, 0 ≤ j + 2 ^ (i - 1), j < 0, 0 < i, 0 ≤ i ⊦ j + 2 ^ i = bits2int(fillsgn(i→n(i), int2bits(j))) + 2 ^ n→i(# fillsgn(i→n(i), int2bits(j))) |
0 ≤ 2 ^ i + j, 0 ≤ j + 2 ^ (i - 1), j < 0, 0 < i, 0 ≤ i ⊦ j + 2 ^ i = bits2int(fillsgn(i→n(i), int2bits(j))) + 2 ^ n→i(# fillsgn(i→n(i), int2bits(j))), fillsgn(i→n(i), int2bits(j)) = []
Used simplifier rules: ⊦ i + j = j + i;% ⊦ j < 0 → int2bits(j).first;% ⊦ fillsgn(n, int2bits(j)).first ↔ int2bits(j).first;