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