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