| is_reftype(ty0), ty ≤ ty0, junkrefs(str, r ' + refs0, st[r -- _type] .type, st[r0 -- mkfs(class, ty0, fieldvar) ', refval(r1)]), r1 = jvmref ∨ st[r1 -- _type] .type ≤ ty ∧ ¬ junkref(str, r1, st) ⊦ ty0 = void_type, junkref(str, r, st), mkfs(class, ty0, fieldvar) ' ≠ _length ∧ r1 ≠ jvmref ∧ st[r1 -- _type] .type ≤ ty0 ∧ ¬ junkref(str, r1, st) |
⊦ r = jvmref → ¬ junkrefs(str, r ' + refs, ty, st)
r ≠ jvmref, is_reftype(ty0), ty ≤ ty0, junkrefs(str, r ' + refs0, st[r -- _type] .type, st[r0 -- mkfs(class, ty0, fieldvar) ', refval(r1)]), r1 = jvmref ∨ st[r1 -- _type] .type ≤ ty ∧ ¬ junkref(str, r1, st) ⊦ ty0 = void_type, junkref(str, r, st), mkfs(class, ty0, fieldvar) ' ≠ _length ∧ r1 ≠ jvmref ∧ st[r1 -- _type] .type ≤ ty0 ∧ ¬ junkref(str, r1, st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st[r0 -- mkfs(class, ty0, fieldvar) ', refval(r1)], st[r -- _type] .type, refs0, r, str)]]