| path∃(str, r, r0, update(r0, fv ' + fis, st)), ∀ str0, r1, r2, st0. path∃(str0, r1, r2, update(r2, fis, st0)) → junkref(str0, r1, st0) ∨ path∃(str0, r1, r2, st0) ⊦ _type ∈ fv ', _type ∈ fis, junkref(str, r, st), path∃(str, r, r0, st), dups(fis .keys), fv .1 ∈ fis .keys |
fv = sk × val, path∃(str, r, r0, update(r0, fv ' + fis, st)), ∀ str0, r1, r2, st0. path∃(str0, r1, r2, update(r2, fis, st0)) → junkref(str0, r1, st0) ∨ path∃(str0, r1, r2, st0) ⊦ _type ∈ fv ', _type ∈ fis, junkref(str, r, st), path∃(str, r, r0, st), dups(fis .keys), sk ∈ fis .keys
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ sk = fv .1 ∧ val = fv .2 ↔ fv = sk × val])], [EXTRATERMS : (fv, sk, val)]]