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