| sk = i ', st[r -- sk] = refval(r0), sk .fs = mkfs(class, ty, fieldvar), st[r -- _type] .type = mkarraytype(ty0), is_array(str, r, st), 0 < st[r -- _length] .intval, 0 ≤ i, i < st[r -- _length] .intval, is_indexkey(sk), unchanged(str, r, st, st0), is_referencevalue(st[r -- i ']) ∧ (st[r -- i '] .refval ≠ jvmref → st[st[r -- i '] .refval -- _type] .type ≤ ty0 ∧ is_valid_ref(str, st[r -- i '] .refval, st)) → unchanged(str, st[r -- i '] .refval, st, st0) ⊦ r = jvmref, unchanged(str, r0, st, st0), junkref(str, r, st) |
st[r -- _type] .type = mkarraytype(ty0), i ' .fs = mkfs(class, ty, fieldvar), st[r -- i '] = refval(r0), 0 ≤ i, unchanged(str, r, st, st0), i < st[r -- _length] .intval, 0 < st[r -- _length] .intval, is_array(str, r, st) ⊦ r = jvmref, r0 = jvmref, junkref(str, r, st), unchanged(str, r0, st, st0), st[r0 -- _type] .type ≤ ty0 ∧ is_valid_ref(str, r0, st)
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : javavalue, , sel-09, ⊦ refval(r) .refval = r], [CSIMPNAMEDSEQ : javavalue, , test-19, ⊦ is_referencevalue(refval(r))], [CSIMPNAMEDFORWARD : int-abs, , forward-le-01, ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPNAMEDSEQ : storekey, , test-08, ⊦ is_indexkey(i ')])]]