| 0 ≤ i1, 0 < i1, ∀ val, st, i, r, i2, j0. i→n(j0) < i→n(i1 + 1) → (0 < j0 ∧ i2 < j0 ∧ 0 ≤ i2 → getarray(r, i, j0, st[r -- (i2 + i) ', val]) = (getarray(r, i, j0, st)[i→n(i2), val])) ⊦ getarray(r, i, i1, st[r -- (i1 + i) ', val]) + val ' = (getarray(r, i, i1, st) + st[r -- (i + i1) '] ')[i→n(i1), val] |
⊦ n = # vals → (vals + val ')[n, val0] = vals + val0 '
⊦ 0 < j → # getarray(r, i, j, st) = i→n(j)
i→n(i1) = # getarray(r, i, i1, st), 0 ≤ i1, 0 < i1, ∀ val, st, i, r, i2, j0. i→n(j0) < i→n(i1 + 1) → (0 < j0 ∧ i2 < j0 ∧ 0 ≤ i2 → getarray(r, i, j0, st[r -- (i2 + i) ', val]) = (getarray(r, i, j0, st)[i→n(i2), val])) ⊦ getarray(r, i, i1, st[r -- (i1 + i) ', val]) + val ' = getarray(r, i, i1, st) + val '
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i→n(i) = i→n(j) ↔ abs(i) = abs(j)])], [EXTRATERMS : (val, i→n(i1), st[r -- (i + i1) '], getarray(r, i, i1, st))]]