| r -- mkfs(class, ty, fieldvar) ' ∈ st, oktype(st[r -- mkfs(class, ty, fieldvar) '], ty, st), oktype(val, ty, st), is_obj(r, st[r -- mkfs(class, ty, fieldvar) ', val]) ∨ is_array(r, st[r -- mkfs(class, ty, fieldvar) ', val]), r ∈ st ⊦ mkfs(class, ty, fieldvar) ' = _type, mkfs(class, ty, fieldvar) ' = _length, is_valid_ref(r, st) |
⊦ is_valid_ref(r, st) ↔ is_obj(r, st) ∨ is_array(r, st)
r -- mkfs(class, ty, fieldvar) ' ∈ st, oktype(st[r -- mkfs(class, ty, fieldvar) '], ty, st), oktype(val, ty, st), is_obj(r, st[r -- mkfs(class, ty, fieldvar) ', val]) ∨ is_array(r, st[r -- mkfs(class, ty, fieldvar) ', val]), r ∈ st ⊦ mkfs(class, ty, fieldvar) ' = _type, mkfs(class, ty, fieldvar) ' = _length, is_obj(r, st) ∨ is_array(r, st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, r)]]