| r -- sk0 = r0 -- sk ⊦ (st[r0 -- sk, val][r -- sk0]) = st[r -- sk0], ∃ sks, sks0. sk0 ' = sks + sk ' + sks0 ∧ st[r -- sks] .refval = r0 ∧ (∀ sks2. sks2 + sk ' ⊑ sks → st[r -- sks2] .refval ≠ st[r -- sks] .refval) |
⊦ val = st[r0 -- sk], ∃ sks, sks0. sk ' = sks + sk ' + sks0 ∧ st[r0 -- sks] .refval = r0 ∧ (∀ sks2. sks2 + sk ' ⊑ sks → st[r0 -- sks2] .refval ≠ st[r0 -- sks] .refval)
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : store, javastore, At-same, ⊦ (st[rk, val][rk]) = val], [CSIMPNAMEDSEQ : refkey, , inj, ⊦ r -- sk = r0 -- sk0 ↔ r = r0 ∧ sk = sk0])]]