| validrefvalnotnull(str, st[rk], ty, st), rk ∈ st, is_bytevalue(st[r -- mkfs(class, byte_type, fieldvar) ']) ⊦ r = jvmref, mkfs(class, byte_type, fieldvar) ' = _length, is_referencevalue(st[r -- mkfs(class, byte_type, fieldvar) ', byteval(by)][rk]) ∧ validrefnotnull (str, (st[r -- mkfs(class, byte_type, fieldvar) ', byteval(by)][rk]) .refval, ty, st[r -- mkfs(class, byte_type, fieldvar) ', byteval(by)]) |
⊦ validrefvalnotnull(str, val, ty, st) ↔ is_referencevalue(val) ∧ validrefnotnull(str, val .refval, ty, st)
is_referencevalue(st[rk]) ∧ validrefnotnull(str, st[rk] .refval, ty, st), rk ∈ st, is_bytevalue(st[r -- mkfs(class, byte_type, fieldvar) ']) ⊦ r = jvmref, mkfs(class, byte_type, fieldvar) ' = _length, is_referencevalue(st[r -- mkfs(class, byte_type, fieldvar) ', byteval(by)][rk]) ∧ validrefnotnull (str, (st[r -- mkfs(class, byte_type, fieldvar) ', byteval(by)][rk]) .refval, ty, st[r -- mkfs(class, byte_type, fieldvar) ', byteval(by)])
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, ty, st[rk], str)]]