YES
The TRS could be proven terminating. The proof took 38 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (8ms).
| Problem 2 was processed with processor SubtermCriterion (1ms).
| Problem 3 was processed with processor SubtermCriterion (1ms).
| | Problem 4 was processed with processor DependencyGraph (1ms).
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
intlist#(cons(x, y)) | → | intlist#(y) | | int#(s(x), s(y)) | → | int#(x, y) |
int#(0, s(y)) | → | int#(s(0), s(y)) | | int#(s(x), s(y)) | → | intlist#(int(x, y)) |
Rewrite Rules
intlist(nil) | → | nil | | int(s(x), 0) | → | nil |
int(x, x) | → | cons(x, nil) | | intlist(cons(x, y)) | → | cons(s(x), intlist(y)) |
int(s(x), s(y)) | → | intlist(int(x, y)) | | int(0, s(y)) | → | cons(0, int(s(0), s(y))) |
intlist(cons(x, nil)) | → | cons(s(x), nil) |
Original Signature
Termination of terms over the following signature is verified: 0, s, int, intlist, nil, cons
Strategy
The following SCCs where found
intlist#(cons(x, y)) → intlist#(y) |
int#(s(x), s(y)) → int#(x, y) | int#(0, s(y)) → int#(s(0), s(y)) |
Problem 2: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
intlist#(cons(x, y)) | → | intlist#(y) |
Rewrite Rules
intlist(nil) | → | nil | | int(s(x), 0) | → | nil |
int(x, x) | → | cons(x, nil) | | intlist(cons(x, y)) | → | cons(s(x), intlist(y)) |
int(s(x), s(y)) | → | intlist(int(x, y)) | | int(0, s(y)) | → | cons(0, int(s(0), s(y))) |
intlist(cons(x, nil)) | → | cons(s(x), nil) |
Original Signature
Termination of terms over the following signature is verified: 0, s, int, intlist, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
intlist#(cons(x, y)) | → | intlist#(y) |
Problem 3: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
int#(s(x), s(y)) | → | int#(x, y) | | int#(0, s(y)) | → | int#(s(0), s(y)) |
Rewrite Rules
intlist(nil) | → | nil | | int(s(x), 0) | → | nil |
int(x, x) | → | cons(x, nil) | | intlist(cons(x, y)) | → | cons(s(x), intlist(y)) |
int(s(x), s(y)) | → | intlist(int(x, y)) | | int(0, s(y)) | → | cons(0, int(s(0), s(y))) |
intlist(cons(x, nil)) | → | cons(s(x), nil) |
Original Signature
Termination of terms over the following signature is verified: 0, s, int, intlist, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
int#(s(x), s(y)) | → | int#(x, y) |
Problem 4: DependencyGraph
Dependency Pair Problem
Dependency Pairs
int#(0, s(y)) | → | int#(s(0), s(y)) |
Rewrite Rules
intlist(nil) | → | nil | | int(s(x), 0) | → | nil |
int(x, x) | → | cons(x, nil) | | intlist(cons(x, y)) | → | cons(s(x), intlist(y)) |
int(s(x), s(y)) | → | intlist(int(x, y)) | | int(0, s(y)) | → | cons(0, int(s(0), s(y))) |
intlist(cons(x, nil)) | → | cons(s(x), nil) |
Original Signature
Termination of terms over the following signature is verified: 0, s, int, intlist, cons, nil
Strategy
There are no SCCs!