| r0 ∈ vals0 .nonnullrefs ⊦ r0 = jvmref, dups(vals0 .nonnullrefs), ∃ r, vals, vals1, vals2. vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ∧ r ≠ jvmref ∧ ¬ refval(r) ∈ vals ∧ ¬ refval(r) ∈ vals1, ∃ r, vals, vals1, vals2. refval(r0) ' + vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ∧ r ≠ jvmref ∧ ¬ refval(r) ∈ vals ∧ ¬ refval(r) ∈ vals1 |
⊦ r ∈ vals .nonnullrefs ↔ r ≠ jvmref ∧ (∃ vals0, vals1. vals = vals0 + (refval(r) + vals1) ∧ ¬ refval(r) ∈ vals0)
r0 ≠ jvmref ∧ (∃ vals2, vals1. vals0 = vals2 + (refval(r0) + vals1) ∧ ¬ refval(r0) ∈ vals2) ⊦ r0 = jvmref, dups(vals0 .nonnullrefs), ∃ r, vals, vals1, vals2. vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ∧ r ≠ jvmref ∧ ¬ refval(r) ∈ vals ∧ ¬ refval(r) ∈ vals1, ∃ r, vals, vals1, vals2. refval(r0) ' + vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ∧ r ≠ jvmref ∧ ¬ refval(r) ∈ vals ∧ ¬ refval(r) ∈ vals1
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (vals0, r0)]]