| st[r -- _type] .type = mkarraytype(ty), r ∈ st, 0 ≤ i, i + j ≤ st[r -- _length] .intval, okarray(r, ty, st), is_arraytype(st[r -- _type] .type), is_typevalue(st[r -- _type]), r -- _type ∈ st, st ⊆ st0 ⊦ r = jvmref, getarray(r, i, j, st) = getarray(r, i, j, st0), is_arrayref(r, i + j, st) |
⊦ st ⊆ st0 ∧ okarray(r, ty, st) → okarray(r, ty, st0)
⊦ okarray(r, ty, st) ∧ st ⊆ st0 → okarray(r, ty, st0)
st[r -- _type] .type = mkarraytype(ty), st ⊆ st0, r -- _type ∈ st, is_typevalue(st[r -- _type]), okarray(r, ty, st), i + j ≤ st[r -- _length] .intval, 0 ≤ i, r ∈ st ⊦ getarray(r, i, j, st) = getarray(r, i, j, st0), r = jvmref, is_arrayref(r, i + j, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ is_arraytype(mkarraytype(ty))])]]