| ¬ (¬ has_classtype(st[r -- _type] .type) ∧ r ≠ jvmref ∧ ¬ junkref(str0, r, st)), same-subclasses-contains(ty .jtelemtype .class, str, str0), tdname+∃(str0, ty .jtelemtype .class), st[r -- _type] .type ≤ ty, junkref(str, r, st) ⊦ r = jvmref, junkref(str0, r, st), same-subclasses-contains(st[r -- _type] .type .jtelemtype .class, str, str0) |
same-subclasses-contains(ty .jtelemtype .class, str, str0), tdname+∃(str0, ty .jtelemtype .class), st[r -- _type] .type ≤ ty, junkref(str, r, st), has_classtype(st[r -- _type] .type) ⊦ r = jvmref, junkref(str0, r, st), same-subclasses-contains(st[r -- _type] .type .jtelemtype .class, str, str0)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ has_classtype (st[r -- _type] .type) ∧ r ≠ jvmref ∧ ¬ junkref(str, r, st) → ¬ junkref(str0, r, st)])]]