| 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, is_array(r0, 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 |
⊦ is_array(r, st) ↔ r ≠ jvmref ∧ r -- _type ∈ st ∧ is_typevalue(st[r -- _type]) ∧ is_arraytype(st[r -- _type] .type) ∧ okarray(r, st[r -- _type] .type .type, st)
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
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, r0)]]