| is_obj(str0, r, st), same-subclasses(st[r -- _type] .type .jtelemtype .class, str, str0) ⊦ class+∃(str, st[r -- _type] .type .class) ∧ ¬ is_abstract(st[r -- _type] .type .class) ∧ is_obj(r, st) |
is_obj(r, st), is_obj(str0, r, st), same-subclasses(st[r -- _type] .type .class, str, str0) ⊦ ¬ is_abstract(st[r -- _type] .type .class) ∧ class+∃(str, st[r -- _type] .type .class)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ is_obj(r, st) → st[r -- _type] .type .jtelemtype = st[r -- _type] .type], [CSIMPSEQ : ⊦ ¬ is_obj(r, st) → ¬ is_obj(str, r, st)])]]