| char ' + str1 = char0 + str2, ∀ str0. str0 = "" ∨ s→n(str1 + str0) = s→n(str1) * 10 ^ # str0 + s→n(str0) ⊦ str1 = "", char ' + str1 = "", str0 = "", s→n(char0 ') * 10 ^ # str1 * 10 ^ # str0 + s→n(str2 + str0) = (s→n(char0 ') * 10 ^ # str1 + s→n(str2)) * 10 ^ # str0 + s→n(str0) |
∀ str0. str0 = "" ∨ s→n(str2 + str0) = s→n(str2) * 10 ^ # str0 + s→n(str0) ⊦ s→n(char0 ') * 10 ^ # str2 * 10 ^ # str0 + s→n(str2 + str0) = (s→n(char0 ') * 10 ^ # str2 + s→n(str2)) * 10 ^ # str0 + s→n(str0), str0 = "", char0 ' + str2 = "", str2 = ""
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