| st[r1 -- _type] = typeval(mkclasstype(class)), r1 -- _type ∈ st, goodfieldsandtypes(r1, instfields(class), addarray(r0, ty, vals, st)), r1 ∈ st, sk ∈ instfields(class) ⊦ r1 = jvmref, r1 = r0, goodfieldandtype(r1, sk, st) |
⊦ goodfieldsandtypes(r, sks, st) ↔ (∀ sk. sk ∈ sks → goodfieldandtype(r, sk, st))
st[r1 -- _type] = typeval(mkclasstype(class)), r1 -- _type ∈ st, ∀ sk. sk ∈ instfields(class) → goodfieldandtype(r1, sk, addarray(r0, ty, vals, st)), r1 ∈ st, sk ∈ instfields(class) ⊦ r1 = jvmref, r1 = r0, goodfieldandtype(r1, sk, st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (addarray(r0, ty, vals, st), instfields(class), r1)]]