| # int2bits(j) = m + 1 ∧ # int2bits(j) ≠ 0, 0 ≤ j, 8 = m, 9 ≤ # int2bits(j), 0 ≤ i0, 127 < j, 127 < i0 * 256 + j, 64 ≤ i0 * 256 + j, j < 256, 0 < j, 0 ≤ j, 0 < i0 * 256 + j, 0 < i0 ⊦ j = b2i(i2b(j - 2 ^ (n→i(# int2bits(j)) - 1))) + 256, 0 = i0 * 256 + j, int2bits(j).rest.first |
# int2bits(j) = 9, 0 < i0, 0 < i0 * 256 + j, 0 ≤ j, 0 < j, j < 256, 64 ≤ i0 * 256 + j, 127 < i0 * 256 + j, 127 < j, 0 ≤ i0 ⊦ 0 = i0 * 256 + j, j = 256 + b2i(i2b(j - 256)), int2bits(j).rest.first
Used simplifier rules: ⊦ int2bits(j) ≠ [];% ⊦ # bits = 0 ↔ bits = [];% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;