| r -- mkfs(class, void_type, fieldvar) ' ∈ st, is_obj(r, st), class+∃(str, st[r -- _type] .type .class), r ∈ st, is_referencevalue(val), is_referencevalue(st[r -- mkfs(class, void_type, fieldvar) ']) ⊦ mkfs(class, void_type, fieldvar) ' = _length, mkfs(class, void_type, fieldvar) ' = _type, is_obj(r, st[r -- mkfs(class, void_type, fieldvar) ', val]), is_abstract(st[r -- _type] .type .class), is_array(str, r, st) |
⊦ is_obj(r, st) ∧ fs ' ≠ _type ∧ ¬ fs ' ∈ instfields(st[r -- _type] .type .class) → is_obj(r, st[r -- fs ', val])
⊦ ¬ mkfs(class0, void_type, fieldvar) ' ∈ instfields(class)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (val, mkfs(class, void_type, fieldvar), st, r)]]