| validrefs(str, r ' + refs0, (st[jvmref -- sk, val][r -- _type]) .type, st) ⊦ cyclic(str, r, st), ¬ r ∈ refs0 ∧ ¬ dups(refs0) |
⊦ validrefs(str, jvmref ' + refs, ty, st) ↔ refs = []
⊦ ¬ cyclic(str, jvmref, st)
validrefs(str, r ' + refs0, (st[jvmref -- sk, val][r -- _type]) .type, st) ⊦ r -- _type = jvmref -- sk, cyclic(str, r, st), ¬ r ∈ refs0 ∧ ¬ dups(refs0)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ r = r0 ∧ sk = sk0], [CSIMPSEQ : ⊦ (st[rk, val][rk]) = val], [CSIMPSEQ : ⊦ (refs + refs0) + refs1 = refs + refs0 + refs1], [CSIMPSEQ : ⊦ ¬ r ∈ []], [CSIMPSEQ : ⊦ ¬ dups([])])], [EXTRAFMAS : (r -- _type = jvmref -- sk)]]