| (tys + ty ') .first = byte_type, contains(str, tys + ty ') ⊦ tys = [] ∧ ty = byte_type |
⊦ contains(str, byte_type ' + tys) ↔ tys = []
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ty ' ≠ []], [CSIMPSEQ : ⊦ ¬ tys + tys0 ≠ [] ↔ tys = [] ∧ tys0 = []], [CSIMPSEQ : ⊦ ty + tys = ty ' + tys], [CSIMPSEQ : ⊦ tys + ty ' ≠ []], [CSIMPSEQ : ⊦ (tys + tys0) + tys1 = tys + tys0 + tys1], [CSIMPFORWARD : ⊦ tys + ty ' = tys0 → ty ∈ tys0], [CSIMPFORWARD : ⊦ ty ' + tys = tys0 → ty ∈ tys0], [CSIMPSEQ : ⊦ ty ∈ tys + tys0 ↔ ¬ ¬ (ty ∈ tys ∨ ty ∈ tys0)], [CSIMPSEQ : ⊦ ty ∈ ty0 ' ↔ ty = ty0], [CSIMPSEQ : ⊦ tys + [] = tys], [CSIMPSEQ : ⊦ ty ' = tys + ty0 ' ↔ ty = ty0 ∧ tys = []], [CSIMPELIM : tys ≠ [] ⊦ ty = tys .first ∧ tys0 = tys .rest ↔ tys = ty + tys0])], [EXTRATERMS : (tys + ty ', ty0, tys0)]]