| tys = [] ∧ ty = short_type, tys + ty ' = ty1 ' + tys0 ⊦ ∃ ty0. is_arraytype(ty0) ∧ ty0 .type = short_type ∧ type∃(str, ty0) ∧ ty1 ≤ ty0 .type ∧ contains(str, ty1 ' + tys0), ty ≠ ty1 ∧ ¬ ty ∈ tys0, ¬ ty1 ∈ tys ∧ ty1 ≠ ty |
⊦ contains(str, ty ') ↔ type∃(str, ty)
⊦ ∃ ty. is_arraytype(ty) ∧ ty .type = short_type ∧ type∃(str, ty)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ type∃(str, short_type)], [CSIMPSEQ : ⊦ tys + [] = tys], [CSIMPSEQ : ⊦ short_type ≤ ty ↔ ty = short_type], [CSIMPSEQ : ⊦ ¬ ty ∈ []], [CSIMPSEQ : ⊦ ty ' = ty0 ' + tys ↔ ty = ty0 ∧ tys = []], [CSIMPSEQ : ⊦ (tys + tys0) + tys1 = tys + tys0 + tys1], [CSIMPSEQ : ⊦ [] + tys = tys])]]