| 1 < j, 0 < j, i < 0, i < ~1, # int2bits(i) ≤ m + 1, 2 ^ n→i(m) ≤ >>>(m, (i - 1) / 2, j - 1), ∀ n, i, j0. i→n(j0) < i→n(j) → true → i < 0 ∧ # int2bits(i) ≤ n ∧ 0 < j0 ∧ n ≠ 0 → >>>(n, i, j0) < 2 ^ (n→i(n) - 1) ⊦ ¬ m < # int2bits((i - 1) / 2) ∧ j ≠ 1, m = 0 |
# int2bits(i) ≤ # int2bits((i - 1) / 2), m < # int2bits((i - 1) / 2), 2 ^ n→i(m) ≤ >>>(m, (i - 1) / 2, j - 1), # int2bits(i) ≤ m + 1, i < ~1, i < 0, 0 < j, 1 < j, ∀ n, i, j0. i→n(j0) < i→n(j) → true → i < 0 ∧ # int2bits(i) ≤ n ∧ 0 < j0 ∧ n ≠ 0 → >>>(n, i, j0) < 2 ^ (n→i(n) - 1) ⊦ j = 1, m = 0
Used simplifier rules: shiftzero-zero: ⊦ >>>(n, i, 0) = i;% ⊦ int2bits(j) ≠ [];% ⊦ # bits = 0 ↔ bits = [];% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m ≤ n + 1 ∧ n < n0 → m ≤ n0; (forward)% ⊦ m < n → n ≠ 0; (forward)