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