YES
The TRS could be proven terminating. The proof took 21 ms.
Problem 1 was processed with processor SubtermCriterion (1ms). | Problem 2 was processed with processor DependencyGraph (0ms).
append#(l1, l2) | → | ifappend#(l1, l2, l1) | ifappend#(l1, l2, cons(x, l)) | → | append#(l, l2) |
is_empty(nil) | → | true | is_empty(cons(x, l)) | → | false | |
hd(cons(x, l)) | → | x | tl(cons(x, l)) | → | l | |
append(l1, l2) | → | ifappend(l1, l2, l1) | ifappend(l1, l2, nil) | → | l2 | |
ifappend(l1, l2, cons(x, l)) | → | cons(x, append(l, l2)) |
Termination of terms over the following signature is verified: append, tl, ifappend, true, false, hd, is_empty, nil, cons
The following projection was used:
Thus, the following dependency pairs are removed:
ifappend#(l1, l2, cons(x, l)) | → | append#(l, l2) |
append#(l1, l2) | → | ifappend#(l1, l2, l1) |
is_empty(nil) | → | true | is_empty(cons(x, l)) | → | false | |
hd(cons(x, l)) | → | x | tl(cons(x, l)) | → | l | |
append(l1, l2) | → | ifappend(l1, l2, l1) | ifappend(l1, l2, nil) | → | l2 | |
ifappend(l1, l2, cons(x, l)) | → | cons(x, append(l, l2)) |
Termination of terms over the following signature is verified: append, ifappend, tl, false, true, hd, is_empty, cons, nil