| i→n(i0) * 8 ≠ 0, # int2bits(i) / 8 = i→n(i0), i→n(i0) * 8 < # int2bits(i), 0 < i, # int2bits(i) ≤ 1 + i→n(i0) * 8, 0 < i0, n→i(n) ≤ i0, i < 2 ^ (n→i(n) * 8 - 1), i→n(i0) * 8 - 1 < i→n(i0) * 8 ⊦ # int2bits(i) % 8 = 0, i = 0, i0 = 0, n = 0 |
# int2bits(i) = i→n(i0) * 8 + 1, # int2bits(i) / 8 = i→n(i0), 0 < i, i→n(i0) * 8 < # int2bits(i), i→n(i0) * 8 - 1 < i→n(i0) * 8, i < 2 ^ (n→i(n) * 8 - 1), n→i(n) ≤ i0, 0 < i0 ⊦ n = 0, i0 = 0, i = 0, # int2bits(i) % 8 = 0
Used simplifier rules: ⊦ m < n → ¬ n < m;%n0 ≤ n ⊦ n - n0 < m ↔ n < m + n0;% ⊦ ¬ m ≤ n ↔ n < m;% ⊦ m < 1 ↔ m = 0;% ⊦ m < n → n ≠ 0;% ⊦ m = m0 + n0 ∧ n < n0 → m0 + n < m;% ⊦ m +1 = m + 1;% ⊦ i ≤ i;% ⊦ 0 < j → abs(j) = j;% ⊦ i→n(i) ≤ i→n(j) ↔ abs(i) ≤ abs(j);%0 ≠ m ⊦ (* m) * n ≤ m * n0 ↔ n ≤ n0;% ⊦ ¬ m < n ↔ n ≤ m;% ⊦ m < n + 1 ↔ ¬ n < m;% ⊦ m ≤ m;% ⊦ n < n0 ∧ n0 < n1 → n < n1; (forward)% ⊦ n < n0 ∧ n0 < n1 → n +1 < n1; (forward)% ⊦ m < n ∧ n = n0 → m < n0; (forward)% ⊦ m = n + 1 ∧ n < n0 → m ≤ n0; (forward)% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m < n → (n ≤ m + 1 ↔ n = m + 1);% ⊦ m * n = n * m;% ⊦ m0 * m * n = (m0 * m) * n;% ⊦ i→n(i) = 0 ↔ i = 0;% ⊦ m0 * m = 0 ↔ m0 = 0 ∨ m = 0;