| ¬ 0 < i, abs(i) < abs(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, i→n(i) + 1 < i→n(i + 1) ⊦ # int2bits(j) = i→n(i) + 1, ~1 = i |
abs(i) < abs(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, i→n(i) + 1 < i→n(i + 1), i ≤ 0, i < 2 ^ i, i ≤ j ⊦ # int2bits(j) = i→n(i) + 1, ~1 = i
Used simplifier rules: ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ i ≤ j ∧ j < j0 → i < j0; (forward)% ⊦ j ≤ j0 ∧ j0 ≤ j1 → j ≤ j1; (forward)% ⊦ ¬ i < j ↔ j ≤ i;