| ∀ n. n < # str0 → pos(s→l(str0)[n], str0) = n ∨ str0 = "" ∨ dups(s→l(str0)), n < #(char + str0) ⊦ pos(s→l(char + str0)[n], char + str0) = n, char + str0 = "", dups(s→l(char + str0)) |
n ≤ # str0, ∀ n0. n0 < # str0 → pos(s→l(str0)[n0], str0) = n0 ∨ str0 = "" ⊦ pos((char ' + s→l(str0))[n], char ' + str0) = n, char ' + str0 = "", dups(s→l(str0)), char ∈ s→l(str0)
Used simplifier rules: s2l-app: ⊦ s→l(str + str0) = s→l(str) + s→l(str0);%s2l-one: ⊦ s→l(char ') = char ';% ⊦ ¬ m < n ↔ n ≤ m;% ⊦ (chars + chars0) + chars1 = chars + chars0 + chars1;% ⊦ dups(char ' + chars) ↔ dups(chars) ∨ char ∈ chars;% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m < n + 1 ↔ ¬ n < m;% ⊦ #(char ' + str) = # str + 1;% ⊦ (str1 + str2) + str3 = str1 + str2 + str3;% ⊦ char + str = char ' + str;