| getarray(r, i, i0, addarray(r, vals, 0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals))])) = sublist(i→n(i), i→n(i0), vals), 0 ≤ i + i0, 0 < i0, i + i0 < n→i(# vals), 0 ≤ i, ∀ ty, st, r, vals, i, j0. i→n(j0) < i→n(i0 + 1) → ( i + j0 ≤ n→i(# vals) ∧ 0 ≤ i ∧ 0 ≤ j0 → getarray(r, i, j0, addarray(r, vals, 0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals))])) = sublist(i→n(i), i→n(j0), vals)) ⊦ sublist(i→n(i), i→n(i0), vals) + vals[i→n(i + i0)] ' = sublist(i→n(i), i→n(i0) + 1, vals), (~1) = i0, vals = [] |
⊦ m + n < # vals → sublist(m, n + 1, vals) = sublist(m, n, vals) + vals[m + n]
¬ i→n(i) + i→n(i0) < # vals, getarray(r, i, i0, addarray(r, vals, 0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals))])) = sublist(i→n(i), i→n(i0), vals), 0 ≤ i + i0, 0 < i0, i + i0 < n→i(# vals), 0 ≤ i, ∀ ty, st, r, vals, i, j0. i→n(j0) < i→n(i0 + 1) → ( i + j0 ≤ n→i(# vals) ∧ 0 ≤ i ∧ 0 ≤ j0 → getarray(r, i, j0, addarray(r, vals, 0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals))])) = sublist(i→n(i), i→n(j0), vals)) ⊦ sublist(i→n(i), i→n(i0), vals) + vals[i→n(i + i0)] ' = sublist(i→n(i), i→n(i0) + 1, vals), (~1) = i0, vals = []
i→n(i) + i→n(i0) < # vals, getarray(r, i, i0, addarray(r, vals, 0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals))])) = sublist(i→n(i), i→n(i0), vals), 0 ≤ i + i0, 0 < i0, i + i0 < n→i(# vals), 0 ≤ i, ∀ ty, st, r, vals, i, j0. i→n(j0) < i→n(i0 + 1) → ( i + j0 ≤ n→i(# vals) ∧ 0 ≤ i ∧ 0 ≤ j0 → getarray(r, i, j0, addarray(r, vals, 0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals))])) = sublist(i→n(i), i→n(j0), vals)) ⊦ sublist(i→n(i), i→n(i0), vals) + vals[i→n(i + i0)] ' = sublist(i→n(i), i→n(i0), vals) + vals[i→n(i) + i→n(i0)], (~1) = i0, vals = []
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (vals, i→n(i0), i→n(i))]]