| validref(str, r, mkarraytype(ty), st), is_reftype(ty), ∃ i. 0 ≤ i ∧ i < st[r -- _length] .intval ∧ st[r -- i '] = val ⊦ r = jvmref, is_referencevalue(val) ∧ validref(str, val .refval, ty, st) |
⊦ ¬ is_referencevalue(st[r -- i ']) ∧ is_reftype(ty) ∧ r ≠ jvmref ∧ 0 ≤ i ∧ i < st[r -- _length] .intval → ¬ validref(str, r, mkarraytype(ty), st)
validref(str, r, mkarraytype(ty), st), is_reftype(ty), i < st[r -- _length] .intval, is_referencevalue(st[r -- i ']), 0 ≤ i, 0 < st[r -- _length] .intval ⊦ r = jvmref, validref(str, st[r -- i '] .refval, ty, st)
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j])]]