| ⊦ (∀ fs, r0. fs ' × refval(r0) ∈ fis → ¬ junkref(str, r0, st) ∧ ¬ cyclic(str, r0, st)) ∧ newref(r, st) ∧ is_obj(str, r, addobj(r, class, fis, st)) ∧ ¬ _type ∈ fis ∧ validfieldinits(fis, st) ∧ fis .keys = instfields(class) → (cyclic(str, r, addobj(r, class, fis, st)) ↔ (∃ 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)) ↔ (∃ fs. fs ' ∈ fis ∧ fs ' ∈ instfields(class) ∧ fis[fs '] = refval(r)), r = jvmref
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ newref(r, st) → r ≠ jvmref], [CSIMPSEQ : ⊦ fis .keys = instfields(class) → ¬ _type ∈ fis])]]