YES

The TRS could be proven terminating. The proof took 725 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (55ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (132ms).
 | – Problem 3 was processed with processor SubtermCriterion (1ms).
 | – Problem 4 was processed with processor SubtermCriterion (1ms).
 | – Problem 5 was processed with processor PolynomialLinearRange4iUR (88ms).
 |    | – Problem 6 was processed with processor DependencyGraph (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

quot#(s(X), s(Y)) → quot#(minus(X, Y), s(Y))zWquot#(cons(X, XS), cons(Y, YS)) → activate#(YS)
minus#(s(X), s(Y)) → minus#(X, Y)activate#(n__zWquot(X1, X2)) → zWquot#(X1, X2)
activate#(n__from(X)) → from#(X)sel#(s(N), cons(X, XS)) → sel#(N, activate(XS))
quot#(s(X), s(Y)) → minus#(X, Y)zWquot#(cons(X, XS), cons(Y, YS)) → quot#(X, Y)
sel#(s(N), cons(X, XS)) → activate#(XS)zWquot#(cons(X, XS), cons(Y, YS)) → activate#(XS)

Rewrite Rules

from(X) → cons(X, n__from(s(X)))sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))zWquot(XS, nil) → nil
zWquot(nil, XS) → nilzWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X

Original Signature

Termination of terms over the following signature is verified: activate, n__zWquot, 0, minus, s, n__from, zWquot, from, sel, quot, cons, nil

Strategy


The following SCCs where found

quot#(s(X), s(Y)) → quot#(minus(X, Y), s(Y))

minus#(s(X), s(Y)) → minus#(X, Y)

zWquot#(cons(X, XS), cons(Y, YS)) → activate#(YS)activate#(n__zWquot(X1, X2)) → zWquot#(X1, X2)
zWquot#(cons(X, XS), cons(Y, YS)) → activate#(XS)

sel#(s(N), cons(X, XS)) → sel#(N, activate(XS))

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

quot#(s(X), s(Y)) → quot#(minus(X, Y), s(Y))

Rewrite Rules

from(X) → cons(X, n__from(s(X)))sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))zWquot(XS, nil) → nil
zWquot(nil, XS) → nilzWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X

Original Signature

Termination of terms over the following signature is verified: activate, n__zWquot, 0, minus, s, n__from, zWquot, from, sel, quot, cons, nil

Strategy


Polynomial Interpretation

Improved Usable rules

minus(s(X), s(Y)) → minus(X, Y)minus(X, 0) → 0

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

quot#(s(X), s(Y)) → quot#(minus(X, Y), s(Y))

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

minus#(s(X), s(Y)) → minus#(X, Y)

Rewrite Rules

from(X) → cons(X, n__from(s(X)))sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))zWquot(XS, nil) → nil
zWquot(nil, XS) → nilzWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X

Original Signature

Termination of terms over the following signature is verified: activate, n__zWquot, 0, minus, s, n__from, zWquot, from, sel, quot, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

minus#(s(X), s(Y)) → minus#(X, Y)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

sel#(s(N), cons(X, XS)) → sel#(N, activate(XS))

Rewrite Rules

from(X) → cons(X, n__from(s(X)))sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))zWquot(XS, nil) → nil
zWquot(nil, XS) → nilzWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X

Original Signature

Termination of terms over the following signature is verified: activate, n__zWquot, 0, minus, s, n__from, zWquot, from, sel, quot, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

sel#(s(N), cons(X, XS)) → sel#(N, activate(XS))

Problem 5: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

zWquot#(cons(X, XS), cons(Y, YS)) → activate#(YS)activate#(n__zWquot(X1, X2)) → zWquot#(X1, X2)
zWquot#(cons(X, XS), cons(Y, YS)) → activate#(XS)

Rewrite Rules

from(X) → cons(X, n__from(s(X)))sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))zWquot(XS, nil) → nil
zWquot(nil, XS) → nilzWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X

Original Signature

Termination of terms over the following signature is verified: activate, n__zWquot, 0, minus, s, n__from, zWquot, from, sel, quot, cons, nil

Strategy


Polynomial Interpretation

There are no usable rules

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

activate#(n__zWquot(X1, X2)) → zWquot#(X1, X2)

Problem 6: DependencyGraph



Dependency Pair Problem

Dependency Pairs

zWquot#(cons(X, XS), cons(Y, YS)) → activate#(YS)zWquot#(cons(X, XS), cons(Y, YS)) → activate#(XS)

Rewrite Rules

from(X) → cons(X, n__from(s(X)))sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))zWquot(XS, nil) → nil
zWquot(nil, XS) → nilzWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X

Original Signature

Termination of terms over the following signature is verified: activate, n__zWquot, minus, 0, n__from, s, zWquot, from, quot, sel, nil, cons

Strategy


There are no SCCs!