| fis .keys = instfields(class), newref(refs .first, st), is_obj(str, refs .first, addobj(refs .first, class, fis, st)), validfieldinits(fis, st), dups(refs), validrefs(str, refs, mkclasstype(class), addobj(refs .first, class, fis, st)), ∀ fs, r0. fs ' × refval(r0) ∈ fis → ¬ junkref(str, r0, st) ∧ ¬ cyclic(str, r0, st) ⊦ refs .first = jvmref, ∃ fs. fs ' ∈ fis ∧ fs ' ∈ instfields(class) ∧ fis[fs '] = refval(refs .first) |
refs = r + refs0 ∧ refs ≠ [], fis .keys = instfields(class), newref(r, st), is_obj(str, r, addobj(r, class, fis, st)), validfieldinits(fis, st), dups(refs), validrefs(str, refs, mkclasstype(class), addobj(r, class, fis, st)), ∀ fs, r0. fs ' × refval(r0) ∈ fis → ¬ junkref(str, r0, st) ∧ ¬ cyclic(str, r0, st) ⊦ r = jvmref, ∃ fs. fs ' ∈ fis ∧ fs ' ∈ instfields(class) ∧ fis[fs '] = refval(r)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ dups([])], [CSIMPELIM : refs ≠ [] ⊦ r = refs .first ∧ refs0 = refs .rest ↔ refs = r + refs0])], [EXTRATERMS : (refs, r, refs0)]]