TIMEOUT
The TRS could not be proven terminating. The proof attempt took 60021 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (67ms).
| Problem 2 was processed with processor SubtermCriterion (1ms).
| Problem 3 remains open; application of the following processors failed [SubtermCriterion (1ms), DependencyGraph (2ms), PolynomialLinearRange4iUR (247ms), DependencyGraph (4ms), PolynomialLinearRange8NegiUR (1770ms), DependencyGraph (2ms), ReductionPairSAT (timeout)].
| Problem 4 was processed with processor SubtermCriterion (0ms).
| Problem 5 was processed with processor SubtermCriterion (1ms).
The following open problems remain:
Open Dependency Pair Problem 3
Dependency Pairs
help#(c, l, cons(x, y), z) | → | if#(append(y, cons(x, nil)), ge(c, l), cons(x, z), c, l) | | if#(x, false, z, c, l) | → | help#(s(c), l, x, z) |
Rewrite Rules
ge(x, 0) | → | true | | ge(0, s(y)) | → | false |
ge(s(x), s(y)) | → | ge(x, y) | | rev(x) | → | if(x, eq(0, length(x)), nil, 0, length(x)) |
if(x, true, z, c, l) | → | z | | if(x, false, z, c, l) | → | help(s(c), l, x, z) |
help(c, l, cons(x, y), z) | → | if(append(y, cons(x, nil)), ge(c, l), cons(x, z), c, l) | | append(nil, y) | → | y |
append(cons(x, y), z) | → | cons(x, append(y, z)) | | length(nil) | → | 0 |
length(cons(x, y)) | → | s(length(y)) |
Original Signature
Termination of terms over the following signature is verified: append, rev, true, ge, help, 0, s, if, length, false, eq, nil, cons
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
rev#(x) | → | length#(x) | | help#(c, l, cons(x, y), z) | → | if#(append(y, cons(x, nil)), ge(c, l), cons(x, z), c, l) |
length#(cons(x, y)) | → | length#(y) | | append#(cons(x, y), z) | → | append#(y, z) |
if#(x, false, z, c, l) | → | help#(s(c), l, x, z) | | ge#(s(x), s(y)) | → | ge#(x, y) |
rev#(x) | → | if#(x, eq(0, length(x)), nil, 0, length(x)) | | help#(c, l, cons(x, y), z) | → | append#(y, cons(x, nil)) |
help#(c, l, cons(x, y), z) | → | ge#(c, l) |
Rewrite Rules
ge(x, 0) | → | true | | ge(0, s(y)) | → | false |
ge(s(x), s(y)) | → | ge(x, y) | | rev(x) | → | if(x, eq(0, length(x)), nil, 0, length(x)) |
if(x, true, z, c, l) | → | z | | if(x, false, z, c, l) | → | help(s(c), l, x, z) |
help(c, l, cons(x, y), z) | → | if(append(y, cons(x, nil)), ge(c, l), cons(x, z), c, l) | | append(nil, y) | → | y |
append(cons(x, y), z) | → | cons(x, append(y, z)) | | length(nil) | → | 0 |
length(cons(x, y)) | → | s(length(y)) |
Original Signature
Termination of terms over the following signature is verified: append, rev, true, ge, help, 0, s, if, length, false, eq, nil, cons
Strategy
The following SCCs where found
help#(c, l, cons(x, y), z) → if#(append(y, cons(x, nil)), ge(c, l), cons(x, z), c, l) | if#(x, false, z, c, l) → help#(s(c), l, x, z) |
length#(cons(x, y)) → length#(y) |
append#(cons(x, y), z) → append#(y, z) |
ge#(s(x), s(y)) → ge#(x, y) |
Problem 2: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
ge#(s(x), s(y)) | → | ge#(x, y) |
Rewrite Rules
ge(x, 0) | → | true | | ge(0, s(y)) | → | false |
ge(s(x), s(y)) | → | ge(x, y) | | rev(x) | → | if(x, eq(0, length(x)), nil, 0, length(x)) |
if(x, true, z, c, l) | → | z | | if(x, false, z, c, l) | → | help(s(c), l, x, z) |
help(c, l, cons(x, y), z) | → | if(append(y, cons(x, nil)), ge(c, l), cons(x, z), c, l) | | append(nil, y) | → | y |
append(cons(x, y), z) | → | cons(x, append(y, z)) | | length(nil) | → | 0 |
length(cons(x, y)) | → | s(length(y)) |
Original Signature
Termination of terms over the following signature is verified: append, rev, true, ge, help, 0, s, if, length, false, eq, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
ge#(s(x), s(y)) | → | ge#(x, y) |
Problem 4: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
append#(cons(x, y), z) | → | append#(y, z) |
Rewrite Rules
ge(x, 0) | → | true | | ge(0, s(y)) | → | false |
ge(s(x), s(y)) | → | ge(x, y) | | rev(x) | → | if(x, eq(0, length(x)), nil, 0, length(x)) |
if(x, true, z, c, l) | → | z | | if(x, false, z, c, l) | → | help(s(c), l, x, z) |
help(c, l, cons(x, y), z) | → | if(append(y, cons(x, nil)), ge(c, l), cons(x, z), c, l) | | append(nil, y) | → | y |
append(cons(x, y), z) | → | cons(x, append(y, z)) | | length(nil) | → | 0 |
length(cons(x, y)) | → | s(length(y)) |
Original Signature
Termination of terms over the following signature is verified: append, rev, true, ge, help, 0, s, if, length, false, eq, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
append#(cons(x, y), z) | → | append#(y, z) |
Problem 5: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
length#(cons(x, y)) | → | length#(y) |
Rewrite Rules
ge(x, 0) | → | true | | ge(0, s(y)) | → | false |
ge(s(x), s(y)) | → | ge(x, y) | | rev(x) | → | if(x, eq(0, length(x)), nil, 0, length(x)) |
if(x, true, z, c, l) | → | z | | if(x, false, z, c, l) | → | help(s(c), l, x, z) |
help(c, l, cons(x, y), z) | → | if(append(y, cons(x, nil)), ge(c, l), cons(x, z), c, l) | | append(nil, y) | → | y |
append(cons(x, y), z) | → | cons(x, append(y, z)) | | length(nil) | → | 0 |
length(cons(x, y)) | → | s(length(y)) |
Original Signature
Termination of terms over the following signature is verified: append, rev, true, ge, help, 0, s, if, length, false, eq, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
length#(cons(x, y)) | → | length#(y) |