| validref(str, r, mkarraytype(ty), st0), i < st0[r -- _length] .intval, 0 ≤ i, 0 < st0[r -- _length] .intval ⊦ r = jvmref, validref(str, st0[r -- i '] .refval, ty, st0) |
⊦ validref(str, jvmref, ty, st)
st0[r -- i '] = refval(r0) ∧ is_referencevalue(st0[r -- i ']), validref(str, r, mkarraytype(ty), st0), i < st0[r -- _length] .intval, 0 ≤ i, 0 < st0[r -- _length] .intval ⊦ r = jvmref, validref(str, r0, ty, st0)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ is_referencevalue(val) → val .refval = jvmref], [CSIMPELIM : is_referencevalue(val) ⊦ r = val .refval ↔ val = refval(r)])], [EXTRATERMS : (st0[r -- i '], r0)]]