| ⊦ char ' + str0 = "", l→s(sublist(0, m + 1, char ' + s→l(str0))) = char ' + substring(str0, 0, m) |
⊦ chars ≠ [] → sublist(0, n + 1, chars) = chars.first + sublist(0, n, chars.rest)
char ' + s→l(str0) ≠ [] ⊦ char ' + str0 = "", l→s((char ' + s→l(str0)).first + sublist(0, m, (char ' + s→l(str0)).rest)) = char ' + substring(str0, 0, m)
Used simplifier rules: app-02-ant: ⊦ ¬ chars + chars0 ≠ [] ↔ chars = [] ∧ chars0 = []; from specification list[charlist]%e: ⊦ char ' ≠ []; from specification list[charlist]%a: ⊦ (chars + chars0) + chars1 = chars + chars0 + chars1; from specification list[charlist] Used terms: char ' + s→l(str0), m