| ¬ j % 2 ^ i + 1 ≠ 0, i→n(i) = # int2bits(j % 2 ^ i).rest, 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, ~1 ≤ j % 2 ^ i ⊦ bits2int(int2bits(j % 2 ^ i).rest) = j % 2 ^ i, j = ~1, i = 1, j % 2 ^ i = 0 |
~1 = j % 2 ^ i, i→n(i) = # int2bits(~1).rest, 2 ^ (i - 1) + j < 0, j < 2 ^ (i - 1), j < 0, j + 2 ^ i ≤ 0, j + 2 ^ i < i, i→n(i) < # int2bits(~1), j + 1 < 2 ^ (i - 1), 0 < i, j < ~1, j + 2 ^ i < 2 ^ (i - 1) ⊦ i = 1, j = ~1, bits2int(int2bits(~1).rest) = ~1
Used simplifier rules: ⊦ # bits.rest < # bits ↔ bits ≠ [];% ⊦ i + 1 ≤ j ↔ i < j;% ⊦ 0 < 2 ^ i ↔ 0 ≤ i;% ⊦ 1 ≤ i ↔ 0 < i;% ⊦ i ≤ j - i0 ↔ i + i0 ≤ j;%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;%i < 0 ⊦ (* i) + j = j - ~ i;% ⊦ int2bits(j) ≠ [];% ⊦ # bits = 0 ↔ bits = [];% ⊦ m < n → n ≠ 0; (forward)% ⊦ m < n ∧ m = n0 → n0 < n; (forward)% ⊦ j ≤ j0 ∧ j0 ≤ j1 → j ≤ j1; (forward)% ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward)% ⊦ i < j ∧ j ≤ j0 → i < j0; (forward)% ⊦ j ≤ i ∧ i ≤ 0 → j ≤ 0; (forward)% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ (* j) = i0 + (* j0) ↔ j - j0 = i0;