| ¬ j % 2 ^ i + 1 ≠ 0, i→n(i) = # fillsgn(i→n(i) + 1, int2bits(j % 2 ^ i)).rest, 2 ^ (i - 1) + j < 0, j < 2 ^ (i - 1), 0 < i, j < 0, 0 ≤ 2 ^ (i - 1) + j % 2 ^ i, j < j % 2 ^ i, j + 2 ^ i ≤ 0, j + 2 ^ i < i, # int2bits(j % 2 ^ i) ≤ i→n(i), ~1 ≤ j % 2 ^ i ⊦ j % 2 ^ i = 0, i = 1, j = ~1, bits2int(fillsgn(i→n(i) + 1, int2bits(j % 2 ^ i)).rest) = j % 2 ^ i |
~1 = j % 2 ^ i, i→n(i) = # fillsgn(i→n(i) + 1, int2bits(~1)).rest, # int2bits(~1) ≤ i→n(i), j + 2 ^ i < i, j + 2 ^ i ≤ 0, j < 0, j < 2 ^ (i - 1), 2 ^ (i - 1) + j < 0, j + 2 ^ i < 2 ^ (i - 1), 0 < i, j + 1 < 2 ^ (i - 1), j < ~1 ⊦ bits2int(fillsgn(i→n(i) + 1, int2bits(~1)).rest) = ~1, j = ~1, i = 1
Used simplifier rules: j0 ≠ 0, j ≤ j0 ⊦ i < (* j) → i < (* j0);% ⊦ i + (* j) < (* j0) ↔ i < j0 - j;% ⊦ i + j < j ↔ i < 0;% ⊦ i < j - i0 ↔ i + i0 < j;% ⊦ 0 < 2 ^ i ↔ 0 ≤ i;% ⊦ 1 ≤ i ↔ 0 < i;% ⊦ i + 1 ≤ j ↔ i < j;% ⊦ i ≤ j - i0 ↔ i + i0 ≤ j;%i < 0 ⊦ (* i) + j = j - ~ i;% ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward)% ⊦ i < j ∧ j ≤ j0 → i < j0; (forward)% ⊦ j ≤ j0 ∧ j0 ≤ j1 → j ≤ j1; (forward)% ⊦ j ≤ i ∧ i ≤ 0 → j ≤ 0; (forward)% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ (* j) = i0 + (* j0) ↔ j - j0 = i0;