YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (84ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (868ms).
 |    | – Problem 3 was processed with processor DependencyGraph (3ms).
 |    |    | – Problem 4 was processed with processor PolynomialLinearRange4iUR (322ms).
 |    |    |    | – Problem 5 was processed with processor DependencyGraph (1ms).
 |    |    |    |    | – Problem 6 was processed with processor PolynomialLinearRange4iUR (15ms).
 |    |    |    |    |    | – Problem 7 was processed with processor PolynomialLinearRange4iUR (35ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

a__hd#(cons(X, Y))mark#(X)mark#(incr(X))a__incr#(mark(X))
a__nats#a__adx#(a__zeros)mark#(hd(X))mark#(X)
mark#(zeros)a__zeros#mark#(nats)a__nats#
mark#(incr(X))mark#(X)mark#(tl(X))a__tl#(mark(X))
mark#(adx(X))a__adx#(mark(X))mark#(hd(X))a__hd#(mark(X))
mark#(tl(X))mark#(X)mark#(adx(X))mark#(X)
a__adx#(cons(X, Y))a__incr#(cons(X, adx(Y)))a__tl#(cons(X, Y))mark#(Y)
a__nats#a__zeros#

Rewrite Rules

a__natsa__adx(a__zeros)a__zeroscons(0, zeros)
a__incr(cons(X, Y))cons(s(X), incr(Y))a__adx(cons(X, Y))a__incr(cons(X, adx(Y)))
a__hd(cons(X, Y))mark(X)a__tl(cons(X, Y))mark(Y)
mark(nats)a__natsmark(adx(X))a__adx(mark(X))
mark(zeros)a__zerosmark(incr(X))a__incr(mark(X))
mark(hd(X))a__hd(mark(X))mark(tl(X))a__tl(mark(X))
mark(cons(X1, X2))cons(X1, X2)mark(0)0
mark(s(X))s(X)a__natsnats
a__adx(X)adx(X)a__zeroszeros
a__incr(X)incr(X)a__hd(X)hd(X)
a__tl(X)tl(X)

Original Signature

Termination of terms over the following signature is verified: a__zeros, tl, hd, mark, a__nats, a__hd, nats, 0, s, a__incr, zeros, a__tl, adx, a__adx, incr, cons

Strategy


The following SCCs where found

mark#(tl(X)) → mark#(X)mark#(adx(X)) → mark#(X)
a__hd#(cons(X, Y)) → mark#(X)mark#(hd(X)) → mark#(X)
a__tl#(cons(X, Y)) → mark#(Y)mark#(incr(X)) → mark#(X)
mark#(tl(X)) → a__tl#(mark(X))mark#(hd(X)) → a__hd#(mark(X))

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(tl(X))mark#(X)mark#(adx(X))mark#(X)
a__hd#(cons(X, Y))mark#(X)mark#(hd(X))mark#(X)
a__tl#(cons(X, Y))mark#(Y)mark#(incr(X))mark#(X)
mark#(tl(X))a__tl#(mark(X))mark#(hd(X))a__hd#(mark(X))

Rewrite Rules

a__natsa__adx(a__zeros)a__zeroscons(0, zeros)
a__incr(cons(X, Y))cons(s(X), incr(Y))a__adx(cons(X, Y))a__incr(cons(X, adx(Y)))
a__hd(cons(X, Y))mark(X)a__tl(cons(X, Y))mark(Y)
mark(nats)a__natsmark(adx(X))a__adx(mark(X))
mark(zeros)a__zerosmark(incr(X))a__incr(mark(X))
mark(hd(X))a__hd(mark(X))mark(tl(X))a__tl(mark(X))
mark(cons(X1, X2))cons(X1, X2)mark(0)0
mark(s(X))s(X)a__natsnats
a__adx(X)adx(X)a__zeroszeros
a__incr(X)incr(X)a__hd(X)hd(X)
a__tl(X)tl(X)

Original Signature

Termination of terms over the following signature is verified: a__zeros, tl, hd, mark, a__nats, a__hd, nats, 0, s, a__incr, zeros, a__tl, adx, a__adx, incr, cons

Strategy


Polynomial Interpretation

Improved Usable rules

mark(s(X))s(X)mark(0)0
a__tl(X)tl(X)a__adx(cons(X, Y))a__incr(cons(X, adx(Y)))
mark(cons(X1, X2))cons(X1, X2)a__incr(cons(X, Y))cons(s(X), incr(Y))
a__adx(X)adx(X)a__zeroszeros
a__hd(X)hd(X)mark(hd(X))a__hd(mark(X))
a__natsa__adx(a__zeros)mark(nats)a__nats
mark(zeros)a__zerosmark(tl(X))a__tl(mark(X))
mark(incr(X))a__incr(mark(X))a__natsnats
a__tl(cons(X, Y))mark(Y)a__incr(X)incr(X)
a__zeroscons(0, zeros)mark(adx(X))a__adx(mark(X))
a__hd(cons(X, Y))mark(X)

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

mark#(tl(X))mark#(X)a__hd#(cons(X, Y))mark#(X)
mark#(hd(X))mark#(X)

Problem 3: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(adx(X))mark#(X)a__tl#(cons(X, Y))mark#(Y)
mark#(incr(X))mark#(X)mark#(tl(X))a__tl#(mark(X))
mark#(hd(X))a__hd#(mark(X))

Rewrite Rules

a__natsa__adx(a__zeros)a__zeroscons(0, zeros)
a__incr(cons(X, Y))cons(s(X), incr(Y))a__adx(cons(X, Y))a__incr(cons(X, adx(Y)))
a__hd(cons(X, Y))mark(X)a__tl(cons(X, Y))mark(Y)
mark(nats)a__natsmark(adx(X))a__adx(mark(X))
mark(zeros)a__zerosmark(incr(X))a__incr(mark(X))
mark(hd(X))a__hd(mark(X))mark(tl(X))a__tl(mark(X))
mark(cons(X1, X2))cons(X1, X2)mark(0)0
mark(s(X))s(X)a__natsnats
a__adx(X)adx(X)a__zeroszeros
a__incr(X)incr(X)a__hd(X)hd(X)
a__tl(X)tl(X)

Original Signature

Termination of terms over the following signature is verified: a__zeros, tl, hd, mark, a__nats, a__hd, nats, 0, s, a__incr, zeros, a__tl, a__adx, adx, incr, cons

Strategy


The following SCCs where found

mark#(adx(X)) → mark#(X)a__tl#(cons(X, Y)) → mark#(Y)
mark#(incr(X)) → mark#(X)mark#(tl(X)) → a__tl#(mark(X))

Problem 4: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(adx(X))mark#(X)a__tl#(cons(X, Y))mark#(Y)
mark#(incr(X))mark#(X)mark#(tl(X))a__tl#(mark(X))

Rewrite Rules

a__natsa__adx(a__zeros)a__zeroscons(0, zeros)
a__incr(cons(X, Y))cons(s(X), incr(Y))a__adx(cons(X, Y))a__incr(cons(X, adx(Y)))
a__hd(cons(X, Y))mark(X)a__tl(cons(X, Y))mark(Y)
mark(nats)a__natsmark(adx(X))a__adx(mark(X))
mark(zeros)a__zerosmark(incr(X))a__incr(mark(X))
mark(hd(X))a__hd(mark(X))mark(tl(X))a__tl(mark(X))
mark(cons(X1, X2))cons(X1, X2)mark(0)0
mark(s(X))s(X)a__natsnats
a__adx(X)adx(X)a__zeroszeros
a__incr(X)incr(X)a__hd(X)hd(X)
a__tl(X)tl(X)

Original Signature

Termination of terms over the following signature is verified: a__zeros, tl, hd, mark, a__nats, a__hd, nats, 0, s, a__incr, zeros, a__tl, a__adx, adx, incr, cons

Strategy


Polynomial Interpretation

Improved Usable rules

mark(s(X))s(X)mark(0)0
a__tl(X)tl(X)a__adx(cons(X, Y))a__incr(cons(X, adx(Y)))
mark(cons(X1, X2))cons(X1, X2)a__incr(cons(X, Y))cons(s(X), incr(Y))
a__adx(X)adx(X)a__zeroszeros
a__hd(X)hd(X)mark(hd(X))a__hd(mark(X))
a__natsa__adx(a__zeros)mark(nats)a__nats
mark(zeros)a__zerosmark(tl(X))a__tl(mark(X))
mark(incr(X))a__incr(mark(X))a__natsnats
a__tl(cons(X, Y))mark(Y)a__incr(X)incr(X)
a__zeroscons(0, zeros)mark(adx(X))a__adx(mark(X))
a__hd(cons(X, Y))mark(X)

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

mark#(tl(X))a__tl#(mark(X))

Problem 5: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(adx(X))mark#(X)a__tl#(cons(X, Y))mark#(Y)
mark#(incr(X))mark#(X)

Rewrite Rules

a__natsa__adx(a__zeros)a__zeroscons(0, zeros)
a__incr(cons(X, Y))cons(s(X), incr(Y))a__adx(cons(X, Y))a__incr(cons(X, adx(Y)))
a__hd(cons(X, Y))mark(X)a__tl(cons(X, Y))mark(Y)
mark(nats)a__natsmark(adx(X))a__adx(mark(X))
mark(zeros)a__zerosmark(incr(X))a__incr(mark(X))
mark(hd(X))a__hd(mark(X))mark(tl(X))a__tl(mark(X))
mark(cons(X1, X2))cons(X1, X2)mark(0)0
mark(s(X))s(X)a__natsnats
a__adx(X)adx(X)a__zeroszeros
a__incr(X)incr(X)a__hd(X)hd(X)
a__tl(X)tl(X)

Original Signature

Termination of terms over the following signature is verified: a__zeros, tl, hd, mark, a__nats, a__hd, nats, 0, s, a__incr, zeros, a__tl, adx, a__adx, incr, cons

Strategy


The following SCCs where found

mark#(adx(X)) → mark#(X)mark#(incr(X)) → mark#(X)

Problem 6: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(adx(X))mark#(X)mark#(incr(X))mark#(X)

Rewrite Rules

a__natsa__adx(a__zeros)a__zeroscons(0, zeros)
a__incr(cons(X, Y))cons(s(X), incr(Y))a__adx(cons(X, Y))a__incr(cons(X, adx(Y)))
a__hd(cons(X, Y))mark(X)a__tl(cons(X, Y))mark(Y)
mark(nats)a__natsmark(adx(X))a__adx(mark(X))
mark(zeros)a__zerosmark(incr(X))a__incr(mark(X))
mark(hd(X))a__hd(mark(X))mark(tl(X))a__tl(mark(X))
mark(cons(X1, X2))cons(X1, X2)mark(0)0
mark(s(X))s(X)a__natsnats
a__adx(X)adx(X)a__zeroszeros
a__incr(X)incr(X)a__hd(X)hd(X)
a__tl(X)tl(X)

Original Signature

Termination of terms over the following signature is verified: a__zeros, tl, hd, mark, a__nats, a__hd, nats, 0, s, a__incr, zeros, a__tl, adx, a__adx, incr, cons

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:

mark#(incr(X))mark#(X)

Problem 7: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(adx(X))mark#(X)

Rewrite Rules

a__natsa__adx(a__zeros)a__zeroscons(0, zeros)
a__incr(cons(X, Y))cons(s(X), incr(Y))a__adx(cons(X, Y))a__incr(cons(X, adx(Y)))
a__hd(cons(X, Y))mark(X)a__tl(cons(X, Y))mark(Y)
mark(nats)a__natsmark(adx(X))a__adx(mark(X))
mark(zeros)a__zerosmark(incr(X))a__incr(mark(X))
mark(hd(X))a__hd(mark(X))mark(tl(X))a__tl(mark(X))
mark(cons(X1, X2))cons(X1, X2)mark(0)0
mark(s(X))s(X)a__natsnats
a__adx(X)adx(X)a__zeroszeros
a__incr(X)incr(X)a__hd(X)hd(X)
a__tl(X)tl(X)

Original Signature

Termination of terms over the following signature is verified: a__zeros, tl, hd, mark, a__nats, a__hd, nats, 0, s, a__incr, zeros, a__tl, a__adx, adx, incr, cons

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:

mark#(adx(X))mark#(X)