| validrefvalnotnull(str, st[rk], mkclasstype(class), st), rk ∈ st, sk ∈ instfields(class), is_fskey(sk) ⊦ st[rk] .refval -- sk ∈ st |
⊦ validrefvalnotnull(str, val, ty, st) ↔ is_referencevalue(val) ∧ validrefnotnull(str, val .refval, ty, st)
is_referencevalue(st[rk]) ∧ validrefnotnull(str, st[rk] .refval, mkclasstype(class), st), rk ∈ st, sk ∈ instfields(class), is_fskey(sk) ⊦ st[rk] .refval -- sk ∈ st
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, mkclasstype(class), st[rk], str)]]