| type∃(str0, st[r -- _type] .type), same-subclasses(st[r -- _type] .type .jtelemtype .class, str, str0), is_array(r, st) ⊦ st[r -- _type] .type .jtelemtype = abstract_type, st[r -- _type] .type .jtelemtype = void_type, ¬ has_classtype(st[r -- _type] .type) ∨ tdname+∃(str, st[r -- _type] .type .jtclass) |
has_classtype(st[r -- _type] .type), type∃(str0, st[r -- _type] .type), same-subclasses(st[r -- _type] .type .jtelemtype .class, str, str0), is_array(r, st) ⊦ st[r -- _type] .type .jtelemtype = abstract_type, st[r -- _type] .type .jtelemtype = void_type, tdname+∃(str, st[r -- _type] .type .jtelemtype .class)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ty .jtclass = ty .jtelemtype .class])]]