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