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