| ∀ str, ty, st, r, sk, val. (validrefs(str, acc, ty, st[r -- sk, val]) ↔ validrefs(str, acc, ty, st)) ∨ r ∈ acc ⊦ validrefs(str, r0 ' + acc, ty, st[r -- sk, val]) ↔ validrefs(str, r0 ' + acc, ty, st), r = r0, r ∈ acc |
⊦ r = jvmref → (validrefs(str, r ' + refs, ty, st) ↔ refs = [])
r0 ≠ jvmref, ∀ str, ty, st, r, sk, val. (validrefs(str, acc, ty, st[r -- sk, val]) ↔ validrefs(str, acc, ty, st)) ∨ r ∈ acc ⊦ validrefs(str, r0 ' + acc, ty, st[r -- sk, val]) ↔ validrefs(str, r0 ' + acc, ty, st), r = r0, r ∈ acc
⊦ validrefs(str, jvmref ', ty, st)
⊦ validrefs(str, jvmref ' + refs, ty, st) ↔ refs = []
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ refs + [] = refs], [CSIMPSEQ : ⊦ (refs + refs0) + refs1 = refs + refs0 + refs1])], [EXTRATERMS : (st[r -- sk, val], ty, acc, r0, str)]]