| is_referencevalue(val), 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) ⊦ val .refval = jvmref, validreflist(str, val ' + mkjavavalues(fis0 .vals .nonnullrefs), mkclasstype(`java.lang.Object' .class), st) |
val = refval(r), is_referencevalue(val), 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) ⊦ r = jvmref, validreflist(str, val ' + mkjavavalues(fis0 .vals .nonnullrefs), mkclasstype(`java.lang.Object' .class), st)
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ is_referencevalue(val) → ( r = val .refval ↔ val = refval(r))])], [EXTRATERMS : (val, r)]]