| ⊦ r ≠ jvmref ∧ is_classtype(st[r -- _type] .type) ∧ fs ' ∈ instfields(st[r -- _type] .type .class) ∧ (∃ refs. refs ≠ [] ∧ refs .first = st[r -- fs '] .refval ∧ refs .last = r ∧ validrefs(str, refs, mkclasstype(`java.lang.Object' .class), st)) → hasSharing(r, st) |
refs .first = st[refs .last -- fs '] .refval, is_classtype(st[refs .last -- _type] .type), fs ' ∈ instfields(st[refs .last -- _type] .type .class), validrefs(str, refs, mkclasstype(`java.lang.Object' .class), st) ⊦ refs = [], refs .last = jvmref, hasSharing(refs .last, st)
[[CONCRETESIMPRULES : ()]]