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