| 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, i + i0 < n→i(# vals), 0 < i0, ∀ 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)) ⊦ (~1) = i0, sublist(i→n(i), i→n(i0), vals) + (addarray(r, vals, 0, st)[r -- (i + i0) ']) ' = sublist(i→n(i), i→n(i0) + 1, vals) |
⊦ 0 ≤ i ∧ i < n→i(# vals) → (addarray(r, vals, 0, st)[r -- i ']) = vals[i→n(i)]
0 ≤ i + i0 ∧ i + i0 < n→i(# 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, i + i0 < n→i(# vals), 0 < i0, ∀ 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)) ⊦ (~1) = i0, sublist(i→n(i), i→n(i0), vals) + vals[i→n(i + i0)] ' = sublist(i→n(i), i→n(i0) + 1, vals)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ i < j → (¬ ¬ j ≤ i ↔ false)], [CSIMPFORWARD : ⊦ i < j ∧ j ≤ j0 → i < j0], [CSIMPFORWARD : ⊦ j < i ∧ i ≤ 0 → j < 0], [CSIMPFORWARD : ⊦ i < i0 ∧ i0 < i1 → i < i1], [CSIMPSEQ : ⊦ i + j < j ↔ i < 0], [CSIMPSEQ : ⊦ i < j → ¬ j < i])], [EXTRATERMS : (i + i0, st, vals, r)]]