| st[r -- _type] .type = mkarraytype(ty), is_array(r, st), r -- _type ∈ st, r ∈ st ⊦ typeval(mkarraytype(ty)) = st[r -- _type] |
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ is_typevalue(val) → val .type = void_type], [CSIMPSEQ : ⊦ mkarraytype(ty) ≠ void_type], [CSIMPELIM : ⊦ is_typevalue(val) → ( ty = val .type ↔ val = typeval(ty))])], [EXTRATERMS : (st[r -- _type], ty0)]]