| path∃(str, r, r0, st), unchanged(str, r, st, st1), validrefs(str, r0 ' + refs0, mkclasstype(`java.lang.Object' .class), st) ⊦ path∃(str, r0, (r0 ' + refs0) .last, st1) |
⊦ validrefs(str, refs, ty, st) ∧ r = refs .first ∧ r0 ∈ refs ∧ (∀ r. r ∈ refs → unchangedNorec(r, st, st0)) ∧ refs ≠ [] → path∃(str, r, r0, st0)
¬ ( validrefs(str, r0 ' + refs0, mkclasstype(`java.lang.Object' .class), st) ∧ r0 = (r0 ' + refs0) .first ∧ (r0 ' + refs0) .last ∈ r0 ' + refs0 ∧ (∀ r. r ∈ r0 ' + refs0 → unchangedNorec(r, st, st1)) ∧ r0 ' + refs0 ≠ []), path∃(str, r, r0, st), unchanged(str, r, st, st1), validrefs(str, r0 ' + refs0, mkclasstype(`java.lang.Object' .class), st) ⊦ path∃(str, r0, (r0 ' + refs0) .last, st1)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, mkclasstype(`java.lang.Object' .class), r0 ' + refs0, st1, (r0 ' + refs0) .last, r0, str)]]