| validrefs(str, r ' + refs1, mkclasstype(`java.lang.Object' .class), st), unchanged(str, r, st, st1), validrefs(str, (r ' + refs1) .last ' + refs0, mkclasstype(`java.lang.Object' .class), st), r1 = (r ' + refs1) .last ∨ r1 ∈ refs0 ⊦ unchangedNorec(r1, st, st1), path∃(str, (r ' + refs1) .last, ((r ' + refs1) .last ' + refs0) .last, st1), validrefs(str, r ' + refs1 + refs0, mkclasstype(`java.lang.Object' .class), st) ∧ (r1 = r ∨ r1 ∈ refs1 ∨ r1 ∈ refs0) |
validrefs(str, r ' + refs1, mkclasstype(`java.lang.Object' .class), st), unchanged(str, r, st, st1), validrefs(str, (r ' + refs1) .last ' + refs0, mkclasstype(`java.lang.Object' .class), st), r1 = (r ' + refs1) .last ∨ r1 ∈ refs0 ⊦ validrefs(str, r ' + refs1 + refs0, mkclasstype(`java.lang.Object' .class), st), unchangedNorec(r1, st, st1), path∃(str, (r ' + refs1) .last, ((r ' + refs1) .last ' + refs0) .last, st1)
validrefs(str, r ' + refs1, mkclasstype(`java.lang.Object' .class), st), unchanged(str, r, st, st1), validrefs(str, (r ' + refs1) .last ' + refs0, mkclasstype(`java.lang.Object' .class), st), r1 = (r ' + refs1) .last ∨ r1 ∈ refs0 ⊦ r1 = r ∨ r1 ∈ refs1 ∨ r1 ∈ refs0, unchangedNorec(r1, st, st1), path∃(str, (r ' + refs1) .last, ((r ' + refs1) .last ' + refs0) .last, st1)
[[CONCRETESIMPRULES : ()]]