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