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