| 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), st[r -- sks] .refval ≠ jvmref ∧ st[r -- sks] = st[r -- sks0] |
⊦ st ⊆ st0 ∧ r -- sks ∈ st ∧ sks ≠ [] → st0[r -- sks] = st[r -- sks]
¬ (st ⊆ st1 ∧ r -- sks ∈ st ∧ sks ≠ []), 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), st[r -- sks] .refval ≠ jvmref ∧ st[r -- sks] = st[r -- sks0]
st ⊆ st1 ∧ r -- sks ∈ st ∧ sks ≠ [], st1[r -- sks0] = refval(r0), st[r -- sks] = refval(r0), fits(r, sks, st1), fits(r, sks0, st1), st ⊆ st1 ⊦ sks0 = sks, sks0 = [], sks = [], r0 = jvmref, junkref(str, r, st), st[r -- sks] .refval ≠ jvmref ∧ st[r -- sks] = st[r -- sks0]
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, st1, r, sks)]]