| r -- _type ∈ addclass(class0, fis, st) ∧ (∀ sk. sk ∈ sks → goodfieldandtype(r, sk, addclass(class0, fis, st))), st[r -- _type] = typeval(mkclasstype(class)) ⊦ r -- _type ∈ st ∧ (∀ sk. sk ∈ sks → goodfieldandtype(r, sk, st)), r = jvmref, class = class0 |
⊦ rk ∈ st → rk ∈ addclass(class, fis, st)
st[r -- _type] = typeval(mkclasstype(class)), sk ∈ sks, r -- _type ∈ st, r ∈ st, ∀ sk. sk ∈ sks → goodfieldandtype(r, sk, addclass(class0, fis, st)) ⊦ r = jvmref, class = class0, goodfieldandtype(r, sk, st)
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ r -- sk ∈ st → r ∈ st], [CSIMPSEQ : ⊦ noval ≠ typeval(ty)], [CSIMPSEQ : ⊦ ∅[rk] = noval], [CSIMPSEQ : ⊦ ¬ rk ∈ st → st[rk] = ∅[rk]])]]