| newref(r, st), is_valid_ref(str, r, addarray(r, ty, i, st)), type∃(str, ty), 0 ≤ i, refs0 = [] ∨ 0 ≤ i0 ∧ i0 < i ∧ is_referencevalue(initial_value(ty)) ∧ refs0 .first = jvmref ∧ validrefs(str, refs0, ty, addarray(r, ty, i, st)) ⊦ refs0 = [], r = jvmref, ty .jtelemtype = void_type, ty .jtelemtype = abstract_type, ¬ r ∈ refs0 ∧ ¬ dups(refs0) |
refs0 .first = jvmref, newref(r, st), is_valid_ref(str, r, addarray(r, ty, i, st)), type∃(str, ty), 0 ≤ i, i0 < i, is_referencevalue(initial_value(ty)), validrefs(str, refs0, ty, addarray(r, ty, i, st)), 0 ≤ i0, 0 < i ⊦ refs0 = [], r = jvmref, ty .jtelemtype = void_type, ty .jtelemtype = abstract_type, ¬ r ∈ refs0 ∧ ¬ dups(refs0)
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j])]]