| ∀ r1, sk1, st0, r2, val0. r1 -- sk1 ∈ st0[r2 -- (sks + sk2 '), val0] ↔ r1 -- sk1 ∈ st0 ∨ r1 = st0[r2 -- sks] .refval ∧ sk1 = sk2 ⊦ r0 -- sk ∈ st[st[r -- sk0] .refval -- (sks + sk2 '), val] ↔ r0 -- sk ∈ st ∨ r0 = st[r -- (sk0 ' + sks)] .refval ∧ sk = sk2, sks = [] |
r0 -- sk ∈ st[st[r -- sk0] .refval -- (sks + sk2 '), val] ↔ r0 -- sk ∈ st ∨ r0 = st[st[r -- sk0] .refval -- sks] .refval ∧ sk = sk2, ∀ r1, sk1, st0, r2, val0. r1 -- sk1 ∈ st0[r2 -- (sks + sk2 '), val0] ↔ r1 -- sk1 ∈ st0 ∨ r1 = st0[r2 -- sks] .refval ∧ sk1 = sk2 ⊦ r0 -- sk ∈ st[st[r -- sk0] .refval -- (sks + sk2 '), val] ↔ r0 -- sk ∈ st ∨ r0 = st[r -- (sk0 ' + sks)] .refval ∧ sk = sk2, sks = []
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (r0, sk, st, st[r -- sk0] .refval, val)]]