| validref(str, r, ty, st), validref(str, r0, mkarraytype(int_type), st) ⊦ validref(str, r, ty, st[r0 -- i ', intval(j)]), okval(intval(j), st[r0 -- _type] .type .type), r0 ≠ jvmref ∧ (¬ is_valid_ref(str, r0, st) ∨ ¬ is_arraytype(st[r0 -- _type] .type) ∨ st[r0 -- _type] .type .type ≠ int_type) |
⊦ rk1 .ref = jvmref ∧ validref(str, r, ty1, st) → validref(str, r, ty1, st[rk1, val])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (r -- sk) .ref = r], [CSIMPSEQ : ⊦ okval(val, int_type) ↔ is_integervalue(val)], [CSIMPSEQ : ⊦ is_integervalue(intval(i))])], [EXTRATERMS : (intval(j), r0 -- i ', st, ty, r, str)]]