| ∀ str0. str1 = "" ∨ str0 = "" ∨ s→n(str1 + str0) = s→n(str1) * 10 ^ # str0 + s→n(str0) ⊦ char + str1 = "", str0 = "", s→n((char + str1) + str0) = s→n(char + str1) * 10 ^ # str0 + s→n(str0) |
∀ str0. str0 = "" ∨ s→n(str1 + str0) = s→n(str1) * 10 ^ # str0 + s→n(str0) ⊦ str1 = "", char ' + str1 = "", str0 = "", s→n((char ' + str1).char1 ') * 10 ^ # str1 * 10 ^ # str0 + s→n((char ' + str1).rstring + str0) = (s→n((char ' + str1).char1 ') * 10 ^ # str1 + s→n((char ' + str1).rstring)) * 10 ^ # str0 + s→n(str0)
Used simplifier rules: s2n-rec-01: 1 < # str ⊦ s→n(str) = s→n(str.char1 + "") * 10 ^ (# str)-1 + s→n(str.rstring);%eq-01: ⊦ m + n = m + n0 ↔ n = n0; from specification nat-basic2%append-base: ⊦ "" + str = str; from specification string-append%rest-one: ⊦ char '.rstring = ""; from specification string-append%mult-c: ⊦ m * n = n * m; from specification nat-mult%mult-a: ⊦ m0 * m * n = (m0 * m) * n; from specification nat-mult%one: ⊦ m0 * 1 = m0; from specification nat-mult%Length-empty: ⊦ # "" = 0; from specification string-less%first-one: ⊦ char '.char1 = char; from specification string-append%empty-01: ⊦ str1 + "" = str1; from specification string-append%first-01: ⊦ str ≠ "" → (str + str0).char1 = str.char1; from specification string-append%add: ⊦ m ^ (n + n0) = m ^ n * m ^ n0; from specification nat-pot%pred: ⊦ (m + 1)-1 = m; from specification nat-basic2%rest-01: ⊦ str ≠ "" → (str + str0).rstring = str.rstring + str0; from specification string-append%len-zero: ⊦ # str = 0 ↔ str = ""; from specification string-less%z-01: ⊦ m + n = 0 ↔ m = 0 ∧ n = 0; from specification nat-basic2%one-03: ⊦ 1 = m + 1 ↔ m = 0; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%oz: ⊦ m + 1 ≠ 0; from specification nat-basic2%one: ⊦ 1 < m ↔ ¬(m = 0 ∨ m = 1); from specification nat-basic1%len-app: ⊦ #(str + str0) = # str + # str0; from specification string-less%Length-rec: ⊦ #(char ' + str) = # str + 1; from specification string-less%assoc: ⊦ (str1 + str2) + str3 = str1 + str2 + str3; from specification string-append%chartostring-01: ⊦ char + str = char ' + str; from specification string-append