| n0 + # str1 + 1 ≠ 0 ∧ (char ' + str1) + str0 ≠ "", ∀ str0, n0, n. substring(str1 + str0, n0 + # str1, n) = substring(str0, n0, n) ⊦ substring(((char ' + str1) + str0).rstring, (n0 + # str1 + 1)-1, n) = substring(str0, n0, n) |
∀ str0, n0, n. substring(str1 + str0, n0 + # str1, n) = substring(str0, n0, n) ⊦ (char ' + str1) + str0 = "", substring(((char ' + str1) + str0).rstring, n0 + # str1, n) = substring(str0, n0, n)
Used simplifier rules: oz: ⊦ m + 1 ≠ 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%pred: ⊦ (m + 1)-1 = m; from specification nat-basic2