| ¬ (validref(str, r, ty, st) ∧ ty ≤ mkclasstype(`java.lang.Object' .class)), validfieldinits(str, fis0, st), okval(refval(r), ty), type∃(str, ty), validref(str, r, ty, st), ∀ str, st. validfieldinits(str, fis0, st) → validreflist(str, mkjavavalues(fis0 .vals .nonnullrefs), mkclasstype(`java.lang.Object' .class), st) ⊦ r = jvmref, validref(str, r, mkclasstype(`java.lang.Object' .class), st) |
validfieldinits(str, fis0, st), okval(refval(r), ty), type∃(str, ty), validref(str, r, ty, st), ∀ str, st. validfieldinits(str, fis0, st) → validreflist(str, mkjavavalues(fis0 .vals .nonnullrefs), mkclasstype(`java.lang.Object' .class), st) ⊦ r = jvmref, validref(str, r, mkclasstype(`java.lang.Object' .class), st), is_classtype(ty), is_arraytype(ty)
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : typefuns, , subtype-object, ⊦ type∃(str, ty) → ( ty ≤ mkclasstype (`java.lang.Object' .class) ↔ is_classtype(ty) ∨ is_arraytype(ty))])]]