| (char ' + str1) + str0 = char0 + str2, ∀ str0, n0, n. substring(str1 + str0, n0 + # str1, n) = substring(str0, n0, n) ⊦ (char ' + str1) + str0 = "", substring(str2, n0 + # str1, n) = substring(str0, n0, n) |
∀ str0, n0, n. substring(str1 + str0, n0 + # str1, n) = substring(str0, n0, n) ⊦ substring(str1 + str0, n0 + # str1, n) = substring(str0, n0, n), (char ' + str1) + str0 = ""
Used simplifier rules: assoc: ⊦ (str1 + str2) + str3 = str1 + str2 + str3; from specification string-append%one: ⊦ char1 ' + str1 = char2 ' + str2 ↔ char1 = char2 ∧ str1 = str2; from specification string-append%chartostring-01: ⊦ char + str = char ' + str; from specification string-append