| # int2bytes(i) = n + i→n(j) + 1 ∧ i→n(j) + 1 ≤ # int2bytes(i), 0 ≤ j, j < n→i(# int2bytes(i)), # int2bytes(i) ≤ n ⊦ int2bytes(i)[i→n(j)] = i2b(i >> 8 * (n→i(# int2bytes(i)) - j + 1)) |
# int2bytes(i) = n + i→n(j) + 1, 0 ≤ j, j < n→i(# int2bytes(i)), # int2bytes(i) ≤ n, i→n(j) < # int2bytes(i), i→n(j) < n ⊦ int2bytes(i)[i→n(j)] = i2b(i >> 8 * (n→i(# int2bytes(i)) - j + 1))
Used simplifier rules: int2bytes-empty: ⊦ int2bytes(i) ≠ [];% ⊦ m < n → n ≠ 0;% ⊦ ¬ m + n < m;% ⊦ m < n + 1 ↔ ¬ n < m;% ⊦ # bytes = 0 ↔ bytes = [];% ⊦ m < n → n ≠ 0; (forward)% ⊦ m < n ∧ n = n0 → m < n0; (forward)% ⊦ m < n ∧ n ≤ n0 → m < n0; (forward)% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + 1 ≤ n ↔ m < n;