| char ' + s→l(str1) = s→l(str0), char ∈ s→l(str0), s→l(str1) = s→l(str0.rstring) → str1 = str0.rstring ⊦ char ' + str1 = str0 |
Used simplifier rules: s2l-empty: ⊦ s→l("") = [];%s2l-rec: ⊦ s→l(char ' + str) = char ' + s→l(str);% ⊦ char ' ≠ [];% ⊦ ¬ chars + chars0 ≠ [] ↔ chars = [] ∧ chars0 = [];% ⊦ char + str = char ' + str;% ⊦ (str1 + str2) + str3 = str1 + str2 + str3;% ⊦ char ' + chars = char0 ' + chars0 ↔ char = char0 ∧ chars = chars0;% ⊦ (chars + chars0) + chars1 = chars + chars0 + chars1;% ⊦ char1 ' + str1 = char2 ' + str2 ↔ char1 = char2 ∧ str1 = str2;% ⊦ char ∈ chars + chars0 ↔ ¬ ¬(char ∈ chars ∨ char ∈ chars0);% ⊦ char ∈ char0 ' ↔ char = char0;%⊦ str ≠ "" → (char = str.char1 ∧ str0 = str.rstring ↔ str = char + str0); (elim) Used terms: str0, char1, str