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) → yifPlus(false, x, y, z) → plusIter(x, s(y), s(z))
le(s(x), 0) → falsele(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)) → falsehead(nil) → error
head(cons(x, xs)) → xtail(nil) → nil
tail(cons(x, xs)) → xsa → 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) → yifPlus(false, x, y, z) → plusIter(x, s(y), s(z))
le(s(x), 0) → falsele(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)) → falsehead(nil) → error
head(cons(x, xs)) → xtail(nil) → nil
tail(cons(x, xs)) → xsa → 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) → yifPlus(false, x, y, z) → plusIter(x, s(y), s(z))
le(s(x), 0) → falsele(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)) → falsehead(nil) → error
head(cons(x, xs)) → xtail(nil) → nil
tail(cons(x, xs)) → xsa → 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) → yifPlus(false, x, y, z) → plusIter(x, s(y), s(z))
le(s(x), 0) → falsele(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)) → falsehead(nil) → error
head(cons(x, xs)) → xtail(nil) → nil
tail(cons(x, xs)) → xsa → 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)