| ∀ st, r, sk, val. (st[r -- sk, val][jvmref -- sks0]) = st[jvmref -- sks0] ∨ sk ∈ sks0 ⊦ sks0 = [], sk = sk0, (st[r -- sk, val][(st[r -- sk, val][jvmref -- sk0]) .refval -- sks0]) = st[st[jvmref -- sk0] .refval -- sks0], sk ∈ sks0 |
⊦ rk ≠ rk0 → (st[rk0, val][rk]) = st[rk]
jvmref -- sk0 ≠ r -- sk, ∀ st, r, sk, val. (st[r -- sk, val][jvmref -- sks0]) = st[jvmref -- sks0] ∨ sk ∈ sks0 ⊦ sks0 = [], sk = sk0, (st[r -- sk, val][st[jvmref -- sk0] .refval -- sks0]) = st[st[jvmref -- sk0] .refval -- sks0], sk ∈ sks0
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ r = r0 ∧ sk = sk0])], [EXTRATERMS : (jvmref -- sk0, val, r -- sk, st)]]