TIMEOUT

The TRS could not be proven terminating. The proof attempt took 60015 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (165ms).
 | – 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 (4ms), PolynomialLinearRange4iUR (1119ms), DependencyGraph (6ms), PolynomialLinearRange8NegiUR (4925ms), DependencyGraph (4ms), ReductionPairSAT (timeout)].
 | – Problem 5 was processed with processor SubtermCriterion (1ms).

The following open problems remain:



Open Dependency Pair Problem 4

Dependency Pairs

helpb#(c, l, cons(y, ys), zs) → helpa#(s(c), l, ys, zs)helpa#(c, l, ys, zs) → if#(ge(c, l), c, l, ys, zs)
if#(false, c, l, ys, zs) → helpb#(c, l, greater(ys, zs), smaller(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) → truege(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, greater(ys, zs), smaller(ys, zs))greater(ys, zs) → helpc(ge(length(ys), length(zs)), ys, zs)
smaller(ys, zs) → helpc(ge(length(ys), length(zs)), zs, ys)helpc(true, ys, zs) → ys
helpc(false, ys, zs) → zshelpb(c, l, cons(y, ys), zs) → cons(y, helpa(s(c), l, ys, zs))

Original Signature

Termination of terms over the following signature is verified: plus, app, greater, true, ge, smaller, 0, s, if, helpa, length, helpb, false, helpc, nil, cons


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

smaller#(ys, zs) → ge#(length(ys), length(zs))greater#(ys, zs) → length#(zs)
greater#(ys, zs) → ge#(length(ys), length(zs))helpa#(c, l, ys, zs) → if#(ge(c, l), c, l, ys, zs)
if#(false, c, l, ys, zs) → helpb#(c, l, greater(ys, zs), smaller(ys, zs))if#(false, c, l, ys, zs) → smaller#(ys, zs)
helpb#(c, l, cons(y, ys), zs) → helpa#(s(c), l, ys, zs)smaller#(ys, zs) → length#(ys)
length#(cons(x, y)) → length#(y)app#(x, y) → length#(y)
plus#(x, s(y)) → plus#(x, y)greater#(ys, zs) → helpc#(ge(length(ys), length(zs)), ys, zs)
smaller#(ys, zs) → helpc#(ge(length(ys), length(zs)), zs, ys)app#(x, y) → length#(x)
helpa#(c, l, ys, zs) → ge#(c, l)ge#(s(x), s(y)) → ge#(x, y)
if#(false, c, l, ys, zs) → greater#(ys, zs)app#(x, y) → plus#(length(x), length(y))
smaller#(ys, zs) → length#(zs)app#(x, y) → helpa#(0, plus(length(x), length(y)), x, y)
greater#(ys, zs) → length#(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) → truege(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, greater(ys, zs), smaller(ys, zs))greater(ys, zs) → helpc(ge(length(ys), length(zs)), ys, zs)
smaller(ys, zs) → helpc(ge(length(ys), length(zs)), zs, ys)helpc(true, ys, zs) → ys
helpc(false, ys, zs) → zshelpb(c, l, cons(y, ys), zs) → cons(y, helpa(s(c), l, ys, zs))

Original Signature

Termination of terms over the following signature is verified: plus, app, greater, true, ge, smaller, 0, s, if, helpa, length, helpb, false, helpc, cons, nil

Strategy


The following SCCs where found

length#(cons(x, y)) → length#(y)

plus#(x, s(y)) → plus#(x, y)

helpb#(c, l, cons(y, ys), zs) → helpa#(s(c), l, ys, zs)helpa#(c, l, ys, zs) → if#(ge(c, l), c, l, ys, zs)
if#(false, c, l, ys, zs) → helpb#(c, l, greater(ys, zs), smaller(ys, zs))

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

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) → truege(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, greater(ys, zs), smaller(ys, zs))greater(ys, zs) → helpc(ge(length(ys), length(zs)), ys, zs)
smaller(ys, zs) → helpc(ge(length(ys), length(zs)), zs, ys)helpc(true, ys, zs) → ys
helpc(false, ys, zs) → zshelpb(c, l, cons(y, ys), zs) → cons(y, helpa(s(c), l, ys, zs))

Original Signature

Termination of terms over the following signature is verified: plus, app, greater, true, ge, smaller, 0, s, if, helpa, length, helpb, false, helpc, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

ge#(s(x), s(y)) → ge#(x, y)

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) → truege(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, greater(ys, zs), smaller(ys, zs))greater(ys, zs) → helpc(ge(length(ys), length(zs)), ys, zs)
smaller(ys, zs) → helpc(ge(length(ys), length(zs)), zs, ys)helpc(true, ys, zs) → ys
helpc(false, ys, zs) → zshelpb(c, l, cons(y, ys), zs) → cons(y, helpa(s(c), l, ys, zs))

Original Signature

Termination of terms over the following signature is verified: plus, app, greater, true, ge, smaller, 0, s, if, helpa, length, helpb, false, helpc, 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) → truege(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, greater(ys, zs), smaller(ys, zs))greater(ys, zs) → helpc(ge(length(ys), length(zs)), ys, zs)
smaller(ys, zs) → helpc(ge(length(ys), length(zs)), zs, ys)helpc(true, ys, zs) → ys
helpc(false, ys, zs) → zshelpb(c, l, cons(y, ys), zs) → cons(y, helpa(s(c), l, ys, zs))

Original Signature

Termination of terms over the following signature is verified: plus, app, greater, true, ge, smaller, 0, s, if, helpa, length, helpb, false, helpc, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

length#(cons(x, y)) → length#(y)