| _type .fs = mkfs(class, ty, fieldvar), r1 ∈ st, okval(val, ty), r1 -- _type ∈ st, okval(st[r1 -- _type], ty) ⊦ ty = void_type, class+∃(str, val .type .class) ∧ ¬ is_abstract(val .type .class) ∧ is_obj(r1, st[r1 -- _type, val]) ↔ is_obj(str, r1, st) |
⊦ _type = mkfs(`java.lang.Object' .class, void_type, `type' .field) '
mkfs(`java.lang.Object' .class, void_type, `type' .field) ' .fs = mkfs(class, ty, fieldvar), r1 ∈ st, okval(val, ty), r1 -- mkfs(`java.lang.Object' .class, void_type, `type' .field) ' ∈ st, okval(st[r1 -- mkfs(`java.lang.Object' .class, void_type, `type' .field) '], ty) ⊦ ty = void_type, class+∃(str, val .type .class) ∧ ¬ is_abstract(val .type .class) ∧ is_obj(r1, st[r1 -- mkfs(`java.lang.Object' .class, void_type, `type' .field) ', val]) ↔ is_obj(str, r1, st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : ()]]