| fis .keys = instfields(class), newref(r, st), is_obj(str, r, addobj(r, class, fis, st)), validfieldinits(fis, st), ∀ fs, r0. fs ' × refval(r0) ∈ fis → ¬ junkref(str, r0, st) ∧ ¬ cyclic(str, r0, st) ⊦ cyclic(str, r, addobj(r, class, fis, st)) ↔ (∃ fs. fs ' ∈ fis ∧ fs ' ∈ instfields(class) ∧ fis[fs '] = refval(r)), r = jvmref |
cyclic(str, r, addobj(r, class, fis, st)), fis .keys = instfields(class), newref(r, st), is_obj(str, r, addobj(r, class, fis, st)), validfieldinits(fis, st), ∀ fs, r0. fs ' × refval(r0) ∈ fis → ¬ junkref(str, r0, st) ∧ ¬ cyclic(str, r0, st) ⊦ ∃ fs. fs ' ∈ fis ∧ fs ' ∈ instfields(class) ∧ fis[fs '] = refval(r), r = jvmref
∃ fs. fs ' ∈ fis ∧ fs ' ∈ instfields(class) ∧ fis[fs '] = refval(r), fis .keys = instfields(class), newref(r, st), is_obj(str, r, addobj(r, class, fis, st)), validfieldinits(fis, st), ∀ fs, r0. fs ' × refval(r0) ∈ fis → ¬ junkref(str, r0, st) ∧ ¬ cyclic(str, r0, st) ⊦ cyclic(str, r, addobj(r, class, fis, st)), r = jvmref
[[CONCRETESIMPRULES : ()]]