| st1[r -- sks0] = refval(r0), st1[r -- sks] = refval(r0), fits(r, sks, st1), fits(r, sks0, st1), st ⊆ st1 ⊦ sks0 = sks, sks0 = [], sks = [], r0 = jvmref, junkref(str, r, st), fits(r, sks, st) ∧ fits(r, sks0, st) ∧ st[r -- sks] .refval ≠ jvmref ∧ st[r -- sks] = st[r -- sks0] |
⊦ ¬ junkref(str, r, st0) ∧ fits(r, sks, st) ∧ st0 ⊆ st → fits(r, sks, st0)
¬ junkref(str, r, st) ∧ fits(r, sks0, st1) ∧ st ⊆ st1, st1[r -- sks0] = refval(r0), st1[r -- sks] = refval(r0), fits(r, sks, st1), fits(r, sks0, st1), st ⊆ st1 ⊦ sks0 = sks, sks0 = [], sks = [], r0 = jvmref, junkref(str, r, st), fits(r, sks, st) ∧ true ∧ st[r -- sks] .refval ≠ jvmref ∧ st[r -- sks] = st[r -- sks0]
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (str, r, st, sks0, st1)]]