TIMEOUT

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (219ms).
 | – Problem 2 remains open; application of the following processors failed [SubtermCriterion (4ms), DependencyGraph (6ms), PolynomialLinearRange4iUR (1830ms), DependencyGraph (5ms), PolynomialLinearRange8NegiUR (10000ms), DependencyGraph (3ms), ReductionPairSAT (546ms), DependencyGraph (4ms), SizeChangePrinciple (timeout)].
 | – Problem 3 remains open; application of the following processors failed [SubtermCriterion (1ms), DependencyGraph (2ms), PolynomialLinearRange4iUR (86ms), DependencyGraph (3ms), PolynomialLinearRange8NegiUR (2ms), DependencyGraph (2ms), ReductionPairSAT (194ms), DependencyGraph (3ms)].
 | – Problem 4 remains open; application of the following processors failed [SubtermCriterion (1ms), DependencyGraph (3ms), PolynomialLinearRange4iUR (77ms), DependencyGraph (2ms), PolynomialLinearRange8NegiUR (26ms), DependencyGraph (2ms), ReductionPairSAT (82ms), DependencyGraph (2ms)].
 | – Problem 5 was processed with processor SubtermCriterion (2ms).

The following open problems remain:



Open Dependency Pair Problem 2

Dependency Pairs

prod#(l) → if#(shorter(l, 0), shorter(l, s(0)), l)if#(false, b, l) → if2#(b, l)
if2#(false, l) → prod#(cons(times(car(l), cadr(l)), cddr(l)))

Rewrite Rules

car(cons(x, l)) → xcddr(nil) → nil
cddr(cons(x, nil)) → nilcddr(cons(x, cons(y, l))) → l
cadr(cons(x, cons(y, l))) → yisZero(0) → true
isZero(s(x)) → falseplus(x, y) → ifplus(isZero(x), x, y)
ifplus(true, x, y) → yifplus(false, x, y) → s(plus(p(x), y))
times(x, y) → iftimes(isZero(x), x, y)iftimes(true, x, y) → 0
iftimes(false, x, y) → plus(y, times(p(x), y))p(s(x)) → x
p(0) → 0shorter(nil, y) → true
shorter(cons(x, l), 0) → falseshorter(cons(x, l), s(y)) → shorter(l, y)
prod(l) → if(shorter(l, 0), shorter(l, s(0)), l)if(true, b, l) → s(0)
if(false, b, l) → if2(b, l)if2(true, l) → car(l)
if2(false, l) → prod(cons(times(car(l), cadr(l)), cddr(l)))

Original Signature

Termination of terms over the following signature is verified: car, plus, cadr, iftimes, true, if2, cddr, ifplus, 0, s, times, if, p, false, shorter, prod, cons, nil, isZero




Open Dependency Pair Problem 3

Dependency Pairs

iftimes#(false, x, y) → times#(p(x), y)times#(x, y) → iftimes#(isZero(x), x, y)

Rewrite Rules

car(cons(x, l)) → xcddr(nil) → nil
cddr(cons(x, nil)) → nilcddr(cons(x, cons(y, l))) → l
cadr(cons(x, cons(y, l))) → yisZero(0) → true
isZero(s(x)) → falseplus(x, y) → ifplus(isZero(x), x, y)
ifplus(true, x, y) → yifplus(false, x, y) → s(plus(p(x), y))
times(x, y) → iftimes(isZero(x), x, y)iftimes(true, x, y) → 0
iftimes(false, x, y) → plus(y, times(p(x), y))p(s(x)) → x
p(0) → 0shorter(nil, y) → true
shorter(cons(x, l), 0) → falseshorter(cons(x, l), s(y)) → shorter(l, y)
prod(l) → if(shorter(l, 0), shorter(l, s(0)), l)if(true, b, l) → s(0)
if(false, b, l) → if2(b, l)if2(true, l) → car(l)
if2(false, l) → prod(cons(times(car(l), cadr(l)), cddr(l)))

Original Signature

Termination of terms over the following signature is verified: car, plus, cadr, iftimes, true, if2, cddr, ifplus, 0, s, times, if, p, false, shorter, prod, cons, nil, isZero




Open Dependency Pair Problem 4

Dependency Pairs

plus#(x, y) → ifplus#(isZero(x), x, y)ifplus#(false, x, y) → plus#(p(x), y)

Rewrite Rules

car(cons(x, l)) → xcddr(nil) → nil
cddr(cons(x, nil)) → nilcddr(cons(x, cons(y, l))) → l
cadr(cons(x, cons(y, l))) → yisZero(0) → true
isZero(s(x)) → falseplus(x, y) → ifplus(isZero(x), x, y)
ifplus(true, x, y) → yifplus(false, x, y) → s(plus(p(x), y))
times(x, y) → iftimes(isZero(x), x, y)iftimes(true, x, y) → 0
iftimes(false, x, y) → plus(y, times(p(x), y))p(s(x)) → x
p(0) → 0shorter(nil, y) → true
shorter(cons(x, l), 0) → falseshorter(cons(x, l), s(y)) → shorter(l, y)
prod(l) → if(shorter(l, 0), shorter(l, s(0)), l)if(true, b, l) → s(0)
if(false, b, l) → if2(b, l)if2(true, l) → car(l)
if2(false, l) → prod(cons(times(car(l), cadr(l)), cddr(l)))

