| tys + ty ' = ty1 + tys0 ∧ tys + ty ' ≠ [] ⊦ (∃ ty0. is_arraytype(ty0) ∧ ty0 .type = short_type ∧ type∃(str, ty0) ∧ ty1 ≤ ty0 .type ∧ contains(str, tys + ty ')) ↔ 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)) ↔ tys = [] ∧ ty = short_type, ty ≠ ty1 ∧ ¬ ty ∈ tys0, ¬ ty1 ∈ tys ∧ ty1 ≠ ty
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ty ∈ ty0 ' ↔ ty = ty0], [CSIMPSEQ : ⊦ ty ∈ tys + tys0 ↔ ¬ ¬ (ty ∈ tys ∨ ty ∈ tys0)], [CSIMPFORWARD : ⊦ ty ' + tys = tys0 → ty ∈ tys0], [CSIMPFORWARD : ⊦ tys + ty ' = tys0 → ty ∈ tys0], [CSIMPSEQ : ⊦ (tys + tys0) + tys1 = tys + tys0 + tys1], [CSIMPSEQ : ⊦ tys + ty ' ≠ []], [CSIMPSEQ : ⊦ ty + tys = ty ' + tys])]]