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 (189ms).
 | – Problem 2 was processed with processor SubtermCriterion (1ms).
 | – Problem 3 remains open; application of the following processors failed [SubtermCriterion (2ms), DependencyGraph (6ms), PolynomialLinearRange4iUR (1458ms), DependencyGraph (10ms), PolynomialLinearRange8NegiUR (13487ms), DependencyGraph (5ms), ReductionPairSAT (19619ms), DependencyGraph (6ms), SizeChangePrinciple (timeout)].
 | – Problem 4 was processed with processor SubtermCriterion (1ms).
 | – Problem 5 was processed with processor SubtermCriterion (1ms).

The following open problems remain:



Open Dependency Pair Problem 3

Dependency Pairs

addLists#(xs, ys, zs) → if#(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))if#(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists#(xs2, ys2, zs)
if#(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists#(xs, ys, zs2)

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilappend(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthErrorif(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

Original Signature

Termination of terms over the following signature is verified: append, true, tail, isEmpty, 0, s, inc, if, addLists, p, differentLengthError, false, head, addList, cons, nil, isZero


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

addLists#(xs, ys, zs) → isZero#(head(xs))addLists#(xs, ys, zs) → if#(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))
addLists#(xs, ys, zs) → isEmpty#(ys)addLists#(xs, ys, zs) → p#(head(xs))
addList#(xs, ys) → addLists#(xs, ys, nil)append#(cons(y, ys), x) → append#(ys, x)
addLists#(xs, ys, zs) → head#(xs)addLists#(xs, ys, zs) → tail#(xs)
addLists#(xs, ys, zs) → tail#(ys)addLists#(xs, ys, zs) → inc#(head(ys))
addLists#(xs, ys, zs) → isEmpty#(xs)addLists#(xs, ys, zs) → append#(zs, head(ys))
inc#(s(x)) → inc#(x)if#(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists#(xs2, ys2, zs)
addLists#(xs, ys, zs) → head#(ys)p#(s(s(x))) → p#(s(x))
if#(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists#(xs, ys, zs2)

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilappend(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthErrorif(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

Original Signature

Termination of terms over the following signature is verified: append, true, tail, isEmpty, 0, s, inc, if, addLists, p, differentLengthError, false, head, isZero, nil, cons, addList

Strategy


The following SCCs where found

append#(cons(y, ys), x) → append#(ys, x)

addLists#(xs, ys, zs) → if#(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))if#(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists#(xs2, ys2, zs)
if#(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists#(xs, ys, zs2)

inc#(s(x)) → inc#(x)

p#(s(s(x))) → p#(s(x))

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

inc#(s(x)) → inc#(x)

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilappend(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthErrorif(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

Original Signature

Termination of terms over the following signature is verified: append, true, tail, isEmpty, 0, s, inc, if, addLists, p, differentLengthError, false, head, isZero, nil, cons, addList

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

inc#(s(x)) → inc#(x)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

append#(cons(y, ys), x) → append#(ys, x)

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilappend(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthErrorif(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

Original Signature

Termination of terms over the following signature is verified: append, true, tail, isEmpty, 0, s, inc, if, addLists, p, differentLengthError, false, head, isZero, nil, cons, addList

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

append#(cons(y, ys), x) → append#(ys, x)

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

p#(s(s(x))) → p#(s(x))

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilappend(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthErrorif(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

Original Signature

Termination of terms over the following signature is verified: append, true, tail, isEmpty, 0, s, inc, if, addLists, p, differentLengthError, false, head, isZero, nil, cons, addList

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

p#(s(s(x))) → p#(s(x))