| n→i(m) = i0 + 1, i < 2 ^ i1 * 2, 2 ^ i1 ≤ i, 0 ≤ i1, 0 < 2 ^ i1, 0 < i ⊦ i = 0, # int2bits(i) ≤ m ↔ ¬ 2 ^ i0 ≤ i |
0 ≤ i, 2 ^ i ≤ j, j < 2 ^ (i + 1) ⊦ # int2bits(j) = i→n(i + 2)
0 ≤ i1 ∧ 2 ^ i1 ≤ i ∧ i < 2 ^ (i1 + 1), n→i(m) = i0 + 1, i < 2 ^ i1 * 2, 2 ^ i1 ≤ i, 0 ≤ i1, 0 < 2 ^ i1, 0 < i ⊦ i = 0, i→n(i1 + 2) ≤ m ↔ ¬ 2 ^ i0 ≤ i
Used simplifier rules: ⊦ ¬ i ≤ j ↔ j < i;% ⊦ i ≤ j → (¬ ¬ j < i ↔ false);% ⊦ 0 ≤ i → j ^ (i + 1) = j ^ i * j;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i * j = j * i;% ⊦ i < j → (¬ ¬ j ≤ i ↔ false); Used terms: i1, i