| i = 1, i→n(i) ≤ # int2bits(j), 0 < i, j < 0, j % 2 ^ i + 2 ^ (i - 1) < 0, j < 2 ^ (i - 1), 2 ^ (i - 1) + j < 0 ⊦ j = ~1, bits2int(lastn(i→n(i), int2bits(j))) = j % 2 ^ i + 2 ^ i |
j % 2 < 0, j < ~1, j % 2 < ~1, j < 0, 1 ≤ # int2bits(j) ⊦ bits2int(int2bits(j).last ') = 2 + j % 2, j = ~1
Used simplifier rules: ⊦ int2bits(j) ≠ [];% ⊦ # bits = 0 ↔ bits = [];%0 < n ⊦ (* n) ≤ m → m ≠ 0; (forward)% ⊦ i < (* j) ∧ j < 0 → i < 0; (forward)% ⊦ i < 0 ∧ 0 ≤ j → i ≤ j;% ⊦ i < 1 ↔ i ≤ 0;% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + (* j) < (* j0) ↔ i < j0 - j;% ⊦ lastn(1, bits) = bits.last ';