| # 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 = [], r0 -- sk ∈ st[r -- (sk0 ' + sks0), val] ↔ r0 -- sk ∈ st ∨ r0 = st[r -- (sk0 ' + sks0 .butlast)] .refval ∧ sk = sks0 .last |
# sks0 = 1, # 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 = [], r0 -- sk ∈ st[r -- (sk0 ' + sks0), val] ↔ r0 -- sk ∈ st ∨ r0 = st[r -- (sk0 ' + sks0 .butlast)] .refval ∧ sk = sks0 .last
# 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
[[CONCRETESIMPRULES : ()], [EXTRAFMAS : (# sks0 = 1)]]