| i→n(i) + 1 < # int2bits(j), 0 < 2 ^ i, i→n(i) < # int2bits(j), j < 2 ^ i, 0 ≤ j ⊦ # int2bits(j) = i→n(i) + 1 |
~(2 ^ i) ≤ j, j < 2 ^ i ⊦ # int2bits(j) ≤ i→n(i + 1)
# int2bits(j) ≤ i→n(i + 1), i→n(i) + 1 < # int2bits(j), 0 < 2 ^ i, i→n(i) < # int2bits(j), j < 2 ^ i, 0 ≤ j ⊦ # int2bits(j) = i→n(i) + 1
Used simplifier rules: ⊦ ~ i ≤ j ↔ 0 ≤ i + j;% ⊦ ¬ i ≤ j ↔ j < i;% ⊦ i < j ∧ j ≤ j0 → i < j0; (forward)% ⊦ i < j ∧ j < i0 → i +1 < i0; (forward)% ⊦ i < j ∧ j < j0 → i < j0; (forward)% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m;% ⊦ i + j < j ↔ i < 0;% ⊦ ¬ 2 ^ i < 0;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i; Used terms: i, j