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