| st[r -- _type] .type .type = abstract_type, type∃(str, st[r -- _type] .type), is_array(r, st) ⊦ st[r -- _type] .type .jtelemtype = void_type, st[r -- _type] .type .jtelemtype = abstract_type |
⊦ is_array(r, st) ↔ r ≠ jvmref ∧ r -- _type ∈ st ∧ is_typevalue(st[r -- _type]) ∧ is_arraytype(st[r -- _type] .type) ∧ okarray(r, st[r -- _type] .type .type, st)
⊦ okarray(r, ty, st) → r ≠ jvmref ∧ r ∈ st
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ is_arraytype(ty) → ty .jtelemtype = ty .type .jtelemtype], [CSIMPFORWARD : ⊦ r -- sk ∈ st → r ∈ st], [CSIMPSEQ : ⊦ abstract_type .jtelemtype = abstract_type], [CSIMPSEQ : ⊦ void_type ≠ abstract_type])], [EXTRATERMS : (st, r)]]