| ∀ r, r0, ty, i, st. r = r0 ∨ (okarray(refval(r), ty, i, update(r0, fis0, st)) ↔ okarray(refval(r), ty, i, st)) ⊦ r = r0, okarray(refval(r), ty, i, update(r0, fis0, st)[r0 -- sk, val]) ↔ okarray(refval(r), ty, i, st) |
⊦ refval(rk .ref) ≠ val → (okarray(val, ty, i, st[rk, val0]) ↔ okarray(val, ty, i, st))
refval((r0 -- sk) .ref) ≠ refval(r), ∀ r, r0, ty, i, st. r = r0 ∨ (okarray(refval(r), ty, i, update(r0, fis0, st)) ↔ okarray(refval(r), ty, i, st)) ⊦ r = r0, okarray(refval(r), ty, i, update(r0, fis0, st)) ↔ okarray(refval(r), ty, i, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (r -- sk) .ref = r], [CSIMPSEQ : ⊦ refval(r) = refval(r0) ↔ r = r0])], [EXTRATERMS : (val, r0 -- sk, update(r0, fis0, st), i, ty, refval(r))]]