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) |