| st[r -- _type] .type = mkarraytype(ty), i < n→i(# getarray(r, st)), is_array(r, st), 0 ≤ i ⊦ getarray(r, st) = [], r -- i ' ∈ st ∧ (getarray(r, st)[i→n(i)]) = st[r -- i '] |
⊦ 0 ≤ st[r -- _length] .intval → # getarray(r, st) = i→n(st[r -- _length] .intval)
0 ≤ st[r -- _length] .intval, st[r -- _type] .type = mkarraytype(ty), i < n→i(i→n(st[r -- _length] .intval)), is_array(r, st), 0 ≤ i ⊦ getarray(r, st) = [], r -- i ' ∈ st ∧ (getarray(r, st)[i→n(i)]) = st[r -- i ']
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ is_array(r, st) → ¬ st[r -- _length] .intval < 0])], [EXTRATERMS : (st, r)]]