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)) | → | x | | cddr(nil) | → | nil |
cddr(cons(x, nil)) | → | nil | | cddr(cons(x, cons(y, l))) | → | l |
cadr(cons(x, cons(y, l))) | → | y | | isZero(0) | → | true |
isZero(s(x)) | → | false | | plus(x, y) | → | ifplus(isZero(x), x, y) |
ifplus(true, x, y) | → | y | | ifplus(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) | → | 0 | | shorter(nil, y) | → | true |
shorter(cons(x, l), 0) | → | false | | shorter(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)) | → | x | | cddr(nil) | → | nil |
cddr(cons(x, nil)) | → | nil | | cddr(cons(x, cons(y, l))) | → | l |
cadr(cons(x, cons(y, l))) | → | y | | isZero(0) | → | true |
isZero(s(x)) | → | false | | plus(x, y) | → | ifplus(isZero(x), x, y) |
ifplus(true, x, y) | → | y | | ifplus(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) | → | 0 | | shorter(nil, y) | → | true |
shorter(cons(x, l), 0) | → | false | | shorter(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)) | → | x | | cddr(nil) | → | nil |
cddr(cons(x, nil)) | → | nil | | cddr(cons(x, cons(y, l))) | → | l |
cadr(cons(x, cons(y, l))) | → | y | | isZero(0) | → | true |
isZero(s(x)) | → | false | | plus(x, y) | → | ifplus(isZero(x), x, y) |
ifplus(true, x, y) | → | y | | ifplus(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) | → | 0 | | shorter(nil, y) | → | true |
shorter(cons(x, l), 0) | → | false | | shorter(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)) | → | x | | cddr(nil) | → | nil |
cddr(cons(x, nil)) | → | nil | | cddr(cons(x, cons(y, l))) | → | l |
cadr(cons(x, cons(y, l))) | → | y | | isZero(0) | → | true |
isZero(s(x)) | → | false | | plus(x, y) | → | ifplus(isZero(x), x, y) |
ifplus(true, x, y) | → | y | | ifplus(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) | → | 0 | | shorter(nil, y) | → | true |
shorter(cons(x, l), 0) | → | false | | shorter(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)) | → | x | | cddr(nil) | → | nil |
cddr(cons(x, nil)) | → | nil | | cddr(cons(x, cons(y, l))) | → | l |
cadr(cons(x, cons(y, l))) | → | y | | isZero(0) | → | true |
isZero(s(x)) | → | false | | plus(x, y) | → | ifplus(isZero(x), x, y) |
ifplus(true, x, y) | → | y | | ifplus(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) | → | 0 | | shorter(nil, y) | → | true |
shorter(cons(x, l), 0) | → | false | | shorter(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) |