| ⊦ val .refval ≠ refs0 .first ∧ refs0 .first ≠ st[r -- sk] .refval ∧ refs0 ≠ [] ∧ sk ≠ _type ∧ sk ≠ _length ∧ ¬ dups(refs + r ' + refs0) ∧ (is_valid_ref(str, r, st) ↔ is_valid_ref(str, r, st[r -- sk, val])) → (validrefs(str, refs + r ' + refs0, ty, st[r -- sk, val]) ↔ validrefs(str, refs + r ' + refs0, ty, st)) |