| sks0 = [] ∨ (∀ st, r, sk, val. (st[r -- sk, val][jvmref -- sks0]) = st[jvmref -- sks0] ∨ sk ∈ sks0) ⊦ (st[r -- sk, val][jvmref -- (sk0 ' + sks0)]) = st[jvmref -- (sk0 ' + sks0)], sk = sk0, sk ∈ sks0 |
⊦ sks ≠ [] → st[r -- (sk ' + sks)] = st[st[r -- sk] .refval -- sks]
¬ sks0 ≠ [], sks0 = [] ∨ (∀ st, r, sk, val. (st[r -- sk, val][jvmref -- sks0]) = st[jvmref -- sks0] ∨ sk ∈ sks0) ⊦ (st[r -- sk, val][jvmref -- (sk0 ' + sks0)]) = st[jvmref -- (sk0 ' + sks0)], sk = sk0, sk ∈ sks0
sks0 ≠ [], sks0 = [] ∨ (∀ st, r, sk, val. (st[r -- sk, val][jvmref -- sks0]) = st[jvmref -- sks0] ∨ sk ∈ sks0) ⊦ (st[r -- sk, val][(st[r -- sk, val][jvmref -- sk0]) .refval -- sks0]) = st[jvmref -- (sk0 ' + sks0)], sk = sk0, sk ∈ sks0
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (sks0, sk0, jvmref, st[r -- sk, val])]]