| fs ' = _length, validrefs(str, r ' + refs0, st[r -- _type] .type, st), is_arraytype(st[refs0 .last -- _type] .type) ⊦ refs0 = [], refs0 .last = jvmref, contains(str, st[r -- _type] .type, fs) |
⊦ ¬ contains(str, st[refs .first -- _type] .type, st[refs .last -- _type] .type) ∧ refs ≠ [] ∧ refs .first ≠ refs .last ∧ refs .last ≠ jvmref → ¬ validrefs(str, refs, ty, st)
¬ ( ¬ contains(str, st[(r ' + refs0) .first -- _type] .type, st[(r ' + refs0) .last -- _type] .type) ∧ r ' + refs0 ≠ [] ∧ (r ' + refs0) .first ≠ (r ' + refs0) .last ∧ (r ' + refs0) .last ≠ jvmref), fs ' = _length, validrefs(str, r ' + refs0, st[r -- _type] .type, st), is_arraytype(st[refs0 .last -- _type] .type) ⊦ refs0 = [], refs0 .last = jvmref, contains(str, st[r -- _type] .type, fs)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, st[r -- _type] .type, r ' + refs0, str)]]