| validfieldinits(str, fis0, st), validval(str, refval(r), ty, st), type∃(str, ty), ∀ str, st. validfieldinits(str, fis0, st) → validreflist(str, mkjavavalues(fis0 .vals .nonnullrefs), mkclasstype(`java.lang.Object' .class), st) ⊦ r = jvmref, validreflist(str, refval(r) ' + mkjavavalues(fis0 .vals .nonnullrefs), mkclasstype(`java.lang.Object' .class), st) |
⊦ validreflist(str, val ' + vals, ty, st) ↔ is_referencevalue(val) ∧ validref(str, val .refval, ty, st) ∧ validreflist(str, vals, ty, st)
validfieldinits(str, fis0, st), validval(str, refval(r), ty, st), type∃(str, ty), ∀ str, st. validfieldinits(str, fis0, st) → validreflist(str, mkjavavalues(fis0 .vals .nonnullrefs), mkclasstype(`java.lang.Object' .class), st) ⊦ r = jvmref, is_referencevalue(refval(r)) ∧ validref(str, refval(r) .refval, mkclasstype(`java.lang.Object' .class), st) ∧ validreflist(str, mkjavavalues(fis0 .vals .nonnullrefs), mkclasstype(`java.lang.Object' .class), st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, mkclasstype(`java.lang.Object' .class), mkjavavalues(fis0 .vals .nonnullrefs), refval(r), str)]]