| ∀ str, r, r0, st. path∃(str, r, r0, update(r0, fis, st)) → _type ∈ fis ∨ junkref(str, r, st) ∨ path∃(str, r, r0, st) ∨ dups(fis .keys), path∃(str, r, r0, update(r0, fv + fis, st)) ⊦ _type ∈ fv + fis, junkref(str, r, st), path∃(str, r, r0, st), dups((fv + fis) .keys) |
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
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (sks + sks0) + sks1 = sks + sks0 + sks1], [CSIMPSEQ : ⊦ dups(sk ' + sks) ↔ dups(sks) ∨ sk ∈ sks], [CSIMPSEQ : ⊦ fv ' .keys = fv .1 '], [CSIMPSEQ : ⊦ (fis + fis0) .keys = fis .keys + fis0 .keys], [CSIMPSEQ : ⊦ (fis + fis0) + fis1 = fis + fis0 + fis1], [CSIMPSEQ : ⊦ sk ∈ fis + fis0 ↔ sk ∈ fis ∨ sk ∈ fis0], [CSIMPSEQ : ⊦ fv + fis = fv ' + fis])]]