| st0[r -- mkfs(class0, ty, fieldvar) '] = refval(r0), st0[r -- _type] .type ≤ mkclasstype(class), mkfs(class0, ty, fieldvar) ' ∈ instfields(class), is_reftype(ty), is_obj(str, r, st0) ⊦ mkfs(class0, ty, fieldvar) ' ∈ instfields(st0[r -- _type] .type .class), r0 = jvmref, r = jvmref, st0[r0 -- _type] .type ≤ ty ∧ ¬ junkref(str, r0, st0) |
⊦ class ≠ `java.lang.Object' .class → (ty ≤ mkclasstype(class) ↔ is_classtype(ty) ∧ ty .class ≤ class)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ fs ' ∈ instfields(class) ∧ class0 ≤ class → fs ' ∈ instfields(class0)], [CSIMPSEQ : ⊦ instfields (`java.lang.Object' .class) = []], [CSIMPSEQ : ⊦ ¬ sk ∈ []])], [EXTRATERMS : (class, st0[r -- _type] .type)]]