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 (249ms).
 | – Problem 2 remains open; application of the following processors failed [SubtermCriterion (1ms), DependencyGraph (130ms), PolynomialLinearRange4iUR (8146ms), DependencyGraph (100ms), PolynomialLinearRange8NegiUR (30005ms), DependencyGraph (timeout), ReductionPairSAT (3030ms), DependencyGraph (95ms), SizeChangePrinciple (timeout)].

The following open problems remain:



Open Dependency Pair Problem 2

Dependency Pairs

add#(s(X), Y) → activate#(X)dbl#(s(X)) → activate#(X)
activate#(n__add(X1, X2)) → activate#(X2)activate#(n__dbl(X)) → dbl#(activate(X))
terms#(N) → sqr#(N)activate#(n__first(X1, X2)) → activate#(X2)
first#(s(X), cons(Y, Z)) → activate#(X)activate#(n__first(X1, X2)) → first#(activate(X1), activate(X2))
activate#(n__first(X1, X2)) → activate#(X1)activate#(n__add(X1, X2)) → activate#(X1)
first#(s(X), cons(Y, Z)) → activate#(Z)activate#(n__terms(X)) → activate#(X)
sqr#(s(X)) → activate#(X)activate#(n__sqr(X)) → activate#(X)
activate#(n__sqr(X)) → sqr#(activate(X))activate#(n__terms(X)) → terms#(activate(X))
activate#(n__add(X1, X2)) → add#(activate(X1), activate(X2))activate#(n__dbl(X)) → activate#(X)

Rewrite Rules

terms(N) → cons(recip(sqr(N)), n__terms(n__s(N)))sqr(0) → 0
sqr(s(X)) → s(n__add(n__sqr(activate(X)), n__dbl(activate(X))))dbl(0) → 0
dbl(s(X)) → s(n__s(n__dbl(activate(X))))add(0, X) → X
add(s(X), Y) → s(n__add(activate(X), Y))first(0, X) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(activate(X), activate(Z)))terms(X) → n__terms(X)
s(X) → n__s(X)add(X1, X2) → n__add(X1, X2)
sqr(X) → n__sqr(X)dbl(X) → n__dbl(X)
first(X1, X2) → n__first(X1, X2)activate(n__terms(X)) → terms(activate(X))
activate(n__s(X)) → s(X)activate(n__add(X1, X2)) → add(activate(X1), activate(X2))
activate(n__sqr(X)) → sqr(activate(X))activate(n__dbl(X)) → dbl(activate(X))
activate(n__first(X1, X2)) → first(activate(X1), activate(X2))activate(X) → X

Original Signature

Termination of terms over the following signature is verified: terms, sqr, n__sqr, dbl, recip, n__terms, add, n__s, activate, 0, s, n__first, n__add, first, n__dbl, nil, cons


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

dbl#(s(X)) → s#(n__s(n__dbl(activate(X))))activate#(n__add(X1, X2)) → activate#(X2)
dbl#(s(X)) → activate#(X)add#(s(X), Y) → activate#(X)
activate#(n__dbl(X)) → dbl#(activate(X))terms#(N) → sqr#(N)
sqr#(s(X)) → s#(n__add(n__sqr(activate(X)), n__dbl(activate(X))))activate#(n__first(X1, X2)) → activate#(X2)
first#(s(X), cons(Y, Z)) → activate#(X)activate#(n__s(X)) → s#(X)
activate#(n__first(X1, X2)) → first#(activate(X1), activate(X2))activate#(n__first(X1, X2)) → activate#(X1)
add#(s(X), Y) → s#(n__add(activate(X), Y))activate#(n__add(X1, X2)) → activate#(X1)
activate#(n__terms(X)) → activate#(X)first#(s(X), cons(Y, Z)) → activate#(Z)
sqr#(s(X)) → activate#(X)activate#(n__sqr(X)) → sqr#(activate(X))
activate#(n__sqr(X)) → activate#(X)activate#(n__terms(X)) → terms#(activate(X))
activate#(n__add(X1, X2)) → add#(activate(X1), activate(X2))activate#(n__dbl(X)) → activate#(X)

Rewrite Rules

terms(N) → cons(recip(sqr(N)), n__terms(n__s(N)))sqr(0) → 0
sqr(s(X)) → s(n__add(n__sqr(activate(X)), n__dbl(activate(X))))dbl(0) → 0
dbl(s(X)) → s(n__s(n__dbl(activate(X))))add(0, X) → X
add(s(X), Y) → s(n__add(activate(X), Y))first(0, X) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(activate(X), activate(Z)))terms(X) → n__terms(X)
s(X) → n__s(X)add(X1, X2) → n__add(X1, X2)
sqr(X) → n__sqr(X)dbl(X) → n__dbl(X)
first(X1, X2) → n__first(X1, X2)activate(n__terms(X)) → terms(activate(X))
activate(n__s(X)) → s(X)activate(n__add(X1, X2)) → add(activate(X1), activate(X2))
activate(n__sqr(X)) → sqr(activate(X))activate(n__dbl(X)) → dbl(activate(X))
activate(n__first(X1, X2)) → first(activate(X1), activate(X2))activate(X) → X

Original Signature

Termination of terms over the following signature is verified: terms, sqr, n__sqr, dbl, recip, n__terms, add, n__s, activate, 0, s, n__first, n__add, n__dbl, first, cons, nil

Strategy


The following SCCs where found

activate#(n__add(X1, X2)) → activate#(X2)dbl#(s(X)) → activate#(X)
add#(s(X), Y) → activate#(X)activate#(n__dbl(X)) → dbl#(activate(X))
terms#(N) → sqr#(N)activate#(n__first(X1, X2)) → activate#(X2)
first#(s(X), cons(Y, Z)) → activate#(X)activate#(n__first(X1, X2)) → first#(activate(X1), activate(X2))
activate#(n__first(X1, X2)) → activate#(X1)activate#(n__add(X1, X2)) → activate#(X1)
activate#(n__terms(X)) → activate#(X)first#(s(X), cons(Y, Z)) → activate#(Z)
sqr#(s(X)) → activate#(X)activate#(n__sqr(X)) → sqr#(activate(X))
activate#(n__sqr(X)) → activate#(X)activate#(n__terms(X)) → terms#(activate(X))
activate#(n__add(X1, X2)) → add#(activate(X1), activate(X2))activate#(n__dbl(X)) → activate#(X)