| ty1 = mkarraytype(ty2), type∃(str, ty1), contains(str, ty0 ' + tys0), type∃(str, ty), is_arraytype(ty1), ty2 ≤ ty, ty0 ≤ ty2, ty0 ≤ ty ⊦ contains(str, ty ' + tys0) |
contains(str, ty0 ' + tys0), type∃(str, ty), ty2 ≤ ty, ty0 ≤ ty2, ty0 ≤ ty, type∃(str, ty2) ⊦ contains(str, ty ' + tys0)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ is_arraytype(mkarraytype(ty))], [CSIMPSEQ : ⊦ type∃(str, mkarraytype(ty)) ↔ type∃(str, ty)])]]