| st ⊆ st0, validrefs(str, r ' + refs0, st0[r -- _type] .type, st0) ⊦ st0[r -- _type] = st[r -- _type], validrefs(str, r ' + refs0, st[r -- _type] .type, st), junkref(str, r, st), ¬ r ∈ refs0 ∧ ¬ dups(refs0) |
⊦ st1 ⊆ st2 ↔ (∀ rk. rk ∈ st1 → rk ∈ st2 ∧ st1[rk] = st2[rk])
∀ rk. rk ∈ st → rk ∈ st0 ∧ st[rk] = st0[rk], validrefs(str, r ' + refs0, st0[r -- _type] .type, st0) ⊦ st0[r -- _type] = st[r -- _type], validrefs(str, r ' + refs0, st[r -- _type] .type, st), junkref(str, r, st), ¬ r ∈ refs0 ∧ ¬ dups(refs0)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st0, st)]]