TIMEOUT
The TRS could not be proven terminating. The proof attempt took 60111 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (97ms).
| Problem 2 was processed with processor SubtermCriterion (1ms).
| Problem 3 was processed with processor SubtermCriterion (1ms).
| Problem 4 remains open; application of the following processors failed [SubtermCriterion (1ms), DependencyGraph (6ms), PolynomialLinearRange4iUR (145ms), DependencyGraph (5ms), PolynomialLinearRange8NegiUR (451ms), DependencyGraph (5ms), ReductionPairSAT (59251ms)].
| Problem 5 was processed with processor SubtermCriterion (1ms).
| Problem 6 was processed with processor SubtermCriterion (0ms).
The following open problems remain:
Open Dependency Pair Problem 4
Dependency Pairs
| helpb#(c, l, ys, zs) | → | helpa#(s(c), l, ys, zs) | | if#(false, c, l, ys, zs) | → | helpb#(c, l, ys, zs) |
| helpa#(c, l, ys, zs) | → | if#(ge(c, l), c, l, ys, zs) |
Rewrite Rules
| app(x, y) | → | helpa(0, plus(length(x), length(y)), x, y) | | plus(x, 0) | → | x |
| plus(x, s(y)) | → | s(plus(x, y)) | | length(nil) | → | 0 |
| length(cons(x, y)) | → | s(length(y)) | | helpa(c, l, ys, zs) | → | if(ge(c, l), c, l, ys, zs) |
| ge(x, 0) | → | true | | ge(0, s(x)) | → | false |
| ge(s(x), s(y)) | → | ge(x, y) | | if(true, c, l, ys, zs) | → | nil |
| if(false, c, l, ys, zs) | → | helpb(c, l, ys, zs) | | take(0, cons(x, xs), ys) | → | x |
| take(0, nil, cons(y, ys)) | → | y | | take(s(c), cons(x, xs), ys) | → | take(c, xs, ys) |
| take(s(c), nil, cons(y, ys)) | → | take(c, nil, ys) | | helpb(c, l, ys, zs) | → | cons(take(c, ys, zs), helpa(s(c), l, ys, zs)) |
Original Signature
Termination of terms over the following signature is verified: plus, app, xs, true, ge, 0, s, take, if, helpa, length, false, helpb, nil, cons
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
| take#(s(c), nil, cons(y, ys)) | → | take#(c, nil, ys) | | helpb#(c, l, ys, zs) | → | helpa#(s(c), l, ys, zs) |
| helpa#(c, l, ys, zs) | → | if#(ge(c, l), c, l, ys, zs) | | length#(cons(x, y)) | → | length#(y) |
| app#(x, y) | → | length#(y) | | plus#(x, s(y)) | → | plus#(x, y) |
| if#(false, c, l, ys, zs) | → | helpb#(c, l, ys, zs) | | app#(x, y) | → | length#(x) |
| helpa#(c, l, ys, zs) | → | ge#(c, l) | | ge#(s(x), s(y)) | → | ge#(x, y) |
| helpb#(c, l, ys, zs) | → | take#(c, ys, zs) | | app#(x, y) | → | plus#(length(x), length(y)) |
| take#(s(c), cons(x, xs), ys) | → | take#(c, xs, ys) | | app#(x, y) | → | helpa#(0, plus(length(x), length(y)), x, y) |
Rewrite Rules
| app(x, y) | → | helpa(0, plus(length(x), length(y)), x, y) | | plus(x, 0) | → | x |
| plus(x, s(y)) | → | s(plus(x, y)) | | length(nil) | → | 0 |
| length(cons(x, y)) | → | s(length(y)) | | helpa(c, l, ys, zs) | → | if(ge(c, l), c, l, ys, zs) |
| ge(x, 0) | → | true | | ge(0, s(x)) | → | false |
| ge(s(x), s(y)) | → | ge(x, y) | | if(true, c, l, ys, zs) | → | nil |
| if(false, c, l, ys, zs) | → | helpb(c, l, ys, zs) | | take(0, cons(x, xs), ys) | → | x |
| take(0, nil, cons(y, ys)) | → | y | | take(s(c), cons(x, xs), ys) | → | take(c, xs, ys) |
| take(s(c), nil, cons(y, ys)) | → | take(c, nil, ys) | | helpb(c, l, ys, zs) | → | cons(take(c, ys, zs), helpa(s(c), l, ys, zs)) |
Original Signature
Termination of terms over the following signature is verified: plus, app, xs, true, ge, 0, s, take, if, helpa, length, false, helpb, cons, nil
Strategy
The following SCCs where found
| take#(s(c), nil, cons(y, ys)) → take#(c, nil, ys) |
| length#(cons(x, y)) → length#(y) |
| plus#(x, s(y)) → plus#(x, y) |
| ge#(s(x), s(y)) → ge#(x, y) |
| helpb#(c, l, ys, zs) → helpa#(s(c), l, ys, zs) | if#(false, c, l, ys, zs) → helpb#(c, l, ys, zs) |
| helpa#(c, l, ys, zs) → if#(ge(c, l), c, l, ys, zs) |
Problem 2: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| take#(s(c), nil, cons(y, ys)) | → | take#(c, nil, ys) |
Rewrite Rules
| app(x, y) | → | helpa(0, plus(length(x), length(y)), x, y) | | plus(x, 0) | → | x |
| plus(x, s(y)) | → | s(plus(x, y)) | | length(nil) | → | 0 |
| length(cons(x, y)) | → | s(length(y)) | | helpa(c, l, ys, zs) | → | if(ge(c, l), c, l, ys, zs) |
| ge(x, 0) | → | true | | ge(0, s(x)) | → | false |
| ge(s(x), s(y)) | → | ge(x, y) | | if(true, c, l, ys, zs) | → | nil |
| if(false, c, l, ys, zs) | → | helpb(c, l, ys, zs) | | take(0, cons(x, xs), ys) | → | x |
| take(0, nil, cons(y, ys)) | → | y | | take(s(c), cons(x, xs), ys) | → | take(c, xs, ys) |
| take(s(c), nil, cons(y, ys)) | → | take(c, nil, ys) | | helpb(c, l, ys, zs) | → | cons(take(c, ys, zs), helpa(s(c), l, ys, zs)) |
Original Signature
Termination of terms over the following signature is verified: plus, app, xs, true, ge, 0, s, take, if, helpa, length, false, helpb, cons, nil
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| take#(s(c), nil, cons(y, ys)) | → | take#(c, nil, ys) |
Problem 3: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| plus#(x, s(y)) | → | plus#(x, y) |
Rewrite Rules
| app(x, y) | → | helpa(0, plus(length(x), length(y)), x, y) | | plus(x, 0) | → | x |
| plus(x, s(y)) | → | s(plus(x, y)) | | length(nil) | → | 0 |
| length(cons(x, y)) | → | s(length(y)) | | helpa(c, l, ys, zs) | → | if(ge(c, l), c, l, ys, zs) |
| ge(x, 0) | → | true | | ge(0, s(x)) | → | false |
| ge(s(x), s(y)) | → | ge(x, y) | | if(true, c, l, ys, zs) | → | nil |
| if(false, c, l, ys, zs) | → | helpb(c, l, ys, zs) | | take(0, cons(x, xs), ys) | → | x |
| take(0, nil, cons(y, ys)) | → | y | | take(s(c), cons(x, xs), ys) | → | take(c, xs, ys) |
| take(s(c), nil, cons(y, ys)) | → | take(c, nil, ys) | | helpb(c, l, ys, zs) | → | cons(take(c, ys, zs), helpa(s(c), l, ys, zs)) |
Original Signature
Termination of terms over the following signature is verified: plus, app, xs, true, ge, 0, s, take, if, helpa, length, false, helpb, cons, nil
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| plus#(x, s(y)) | → | plus#(x, y) |
Problem 5: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| length#(cons(x, y)) | → | length#(y) |
Rewrite Rules
| app(x, y) | → | helpa(0, plus(length(x), length(y)), x, y) | | plus(x, 0) | → | x |
| plus(x, s(y)) | → | s(plus(x, y)) | | length(nil) | → | 0 |
| length(cons(x, y)) | → | s(length(y)) | | helpa(c, l, ys, zs) | → | if(ge(c, l), c, l, ys, zs) |
| ge(x, 0) | → | true | | ge(0, s(x)) | → | false |
| ge(s(x), s(y)) | → | ge(x, y) | | if(true, c, l, ys, zs) | → | nil |
| if(false, c, l, ys, zs) | → | helpb(c, l, ys, zs) | | take(0, cons(x, xs), ys) | → | x |
| take(0, nil, cons(y, ys)) | → | y | | take(s(c), cons(x, xs), ys) | → | take(c, xs, ys) |
| take(s(c), nil, cons(y, ys)) | → | take(c, nil, ys) | | helpb(c, l, ys, zs) | → | cons(take(c, ys, zs), helpa(s(c), l, ys, zs)) |
Original Signature
Termination of terms over the following signature is verified: plus, app, xs, true, ge, 0, s, take, if, helpa, length, false, helpb, cons, nil
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| length#(cons(x, y)) | → | length#(y) |
Problem 6: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| ge#(s(x), s(y)) | → | ge#(x, y) |
Rewrite Rules
| app(x, y) | → | helpa(0, plus(length(x), length(y)), x, y) | | plus(x, 0) | → | x |
| plus(x, s(y)) | → | s(plus(x, y)) | | length(nil) | → | 0 |
| length(cons(x, y)) | → | s(length(y)) | | helpa(c, l, ys, zs) | → | if(ge(c, l), c, l, ys, zs) |
| ge(x, 0) | → | true | | ge(0, s(x)) | → | false |
| ge(s(x), s(y)) | → | ge(x, y) | | if(true, c, l, ys, zs) | → | nil |
| if(false, c, l, ys, zs) | → | helpb(c, l, ys, zs) | | take(0, cons(x, xs), ys) | → | x |
| take(0, nil, cons(y, ys)) | → | y | | take(s(c), cons(x, xs), ys) | → | take(c, xs, ys) |
| take(s(c), nil, cons(y, ys)) | → | take(c, nil, ys) | | helpb(c, l, ys, zs) | → | cons(take(c, ys, zs), helpa(s(c), l, ys, zs)) |
Original Signature
Termination of terms over the following signature is verified: plus, app, xs, true, ge, 0, s, take, if, helpa, length, false, helpb, cons, nil
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| ge#(s(x), s(y)) | → | ge#(x, y) |