Original Signature

Termination of terms over the following signature is verified: car, plus, cadr, iftimes, true, if2, cddr, ifplus, 0, s, times, if, p, false, shorter, prod, cons, nil, isZero


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

prod#(l) → if#(shorter(l, 0), shorter(l, s(0)), l)if2#(false, l) → cadr#(l)
iftimes#(false, x, y) → plus#(y, times(p(x), y))if2#(true, l) → car#(l)
if#(false, b, l) → if2#(b, l)times#(x, y) → isZero#(x)
ifplus#(false, x, y) → p#(x)times#(x, y) → iftimes#(isZero(x), x, y)
if2#(false, l) → prod#(cons(times(car(l), cadr(l)), cddr(l)))ifplus#(false, x, y) → plus#(p(x), y)
iftimes#(false, x, y) → p#(x)shorter#(cons(x, l), s(y)) → shorter#(l, y)
if2#(false, l) → car#(l)prod#(l) → shorter#(l, 0)
if2#(false, l) → cddr#(l)iftimes#(false, x, y) → times#(p(x), y)
plus#(x, y) → isZero#(x)plus#(x, y) → ifplus#(isZero(x), x, y)
if2#(false, l) → times#(car(l), cadr(l))prod#(l) → shorter#(l, s(0))

Rewrite Rules

car(cons(x, l)) → xcddr(nil) → nil
cddr(cons(x, nil)) → nilcddr(cons(x, cons(y, l))) → l
cadr(cons(x, cons(y, l))) → yisZero(0) → true
isZero(s(x)) → falseplus(x, y) → ifplus(isZero(x), x, y)
ifplus(true, x, y) → yifplus(false, x, y) → s(plus(p(x), y))
times(x, y) → iftimes(isZero(x), x, y)iftimes(true, x, y) → 0
iftimes(false, x, y) → plus(y, times(p(x), y))p(s(x)) → x
p(0) → 0shorter(nil, y) → true
shorter(cons(x, l), 0) → falseshorter(cons(x, l), s(y)) → shorter(l, y)
prod(l) → if(shorter(l, 0), shorter(l, s(0)), l)if(true, b, l) → s(0)
if(false, b, l) → if2(b, l)if2(true, l) → car(l)
if2(false, l) → prod(cons(times(car(l), cadr(l)), cddr(l)))

Original Signature

Termination of terms over the following signature is verified: car, plus, cadr, iftimes, true, if2, cddr, ifplus, 0, s, times, if, p, false, shorter, isZero, nil, cons, prod

Strategy


The following SCCs where found

iftimes#(false, x, y) → times#(p(x), y)times#(x, y) → iftimes#(isZero(x), x, y)

shorter#(cons(x, l), s(y)) → shorter#(l, y)

plus#(x, y) → ifplus#(isZero(x), x, y)ifplus#(false, x, y) → plus#(p(x), y)

prod#(l) → if#(shorter(l, 0), shorter(l, s(0)), l)if#(false, b, l) → if2#(b, l)
if2#(false, l) → prod#(cons(times(car(l), cadr(l)), cddr(l)))

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

shorter#(cons(x, l), s(y)) → shorter#(l, y)

Rewrite Rules

car(cons(x, l)) → xcddr(nil) → nil
cddr(cons(x, nil)) → nilcddr(cons(x, cons(y, l))) → l
cadr(cons(x, cons(y, l))) → yisZero(0) → true
isZero(s(x)) → falseplus(x, y) → ifplus(isZero(x), x, y)
ifplus(true, x, y) → yifplus(false, x, y) → s(plus(p(x), y))
times(x, y) → iftimes(isZero(x), x, y)iftimes(true, x, y) → 0
iftimes(false, x, y) → plus(y, times(p(x), y))p(s(x)) → x
p(0) → 0shorter(nil, y) → true
shorter(cons(x, l), 0) → falseshorter(cons(x, l), s(y)) → shorter(l, y)
prod(l) → if(shorter(l, 0), shorter(l, s(0)), l)if(true, b, l) → s(0)
if(false, b, l) → if2(b, l)if2(true, l) → car(l)
if2(false, l) → prod(cons(times(car(l), cadr(l)), cddr(l)))

Original Signature

Termination of terms over the following signature is verified: car, plus, cadr, iftimes, true, if2, cddr, ifplus, 0, s, times, if, p, false, shorter, isZero, nil, cons, prod

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

shorter#(cons(x, l), s(y)) → shorter#(l, y)