| n = n0 + # vals, n→i(n) + i < n→i(# vals0), 0 ≤ i, i→n(i) < # vals0, i→n(i) + # vals ≤ # vals0, i→n(i) + n < # vals0, 0 ≤ n→i(n) + i, # vals ≤ n ⊦ vals0 = [], vals0[i→n(i) + n] = (restn(i→n(i) + # vals, vals0)[n0]) |
(n→i(n0) + n→i(# vals)) + i < n→i(# vals0), 0 ≤ i, i→n(i) < # vals0, i→n(i) + # vals ≤ # vals0, i→n(i) + n0 + # vals < # vals0, 0 ≤ (n→i(n0) + n→i(# vals)) + i ⊦ vals0 = [], vals0[i→n(i) + n0 + # vals] = (restn(i→n(i) + # vals, vals0)[n0])
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPSEQ : ⊦ m ≤ m + n], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ n→i(m + n) = n→i(m) + n→i(n)])]]