| fis .keys = instfields(class), hasSharing(fis .vals .nonnullrefs, st), newref(r, st), validfieldinits(str, fis, st) ⊦ r = jvmref, dups(fis .vals .nonnullrefs), hasSharing(r, addobj(r, class, fis, st)), junkref(str, r, addobj(r, class, fis, st)) |
⊦ hasSharing(refs, st) ↔ (∃ r. r ∈ refs ∧ hasSharing(r, st))
fis .keys = instfields(class), ∃ r. r ∈ fis .vals .nonnullrefs ∧ hasSharing(r, st), newref(r, st), validfieldinits(str, fis, st) ⊦ r = jvmref, dups(fis .vals .nonnullrefs), hasSharing(r, addobj(r, class, fis, st)), junkref(str, r, addobj(r, class, fis, st))
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, fis .vals .nonnullrefs)]]