| st[r0 -- _type] .type = mkclasstype(class), type∃(str, st[r -- _type] .type), path∃(str, r, r0, st), fs ' ∈ instfields(class), contains(str, st[r -- _type] .type ' + tys + mkclasstype(class) '), interface∃(str, class) ⊦ r = r0, r0 = jvmref, fs ' = _type |
⊦ ¬ is_valid_ref(str, r1, st) ∧ r1 ≠ jvmref → ¬ path∃(str, r, r1, st)
¬ (¬ is_valid_ref(str, r0, st) ∧ r0 ≠ jvmref), st[r0 -- _type] .type = mkclasstype(class), type∃(str, st[r -- _type] .type), path∃(str, r, r0, st), fs ' ∈ instfields(class), contains(str, st[r -- _type] .type ' + tys + mkclasstype(class) '), interface∃(str, class) ⊦ r = r0, r0 = jvmref, fs ' = _type
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, r0, r, str)]]