YES
The TRS could be proven terminating. The proof took 2371 ms.
Problem 1 was processed with processor DependencyGraph (167ms). | Problem 2 was processed with processor PolynomialLinearRange4 (33ms). | Problem 3 was processed with processor ReductionPairSAT (1262ms). | | Problem 7 was processed with processor DependencyGraph (2ms). | Problem 4 was processed with processor PolynomialLinearRange4 (120ms). | Problem 5 was processed with processor PolynomialLinearRange4 (14ms). | | Problem 6 was processed with processor PolynomialLinearRange4 (11ms).
2ndspos#(s(N), cons2(X, cons(Y, Z))) | → | 2ndsneg#(N, Z) | 2ndsneg#(s(N), cons2(X, cons(Y, Z))) | → | 2ndspos#(N, Z) | |
T(from(x_1)) | → | T(x_1) | pi#(X) | → | 2ndspos#(X, from(0)) | |
pi#(X) | → | from#(0) | times#(s(X), Y) | → | plus#(Y, times(X, Y)) | |
2ndspos#(s(N), cons(X, Z)) | → | 2ndspos#(s(N), cons2(X, Z)) | times#(s(X), Y) | → | times#(X, Y) | |
2ndspos#(s(N), cons(X, Z)) | → | T(Z) | 2ndsneg#(s(N), cons2(X, cons(Y, Z))) | → | T(Z) | |
square#(X) | → | times#(X, X) | 2ndsneg#(s(N), cons(X, Z)) | → | T(Z) | |
T(s(x_1)) | → | T(x_1) | plus#(s(X), Y) | → | plus#(X, Y) | |
2ndspos#(s(N), cons2(X, cons(Y, Z))) | → | T(Z) | T(from(s(X))) | → | from#(s(X)) | |
2ndsneg#(s(N), cons(X, Z)) | → | 2ndsneg#(s(N), cons2(X, Z)) |
from(X) | → | cons(X, from(s(X))) | 2ndspos(0, Z) | → | rnil | |
2ndspos(s(N), cons(X, Z)) | → | 2ndspos(s(N), cons2(X, Z)) | 2ndspos(s(N), cons2(X, cons(Y, Z))) | → | rcons(posrecip(Y), 2ndsneg(N, Z)) | |
2ndsneg(0, Z) | → | rnil | 2ndsneg(s(N), cons(X, Z)) | → | 2ndsneg(s(N), cons2(X, Z)) | |
2ndsneg(s(N), cons2(X, cons(Y, Z))) | → | rcons(negrecip(Y), 2ndspos(N, Z)) | pi(X) | → | 2ndspos(X, from(0)) | |
plus(0, Y) | → | Y | plus(s(X), Y) | → | s(plus(X, Y)) | |
times(0, Y) | → | 0 | times(s(X), Y) | → | plus(Y, times(X, Y)) | |
square(X) | → | times(X, X) |
Termination of terms over the following signature is verified: posrecip, negrecip, plus, cons2, rnil, from, rcons, 2ndspos, 0, s, times, 2ndsneg, square, pi, cons
Context-sensitive strategy:
μ(rnil) = μ(T) = μ(0) = μ(nil) = ∅
μ(posrecip) = μ(negrecip) = μ(from#) = μ(square#) = μ(pi#) = μ(from) = μ(s) = μ(square) = μ(pi) = μ(cons) = {1}
μ(cons2) = {2}
μ(plus) = μ(2ndspos#) = μ(2ndsneg#) = μ(rcons) = μ(2ndspos) = μ(times#) = μ(times) = μ(2ndsneg) = μ(plus#) = {1, 2}
T(s(x_1)) → T(x_1) | T(from(x_1)) → T(x_1) |
2ndspos#(s(N), cons2(X, cons(Y, Z))) → 2ndsneg#(N, Z) | 2ndsneg#(s(N), cons2(X, cons(Y, Z))) → 2ndspos#(N, Z) |
2ndspos#(s(N), cons(X, Z)) → 2ndspos#(s(N), cons2(X, Z)) | 2ndsneg#(s(N), cons(X, Z)) → 2ndsneg#(s(N), cons2(X, Z)) |
plus#(s(X), Y) → plus#(X, Y) |
times#(s(X), Y) → times#(X, Y) |
times#(s(X), Y) | → | times#(X, Y) |
from(X) | → | cons(X, from(s(X))) | 2ndspos(0, Z) | → | rnil | |
2ndspos(s(N), cons(X, Z)) | → | 2ndspos(s(N), cons2(X, Z)) | 2ndspos(s(N), cons2(X, cons(Y, Z))) | → | rcons(posrecip(Y), 2ndsneg(N, Z)) | |
2ndsneg(0, Z) | → | rnil | 2ndsneg(s(N), cons(X, Z)) | → | 2ndsneg(s(N), cons2(X, Z)) | |
2ndsneg(s(N), cons2(X, cons(Y, Z))) | → | rcons(negrecip(Y), 2ndspos(N, Z)) | pi(X) | → | 2ndspos(X, from(0)) | |
plus(0, Y) | → | Y | plus(s(X), Y) | → | s(plus(X, Y)) | |
times(0, Y) | → | 0 | times(s(X), Y) | → | plus(Y, times(X, Y)) | |
square(X) | → | times(X, X) |
Termination of terms over the following signature is verified: posrecip, negrecip, plus, cons2, rnil, from, rcons, 2ndspos, 0, s, times, 2ndsneg, square, pi, cons
Context-sensitive strategy:
μ(rnil) = μ(T) = μ(0) = μ(nil) = ∅
μ(posrecip) = μ(negrecip) = μ(from#) = μ(square#) = μ(pi#) = μ(from) = μ(s) = μ(square) = μ(pi) = μ(cons) = {1}
μ(cons2) = {2}
μ(plus) = μ(2ndspos#) = μ(2ndsneg#) = μ(rcons) = μ(2ndspos) = μ(times#) = μ(2ndsneg) = μ(times) = μ(plus#) = {1, 2}
There are no usable rules
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
times#(s(X), Y) | → | times#(X, Y) |
2ndspos#(s(N), cons2(X, cons(Y, Z))) | → | 2ndsneg#(N, Z) | 2ndsneg#(s(N), cons2(X, cons(Y, Z))) | → | 2ndspos#(N, Z) | |
2ndspos#(s(N), cons(X, Z)) | → | 2ndspos#(s(N), cons2(X, Z)) | 2ndsneg#(s(N), cons(X, Z)) | → | 2ndsneg#(s(N), cons2(X, Z)) |
from(X) | → | cons(X, from(s(X))) | 2ndspos(0, Z) | → | rnil | |
2ndspos(s(N), cons(X, Z)) | → | 2ndspos(s(N), cons2(X, Z)) | 2ndspos(s(N), cons2(X, cons(Y, Z))) | → | rcons(posrecip(Y), 2ndsneg(N, Z)) | |
2ndsneg(0, Z) | → | rnil | 2ndsneg(s(N), cons(X, Z)) | → | 2ndsneg(s(N), cons2(X, Z)) | |
2ndsneg(s(N), cons2(X, cons(Y, Z))) | → | rcons(negrecip(Y), 2ndspos(N, Z)) | pi(X) | → | 2ndspos(X, from(0)) | |
plus(0, Y) | → | Y | plus(s(X), Y) | → | s(plus(X, Y)) | |
times(0, Y) | → | 0 | times(s(X), Y) | → | plus(Y, times(X, Y)) | |
square(X) | → | times(X, X) |
Termination of terms over the following signature is verified: posrecip, negrecip, plus, cons2, rnil, from, rcons, 2ndspos, 0, s, times, 2ndsneg, square, pi, cons
Context-sensitive strategy:
μ(rnil) = μ(T) = μ(0) = μ(nil) = ∅
μ(posrecip) = μ(negrecip) = μ(from#) = μ(square#) = μ(pi#) = μ(from) = μ(s) = μ(square) = μ(pi) = μ(cons) = {1}
μ(cons2) = {2}
μ(plus) = μ(2ndspos#) = μ(2ndsneg#) = μ(rcons) = μ(2ndspos) = μ(times#) = μ(2ndsneg) = μ(times) = μ(plus#) = {1, 2}
plus: 1 2
posrecip: all arguments are removed from posrecip
negrecip: all arguments are removed from negrecip
cons2: collapses to 2
2ndspos#: collapses to 1
rnil: all arguments are removed from rnil
2ndsneg#: 1
from: collapses to 1
rcons: collapses to 1
2ndspos: all arguments are removed from 2ndspos
0: all arguments are removed from 0
s: 1
times: 1 2
2ndsneg: collapses to 1
square: all arguments are removed from square
pi: all arguments are removed from pi
cons: collapses to 1
plus(0, Y) → Y | 2ndspos(s(N), cons2(X, cons(Y, Z))) → rcons(posrecip(Y), 2ndsneg(N, Z)) |
times(0, Y) → 0 | 2ndspos(0, Z) → rnil |
plus(s(X), Y) → s(plus(X, Y)) | 2ndsneg(s(N), cons2(X, cons(Y, Z))) → rcons(negrecip(Y), 2ndspos(N, Z)) |
from(X) → cons(X, from(s(X))) | times(s(X), Y) → plus(Y, times(X, Y)) |
2ndsneg(0, Z) → rnil | 2ndspos(s(N), cons(X, Z)) → 2ndspos(s(N), cons2(X, Z)) |
2ndsneg(s(N), cons(X, Z)) → 2ndsneg(s(N), cons2(X, Z)) |
The following dependency pairs (at least) can be eliminated according to the given precedence.
2ndsneg#(s(N), cons2(X, cons(Y, Z))) → 2ndspos#(N, Z) |
2ndspos#(s(N), cons2(X, cons(Y, Z))) | → | 2ndsneg#(N, Z) | 2ndsneg#(s(N), cons(X, Z)) | → | 2ndsneg#(s(N), cons2(X, Z)) | |
2ndspos#(s(N), cons(X, Z)) | → | 2ndspos#(s(N), cons2(X, Z)) |
from(X) | → | cons(X, from(s(X))) | 2ndspos(0, Z) | → | rnil | |
2ndspos(s(N), cons(X, Z)) | → | 2ndspos(s(N), cons2(X, Z)) | 2ndspos(s(N), cons2(X, cons(Y, Z))) | → | rcons(posrecip(Y), 2ndsneg(N, Z)) | |
2ndsneg(0, Z) | → | rnil | 2ndsneg(s(N), cons(X, Z)) | → | 2ndsneg(s(N), cons2(X, Z)) | |
2ndsneg(s(N), cons2(X, cons(Y, Z))) | → | rcons(negrecip(Y), 2ndspos(N, Z)) | pi(X) | → | 2ndspos(X, from(0)) | |
plus(0, Y) | → | Y | plus(s(X), Y) | → | s(plus(X, Y)) | |
times(0, Y) | → | 0 | times(s(X), Y) | → | plus(Y, times(X, Y)) | |
square(X) | → | times(X, X) |
Termination of terms over the following signature is verified: posrecip, negrecip, plus, cons2, rnil, from, rcons, 2ndspos, 0, s, times, 2ndsneg, square, pi, cons
Context-sensitive strategy:
μ(rnil) = μ(T) = μ(0) = μ(nil) = ∅
μ(posrecip) = μ(negrecip) = μ(from#) = μ(square#) = μ(pi#) = μ(from) = μ(s) = μ(square) = μ(pi) = μ(cons) = {1}
μ(cons2) = {2}
μ(plus) = μ(2ndspos#) = μ(2ndsneg#) = μ(rcons) = μ(2ndspos) = μ(times#) = μ(times) = μ(2ndsneg) = μ(plus#) = {1, 2}
plus#(s(X), Y) | → | plus#(X, Y) |
from(X) | → | cons(X, from(s(X))) | 2ndspos(0, Z) | → | rnil | |
2ndspos(s(N), cons(X, Z)) | → | 2ndspos(s(N), cons2(X, Z)) | 2ndspos(s(N), cons2(X, cons(Y, Z))) | → | rcons(posrecip(Y), 2ndsneg(N, Z)) | |
2ndsneg(0, Z) | → | rnil | 2ndsneg(s(N), cons(X, Z)) | → | 2ndsneg(s(N), cons2(X, Z)) | |
2ndsneg(s(N), cons2(X, cons(Y, Z))) | → | rcons(negrecip(Y), 2ndspos(N, Z)) | pi(X) | → | 2ndspos(X, from(0)) | |
plus(0, Y) | → | Y | plus(s(X), Y) | → | s(plus(X, Y)) | |
times(0, Y) | → | 0 | times(s(X), Y) | → | plus(Y, times(X, Y)) | |
square(X) | → | times(X, X) |
Termination of terms over the following signature is verified: posrecip, negrecip, plus, cons2, rnil, from, rcons, 2ndspos, 0, s, times, 2ndsneg, square, pi, cons
Context-sensitive strategy:
μ(rnil) = μ(T) = μ(0) = μ(nil) = ∅
μ(posrecip) = μ(negrecip) = μ(from#) = μ(square#) = μ(pi#) = μ(from) = μ(s) = μ(square) = μ(pi) = μ(cons) = {1}
μ(cons2) = {2}
μ(plus) = μ(2ndspos#) = μ(2ndsneg#) = μ(rcons) = μ(2ndspos) = μ(times#) = μ(2ndsneg) = μ(times) = μ(plus#) = {1, 2}
There are no usable rules
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
plus#(s(X), Y) | → | plus#(X, Y) |
T(s(x_1)) | → | T(x_1) | T(from(x_1)) | → | T(x_1) |
from(X) | → | cons(X, from(s(X))) | 2ndspos(0, Z) | → | rnil | |
2ndspos(s(N), cons(X, Z)) | → | 2ndspos(s(N), cons2(X, Z)) | 2ndspos(s(N), cons2(X, cons(Y, Z))) | → | rcons(posrecip(Y), 2ndsneg(N, Z)) | |
2ndsneg(0, Z) | → | rnil | 2ndsneg(s(N), cons(X, Z)) | → | 2ndsneg(s(N), cons2(X, Z)) | |
2ndsneg(s(N), cons2(X, cons(Y, Z))) | → | rcons(negrecip(Y), 2ndspos(N, Z)) | pi(X) | → | 2ndspos(X, from(0)) | |
plus(0, Y) | → | Y | plus(s(X), Y) | → | s(plus(X, Y)) | |
times(0, Y) | → | 0 | times(s(X), Y) | → | plus(Y, times(X, Y)) | |
square(X) | → | times(X, X) |
Termination of terms over the following signature is verified: posrecip, negrecip, plus, cons2, rnil, from, rcons, 2ndspos, 0, s, times, 2ndsneg, square, pi, cons
Context-sensitive strategy:
μ(rnil) = μ(T) = μ(0) = μ(nil) = ∅
μ(posrecip) = μ(negrecip) = μ(from#) = μ(square#) = μ(pi#) = μ(from) = μ(s) = μ(square) = μ(pi) = μ(cons) = {1}
μ(cons2) = {2}
μ(plus) = μ(2ndspos#) = μ(2ndsneg#) = μ(rcons) = μ(2ndspos) = μ(times#) = μ(2ndsneg) = μ(times) = μ(plus#) = {1, 2}
There are no usable rules
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
T(from(x_1)) | → | T(x_1) |
T(s(x_1)) | → | T(x_1) |
from(X) | → | cons(X, from(s(X))) | 2ndspos(0, Z) | → | rnil | |
2ndspos(s(N), cons(X, Z)) | → | 2ndspos(s(N), cons2(X, Z)) | 2ndspos(s(N), cons2(X, cons(Y, Z))) | → | rcons(posrecip(Y), 2ndsneg(N, Z)) | |
2ndsneg(0, Z) | → | rnil | 2ndsneg(s(N), cons(X, Z)) | → | 2ndsneg(s(N), cons2(X, Z)) | |
2ndsneg(s(N), cons2(X, cons(Y, Z))) | → | rcons(negrecip(Y), 2ndspos(N, Z)) | pi(X) | → | 2ndspos(X, from(0)) | |
plus(0, Y) | → | Y | plus(s(X), Y) | → | s(plus(X, Y)) | |
times(0, Y) | → | 0 | times(s(X), Y) | → | plus(Y, times(X, Y)) | |
square(X) | → | times(X, X) |
Termination of terms over the following signature is verified: posrecip, negrecip, plus, cons2, rnil, from, rcons, 2ndspos, 0, s, times, 2ndsneg, square, pi, cons
Context-sensitive strategy:
μ(rnil) = μ(T) = μ(0) = μ(nil) = ∅
μ(posrecip) = μ(negrecip) = μ(from#) = μ(square#) = μ(pi#) = μ(from) = μ(s) = μ(square) = μ(pi) = μ(cons) = {1}
μ(cons2) = {2}
μ(plus) = μ(2ndspos#) = μ(2ndsneg#) = μ(rcons) = μ(2ndspos) = μ(times#) = μ(times) = μ(2ndsneg) = μ(plus#) = {1, 2}
There are no usable rules
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
T(s(x_1)) | → | T(x_1) |