| ∀ st, r0, r, sk, val, str. is_referencevalue(st[r0 -- sks0]) ∧ fits(r0, sks0, st) → sks0 = [] ∨ (st[r -- sk, val][r0 -- sks0]) = st[r0 -- sks0] ∨ is_referencevalue(st[r -- sk]) ∨ junkref(str, r, st) ∨ junkref(str, r0, st), is_referencevalue(st[r0 -- (sk0 + sks0)]), fits(r0, sk0 + sks0, st) ⊦ sk0 + sks0 = [], (st[r -- sk, val][r0 -- (sk0 + sks0)]) = st[r0 -- (sk0 + sks0)], is_referencevalue(st[r -- sk]), junkref(str, r, st), junkref(str, r0, st) |
is_referencevalue(st[r0 -- (sk0 ' + sks0)]), fits(r0, sk0 ' + sks0, st), ∀ st, r0, r, sk, val, str. is_referencevalue(st[r0 -- sks0]) ∧ fits(r0, sks0, st) → sks0 = [] ∨ (st[r -- sk, val][r0 -- sks0]) = st[r0 -- sks0] ∨ is_referencevalue(st[r -- sk]) ∨ junkref(str, r, st) ∨ junkref(str, r0, st) ⊦ (st[r -- sk, val][r0 -- (sk0 ' + sks0)]) = st[r0 -- (sk0 ' + sks0)], is_referencevalue(st[r -- sk]), junkref(str, r, st), junkref(str, r0, st)
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : list, storekeys, a, ⊦ (sks + sks0) + sks1 = sks + sks0 + sks1], [CSIMPNAMEDSEQ : list, storekeys, e-01, ⊦ sk ' + sks ≠ []], [CSIMPNAMEDSEQ : list, storekeys, c, ⊦ sk + sks = sk ' + sks])]]