| refs0 .last = refs .last, validrefs(str, refs0, st[refs0 .first -- _type] .type, st), validrefs(str, refs, st[refs .first -- _type] .type, st) ⊦ r1 = newref(st), refs .last = jvmref, refs0 .first = refs .first, refs = [], refs0 = [], refs0 .first ≠ newref(st) ∧ refs0 .first ≠ r1, refs .first ≠ newref(st) ∧ refs .first ≠ r1 |
refs0 = r + refs1, refs0 .last = refs .last, validrefs(str, refs0, st[r -- _type] .type, st), validrefs(str, refs, st[refs .first -- _type] .type, st) ⊦ r1 = newref(st), refs .last = jvmref, r = refs .first, refs = [], refs0 = [], r ≠ newref(st) ∧ r ≠ r1, refs .first ≠ newref(st) ∧ refs .first ≠ r1
[[CONCRETESIMPRULES : ([CSIMPELIM : refs ≠ [] ⊦ r = refs .first ∧ refs0 = refs .rest ↔ refs = r + refs0])], [EXTRATERMS : (refs0, r, refs1)]]