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