| rk ∈ st, rk .ref ∈ newref_list(m, st[newref(st) -- 0 ', noval]), ∀ r. r ∈ newref_list(m, st[newref(st) -- 0 ', noval]) → r ≠ newref(st) ∧ r ≠ jvmref ∧ (∀ rk. rk ∈ st → rk .ref ≠ r), ∀ st. is_newref_list(newref_list(m, st), st) ⊦ rk .ref = jvmref, rk .ref = newref(st), dups(newref_list(m, st[newref(st) -- 0 ', noval])), ∃ sk. rk .ref -- sk ∈ st |
rk = r0 -- sk0, rk ∈ st, r0 ∈ newref_list(m, st[newref(st) -- 0 ', noval]), ∀ r. r ∈ newref_list(m, st[newref(st) -- 0 ', noval]) → r ≠ newref(st) ∧ r ≠ jvmref ∧ (∀ rk. rk ∈ st → rk .ref ≠ r), ∀ st. is_newref_list(newref_list(m, st), st) ⊦ r0 = jvmref, r0 = newref(st), dups(newref_list(m, st[newref(st) -- 0 ', noval])), ∃ sk. r0 -- sk ∈ st
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ r = rk .ref ∧ sk = rk .key ↔ rk = r -- sk])], [EXTRATERMS : (rk, r0, sk0)]]