| is_array(str, r, addobj(r, class, fis, st)) ⊦ _type ∈ fis |
⊦ is_array(str, r, st) ↔ type∃(str, st[r -- _type] .type) ∧ st[r -- _type] .type .jtelemtype ≠ void_type ∧ st[r -- _type] .type .jtelemtype ≠ abstract_type ∧ is_array(r, st)
¬ _type ∈ fis ⊦ (addobj(r, class1, fis, st)[r -- _type]) = typeval(mkclasstype(class1))
⊦ ¬ _type ∈ fis → ¬ is_array(r, addobj(r, class, fis, st))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ typeval(ty) .type = ty], [CSIMPSEQ : ⊦ mkclasstype(class) .jtelemtype = mkclasstype(class)], [CSIMPSEQ : ⊦ mkclasstype(class) ≠ abstract_type], [CSIMPSEQ : ⊦ mkclasstype(class) ≠ void_type], [CSIMPSEQ : ⊦ type∃(str, mkclasstype(class)) ↔ tdname+∃(str, class)])], [EXTRATERMS : (addobj(r, class, fis, st), r, str)]]