| # sks0 = 1 ∨ (∀ r1, sk1, st0, r2, val0. r1 -- sk1 ∈ st0[r2 -- sks0, val0] ↔ r1 -- sk1 ∈ st0 ∨ r1 = st0[r2 -- sks0 .butlast] .refval ∧ sk1 = sks0 .last) ⊦ # sks0 = 1, sks0 = [], r0 -- sk ∈ st[r -- (sk0 ' + sks0), val] ↔ r0 -- sk ∈ st ∨ r0 = st[r -- (sk0 ' + sks0 .butlast)] .refval ∧ sk = sks0 .last |
∀ r1, sk1, st0, r2, val0. r1 -- sk1 ∈ st0[r2 -- sks0, val0] ↔ r1 -- sk1 ∈ st0 ∨ r1 = st0[r2 -- sks0 .butlast] .refval ∧ sk1 = sks0 .last ⊦ # sks0 = 1, sks0 = [], r0 -- sk ∈ st[r -- (sk0 ' + sks0), val] ↔ r0 -- sk ∈ st ∨ r0 = st[r -- (sk0 ' + sks0 .butlast)] .refval ∧ sk = sks0 .last
[[CONCRETESIMPRULES : ()]]