TIMEOUT
The TRS could not be proven terminating. The proof attempt took 60000 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (71ms).
| Problem 2 was processed with processor SubtermCriterion (2ms).
| Problem 3 remains open; application of the following processors failed [SubtermCriterion (1ms), DependencyGraph (2ms), PolynomialLinearRange4iUR (433ms), DependencyGraph (3ms), PolynomialLinearRange8NegiUR (1106ms), DependencyGraph (2ms), ReductionPairSAT (1689ms), DependencyGraph (1ms), SizeChangePrinciple (timeout)].
| Problem 4 remains open; application of the following processors failed [SubtermCriterion (1ms), DependencyGraph (4ms), PolynomialLinearRange4iUR (93ms), DependencyGraph (2ms), PolynomialLinearRange8NegiUR (413ms), DependencyGraph (3ms), ReductionPairSAT (1432ms), DependencyGraph (1ms)].
The following open problems remain:
Open Dependency Pair Problem 3
Dependency Pairs
sumIter#(xs, x) | → | ifSum#(isempty(xs), xs, x, plus(x, head(xs))) | | ifSum#(false, xs, x, y) | → | sumIter#(tail(xs), y) |
Rewrite Rules
plus(x, y) | → | plusIter(x, y, 0) | | plusIter(x, y, z) | → | ifPlus(le(x, z), x, y, z) |
ifPlus(true, x, y, z) | → | y | | ifPlus(false, x, y, z) | → | plusIter(x, s(y), s(z)) |
le(s(x), 0) | → | false | | le(0, y) | → | true |
le(s(x), s(y)) | → | le(x, y) | | sum(xs) | → | sumIter(xs, 0) |
sumIter(xs, x) | → | ifSum(isempty(xs), xs, x, plus(x, head(xs))) | | ifSum(true, xs, x, y) | → | x |
ifSum(false, xs, x, y) | → | sumIter(tail(xs), y) | | isempty(nil) | → | true |
isempty(cons(x, xs)) | → | false | | head(nil) | → | error |
head(cons(x, xs)) | → | x | | tail(nil) | → | nil |
tail(cons(x, xs)) | → | xs | | a | → | b |
a | → | c |
Original Signature
Termination of terms over the following signature is verified: plus, b, error, c, plusIter, a, true, sum, sumIter, tail, ifPlus, 0, le, s, isempty, ifSum, false, head, cons, nil
Open Dependency Pair Problem 4
Dependency Pairs
ifPlus#(false, x, y, z) | → | plusIter#(x, s(y), s(z)) | | plusIter#(x, y, z) | → | ifPlus#(le(x, z), x, y, z) |
Rewrite Rules
plus(x, y) | → | plusIter(x, y, 0) | | plusIter(x, y, z) | → | ifPlus(le(x, z), x, y, z) |
ifPlus(true, x, y, z) | → | y | | ifPlus(false, x, y, z) | → | plusIter(x, s(y), s(z)) |
le(s(x), 0) | → | false | | le(0, y) | → | true |
le(s(x), s(y)) | → | le(x, y) | | sum(xs) | → | sumIter(xs, 0) |
sumIter(xs, x) | → | ifSum(isempty(xs), xs, x, plus(x, head(xs))) | | ifSum(true, xs, x, y) | → | x |
ifSum(false, xs, x, y) | → | sumIter(tail(xs), y) | | isempty(nil) | → | true |
isempty(cons(x, xs)) | → | false | | head(nil) | → | error |
head(cons(x, xs)) | → | x | | tail(nil) | → | nil |
tail(cons(x, xs)) | → | xs | | a | → | b |
a | → | c |
Original Signature
Termination of terms over the following signature is verified: plus, b, error, c, plusIter, a, true, sum, sumIter, tail, ifPlus, 0, le, s, isempty, ifSum, false, head, cons, nil
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
ifPlus#(false, x, y, z) | → | plusIter#(x, s(y), s(z)) | | sum#(xs) | → | sumIter#(xs, 0) |
sumIter#(xs, x) | → | ifSum#(isempty(xs), xs, x, plus(x, head(xs))) | | le#(s(x), s(y)) | → | le#(x, y) |
sumIter#(xs, x) | → | isempty#(xs) | | plusIter#(x, y, z) | → | ifPlus#(le(x, z), x, y, z) |
sumIter#(xs, x) | → | plus#(x, head(xs)) | | plusIter#(x, y, z) | → | le#(x, z) |
sumIter#(xs, x) | → | head#(xs) | | ifSum#(false, xs, x, y) | → | sumIter#(tail(xs), y) |
ifSum#(false, xs, x, y) | → | tail#(xs) | | plus#(x, y) | → | plusIter#(x, y, 0) |
Rewrite Rules
plus(x, y) | → | plusIter(x, y, 0) | | plusIter(x, y, z) | → | ifPlus(le(x, z), x, y, z) |
ifPlus(true, x, y, z) | → | y | | ifPlus(false, x, y, z) | → | plusIter(x, s(y), s(z)) |
le(s(x), 0) | → | false | | le(0, y) | → | true |
le(s(x), s(y)) | → | le(x, y) | | sum(xs) | → | sumIter(xs, 0) |
sumIter(xs, x) | → | ifSum(isempty(xs), xs, x, plus(x, head(xs))) | | ifSum(true, xs, x, y) | → | x |
ifSum(false, xs, x, y) | → | sumIter(tail(xs), y) | | isempty(nil) | → | true |
isempty(cons(x, xs)) | → | false | | head(nil) | → | error |
head(cons(x, xs)) | → | x | | tail(nil) | → | nil |
tail(cons(x, xs)) | → | xs | | a | → | b |
a | → | c |
Original Signature
Termination of terms over the following signature is verified: plus, b, error, c, plusIter, a, true, sum, sumIter, tail, ifPlus, 0, s, le, isempty, ifSum, false, head, nil, cons
Strategy
The following SCCs where found
le#(s(x), s(y)) → le#(x, y) |
ifPlus#(false, x, y, z) → plusIter#(x, s(y), s(z)) | plusIter#(x, y, z) → ifPlus#(le(x, z), x, y, z) |
sumIter#(xs, x) → ifSum#(isempty(xs), xs, x, plus(x, head(xs))) | ifSum#(false, xs, x, y) → sumIter#(tail(xs), y) |
Problem 2: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
le#(s(x), s(y)) | → | le#(x, y) |
Rewrite Rules
plus(x, y) | → | plusIter(x, y, 0) | | plusIter(x, y, z) | → | ifPlus(le(x, z), x, y, z) |
ifPlus(true, x, y, z) | → | y | | ifPlus(false, x, y, z) | → | plusIter(x, s(y), s(z)) |
le(s(x), 0) | → | false | | le(0, y) | → | true |
le(s(x), s(y)) | → | le(x, y) | | sum(xs) | → | sumIter(xs, 0) |
sumIter(xs, x) | → | ifSum(isempty(xs), xs, x, plus(x, head(xs))) | | ifSum(true, xs, x, y) | → | x |
ifSum(false, xs, x, y) | → | sumIter(tail(xs), y) | | isempty(nil) | → | true |
isempty(cons(x, xs)) | → | false | | head(nil) | → | error |
head(cons(x, xs)) | → | x | | tail(nil) | → | nil |
tail(cons(x, xs)) | → | xs | | a | → | b |
a | → | c |
Original Signature
Termination of terms over the following signature is verified: plus, b, error, c, plusIter, a, true, sum, sumIter, tail, ifPlus, 0, s, le, isempty, ifSum, false, head, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
le#(s(x), s(y)) | → | le#(x, y) |