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