| path∃(str, r, r1, st), disjoint(str, r ' + r0 ', st) ⊦ r = r0, disjoint(str, r1 ' + r0 ', st) |
⊦ disjoint(str, refs, st) ↔ ¬ (∃ r, r0, r1. r ∈ refs ∧ r0 ∈ refs ∧ r ≠ r0 ∧ r1 ≠ jvmref ∧ path∃(str, r, r1, st) ∧ path∃(str, r0, r1, st))
path∃(str, r, r1, st), disjoint(str, r ' + r0 ', st) ⊦ r = r0, ∀ r, r2, r3. ¬ (r ∈ r1 ' + r0 ' ∧ r2 ∈ r1 ' + r0 ' ∧ r ≠ r2 ∧ r3 ≠ jvmref ∧ path∃(str, r, r3, st) ∧ path∃(str, r2, r3, st))
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, r1 ' + r0 ', str)]]