| st0[r0 -- _length] = intval(i0), st[r0 -- _type] .type = mkarraytype(ty), 0 ≤ i0, st ⊆ st0, validref(str, r0, mkarraytype(ty0), st), 0 ≤ i, i < i0, ty ≤ ty0, r0 ≠ jvmref ∧ r0 -- _type ∈ st ∧ is_typevalue(st[r0 -- _type]) ∧ is_arraytype(st[r0 -- _type] .type) ∧ okarray(r0, st[r0 -- _type] .type .type, st), type∃(str, ty) ⊦ ty .jtelemtype = void_type, ty .jtelemtype = abstract_type, r0 = jvmref, noval .refval ∈ acc, r0 -- i ' ∈ st, ¬ r2 ∈ acc ∧ r2 ≠ r1, r1 ≠ r2 ∧ ¬ r1 ∈ refs |
st0[r0 -- _length] = intval(i0), st[r0 -- _type] .type = mkarraytype(ty), okarray(r0, ty, st), type∃(str, ty), r0 ∈ st, 0 ≤ i0, st ⊆ st0, validref(str, r0, mkarraytype(ty0), st), 0 ≤ i, i < i0, ty ≤ ty0, r0 -- _type ∈ st, is_typevalue(st[r0 -- _type]) ⊦ ty .jtelemtype = void_type, ty .jtelemtype = abstract_type, r0 = jvmref, noval .refval ∈ acc, r0 -- i ' ∈ st, ¬ r2 ∈ acc ∧ r2 ≠ r1, r1 ≠ r2 ∧ ¬ r1 ∈ refs
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ okarray(r, ty, st) ∧ st ⊆ st0 → okarray(r, ty, st0)], [CSIMPSEQ : ⊦ is_arraytype(mkarraytype(ty))], [CSIMPSEQ : ⊦ mkarraytype(ty) .type = ty], [CSIMPFORWARD : ⊦ st ⊆ st0 ∧ okarray(r, ty, st) → okarray(r, ty, st0)], [CSIMPFORWARD : ⊦ r -- sk ∈ st → r ∈ st], [CSIMPFORWARD : ⊦ okarray(r, ty, st) → r ≠ jvmref ∧ r ∈ st])]]