| path∃(str, r, r0, update(r0, fis, st)[r0 -- sk, val]), ∀ str0, r1, r2, st0. path∃(str0, r1, r2, update(r2, fis, st0)) → junkref(str0, r1, st0) ∨ path∃(str0, r1, r2, st0) ⊦ _type = sk, _type ∈ fis, junkref(str, r, st), path∃(str, r, r0, st), dups(fis .keys), sk ∈ fis .keys |
⊦ ¬ sk ∈ fis → (update(r0, fis, st)[r -- sk, val]) = update(r0, fis, st[r -- sk, val])
¬ ¬ sk ∈ fis, path∃(str, r, r0, update(r0, fis, st)[r0 -- sk, val]), ∀ str0, r1, r2, st0. path∃(str0, r1, r2, update(r2, fis, st0)) → junkref(str0, r1, st0) ∨ path∃(str0, r1, r2, st0) ⊦ _type = sk, _type ∈ fis, junkref(str, r, st), path∃(str, r, r0, st), dups(fis .keys), sk ∈ fis .keys
¬ sk ∈ fis, path∃(str, r, r0, update(r0, fis, st[r0 -- sk, val])), ∀ str0, r1, r2, st0. path∃(str0, r1, r2, update(r2, fis, st0)) → junkref(str0, r1, st0) ∨ path∃(str0, r1, r2, st0) ⊦ _type = sk, _type ∈ fis, junkref(str, r, st), path∃(str, r, r0, st), dups(fis .keys), sk ∈ fis .keys
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (val, sk, r0, st, fis, r0)]]