| disjoint(str, r ' + r0 ', st), path∃(str, r, r2, st), path∃(str, r0, r2, st), is_valid_ref(str, r2, st) ⊦ r = r0, r2 = jvmref |
⊦ 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))
∀ r3, r2, r1. ¬ (r3 ∈ r ' + r0 ' ∧ r2 ∈ r ' + r0 ' ∧ r3 ≠ r2 ∧ r1 ≠ jvmref ∧ path∃(str, r3, r1, st) ∧ path∃(str, r2, r1, st)), path∃(str, r, r2, st), path∃(str, r0, r2, st), is_valid_ref(str, r2, st) ⊦ r = r0, r2 = jvmref
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, r ' + r0 ', str)]]