| st[r -- i '] = refval(r1), i < st[r -- _length] .intval, st[r -- _type] .type ≤ ty, is_array(str, r, st), st[r1 -- _type] .type ≤ st[r -- _type] .type .type, 0 < st[r -- _length] .intval, 0 ≤ i, is_valid_ref(str, r1, st[r1 -- sk, val]) ⊦ r1 = jvmref, r = jvmref, r1 = r, sk = _type, junkref(str, r1, st), validrefs(str, r1 ', st[r -- _type] .type .type, st) |
⊦ validrefs(str, r ', ty, st) ↔ r = jvmref ∨ r ≠ jvmref ∧ is_valid_ref(str, r, st) ∧ st[r -- _type] .type ≤ ty
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ is_valid_ref(str, r, st) ∧ r ≠ jvmref → junkref(str, r, st)])], [EXTRATERMS : (st, st[r -- _type] .type .type, r1, str)]]