| ⊦ putArray (vals, r, 0, addarray(r, initial_value(ty), n→i(# vals) + 1, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals) + 1)])) = (addarray(r, ty, vals, st)[r -- n→i(# vals) ', initial_value(ty)][r -- _length, intval(n→i(# vals) + 1)]) |
⊦ i > 0 → addarray(r, val, i, st) = (addarray(r, val, i - 1, st)[r -- (i - 1) ', val])
n→i(# vals) + 1 > 0 ⊦ putArray (vals, r, 0, addarray(r, initial_value(ty), n→i(# vals) + 1 - 1, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals) + 1)]) [r -- (n→i(# vals) + 1 - 1) ', initial_value(ty) ]) = (addarray(r, ty, vals, st)[r -- n→i(# vals) ', initial_value(ty)][r -- _length, intval(n→i(# vals) + 1)])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i > j ↔ j < i], [CSIMPSEQ : ⊦ ((* j)) < i0 + ((* j0)) ↔ j - j0 < i0], [CSIMPSEQ : ⊦ (~1) < i ↔ 0 ≤ i], [CSIMPSEQ : ⊦ 0 ≤ n→i(n)], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + j = j + i])], [EXTRATERMS : (st[r -- _type, typeval(mkarraytype(ty))] [r -- _length, intval(n→i(# vals) + 1) ], n→i(# vals) + 1, initial_value(ty), r)]]