| ⊦ substring(str + str0, n0 + # str, n) = substring(str0, n0, n) |
∀ str0, n0, n. substring(str1 + str0, n0 + # str1, n) = substring(str0, n0, n) ⊦ substring((char + str1) + str0, n0 + #(char + str1), n) = substring(str0, n0, n)
Used simplifier rules: string freely generated by "", +;;%append-base: ⊦ "" + str = str; from specification string-append%assoc: ⊦ (str1 + str2) + str3 = str1 + str2 + str3; from specification string-append%Length-empty: ⊦ # "" = 0; from specification string-less%add-base: ⊦ n + 0 = n; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2