| r0 ∈ st0, r0 ∈ st1, junkref(str, r0, st1), ∀ r, ty. validref(str, r, ty, st) → validref(str, r, ty, st0), ∀ r. ¬ r ∈ st0 ∧ r ∈ st1 → ¬ junkref(str, r, st1), validref(str, r0, st0[r0 -- _type] .type, st0) → validref(str, r0, st0[r0 -- _type] .type, st1) ⊦ r0 ∈ st, junkref(str, r0, st0) |
⊦ junkref(str, r, st) → ¬ validref(str, r, ty, st)
r0 ∈ st0, r0 ∈ st1, junkref(str, r0, st1), ∀ r, ty. validref(str, r, ty, st) → validref(str, r, ty, st0), ∀ r. ¬ r ∈ st0 ∧ r ∈ st1 → ¬ junkref(str, r, st1) ⊦ r0 ∈ st, junkref(str, r0, st0), validref(str, r0, st0[r0 -- _type] .type, st0)
[[CONCRETESIMPRULES : ()]]