| validrefs(str, (r ' + refs1) + r1 ', st[r -- _type] .type, st) ⊦ validrefs(str, (r ' + refs1) + r1 ', st[r -- _type] .type, st[r0 -- sk, val]), sk = _type, path∃(str, r, r0, st), junkref(str, r, st), dups(refs1), r ∈ refs1, r1 ≠ r ∧ ¬ r1 ∈ refs1 |
⊦ ¬ r ∈ refs → (validrefs(str, refs, ty, st[r -- sk, val]) ↔ validrefs(str, refs, ty, st))
¬ ¬ r0 ∈ (r ' + refs1) + r1 ', validrefs(str, (r ' + refs1) + r1 ', st[r -- _type] .type, st) ⊦ validrefs(str, (r ' + refs1) + r1 ', st[r -- _type] .type, st[r0 -- sk, val]), sk = _type, path∃(str, r, r0, st), junkref(str, r, st), dups(refs1), r ∈ refs1, r1 ≠ r ∧ ¬ r1 ∈ refs1
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (refs + refs0) + refs1 = refs + refs0 + refs1])], [EXTRATERMS : (val, sk, r0, st, st[r -- _type] .type, (r ' + refs1) + r1 ', str)]]