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