| 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 |
⊦ 0 < i → i→n(i + 1) = i→n(i) + 1
¬ 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
Used simplifier rules: ⊦ 0 < j → abs(j) = j;% ⊦ 0 < j → abs(j + 1) = j + 1;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i;% ⊦ i < j + 1 ↔ i ≤ j;% ⊦ i ≤ i;% ⊦ m < n → (n ≤ m + 1 ↔ n = m + 1);% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m; Used terms: i