YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (346ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (3612ms).
 |    | – Problem 8 was processed with processor PolynomialLinearRange4iUR (2127ms).
 |    |    | – Problem 9 was processed with processor PolynomialLinearRange4iUR (1662ms).
 |    |    |    | – Problem 10 was processed with processor PolynomialLinearRange4iUR (1540ms).
 |    |    |    |    | – Problem 11 was processed with processor PolynomialLinearRange4iUR (753ms).
 |    |    |    |    |    | – Problem 12 was processed with processor DependencyGraph (1ms).
 | – Problem 3 was processed with processor SubtermCriterion (1ms).
 |    | – Problem 6 was processed with processor SubtermCriterion (1ms).
 | – Problem 4 was processed with processor SubtermCriterion (21ms).
 | – Problem 5 was processed with processor SubtermCriterion (45ms).
 |    | – Problem 7 was processed with processor SubtermCriterion (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

and#(active(X1), X2) → and#(X1, X2)and#(X1, active(X2)) → and#(X1, X2)
mark#(tt) → active#(tt)mark#(s(X)) → s#(mark(X))
mark#(plus(X1, X2)) → mark#(X2)plus#(X1, mark(X2)) → plus#(X1, X2)
mark#(and(X1, X2)) → active#(and(mark(X1), X2))mark#(s(X)) → mark#(X)
and#(X1, mark(X2)) → and#(X1, X2)active#(plus(N, s(M))) → plus#(N, M)
mark#(0) → active#(0)mark#(plus(X1, X2)) → active#(plus(mark(X1), mark(X2)))
mark#(s(X)) → active#(s(mark(X)))mark#(and(X1, X2)) → and#(mark(X1), X2)
active#(plus(N, 0)) → mark#(N)mark#(plus(X1, X2)) → plus#(mark(X1), mark(X2))
active#(and(tt, X)) → mark#(X)and#(mark(X1), X2) → and#(X1, X2)
mark#(plus(X1, X2)) → mark#(X1)s#(mark(X)) → s#(X)
mark#(and(X1, X2)) → mark#(X1)active#(plus(N, s(M))) → s#(plus(N, M))
active#(plus(N, s(M))) → mark#(s(plus(N, M)))plus#(X1, active(X2)) → plus#(X1, X2)
s#(active(X)) → s#(X)plus#(mark(X1), X2) → plus#(X1, X2)
plus#(active(X1), X2) → plus#(X1, X2)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and

Strategy


The following SCCs where found

s#(mark(X)) → s#(X)s#(active(X)) → s#(X)

and#(active(X1), X2) → and#(X1, X2)and#(X1, active(X2)) → and#(X1, X2)
and#(mark(X1), X2) → and#(X1, X2)and#(X1, mark(X2)) → and#(X1, X2)

mark#(and(X1, X2)) → mark#(X1)mark#(plus(X1, X2)) → active#(plus(mark(X1), mark(X2)))
mark#(s(X)) → active#(s(mark(X)))mark#(plus(X1, X2)) → mark#(X2)
active#(plus(N, 0)) → mark#(N)active#(plus(N, s(M))) → mark#(s(plus(N, M)))
mark#(and(X1, X2)) → active#(and(mark(X1), X2))mark#(s(X)) → mark#(X)
active#(and(tt, X)) → mark#(X)mark#(plus(X1, X2)) → mark#(X1)

plus#(X1, active(X2)) → plus#(X1, X2)plus#(X1, mark(X2)) → plus#(X1, X2)
plus#(mark(X1), X2) → plus#(X1, X2)plus#(active(X1), X2) → plus#(X1, X2)

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2)) → mark#(X1)mark#(plus(X1, X2)) → active#(plus(mark(X1), mark(X2)))
mark#(s(X)) → active#(s(mark(X)))mark#(plus(X1, X2)) → mark#(X2)
active#(plus(N, 0)) → mark#(N)active#(plus(N, s(M))) → mark#(s(plus(N, M)))
mark#(and(X1, X2)) → active#(and(mark(X1), X2))mark#(s(X)) → mark#(X)
active#(and(tt, X)) → mark#(X)mark#(plus(X1, X2)) → mark#(X1)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and

Strategy


Polynomial Interpretation

Improved Usable rules

and(X1, mark(X2)) → and(X1, X2)plus(active(X1), X2) → plus(X1, X2)
and(mark(X1), X2) → and(X1, X2)plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)s(mark(X)) → s(X)
and(X1, active(X2)) → and(X1, X2)and(active(X1), X2) → and(X1, X2)
s(active(X)) → s(X)plus(X1, active(X2)) → plus(X1, X2)

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

mark#(s(X)) → active#(s(mark(X)))

Problem 8: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2)) → mark#(X1)mark#(plus(X1, X2)) → active#(plus(mark(X1), mark(X2)))
mark#(plus(X1, X2)) → mark#(X2)active#(plus(N, s(M))) → mark#(s(plus(N, M)))
active#(plus(N, 0)) → mark#(N)mark#(and(X1, X2)) → active#(and(mark(X1), X2))
mark#(s(X)) → mark#(X)active#(and(tt, X)) → mark#(X)
mark#(plus(X1, X2)) → mark#(X1)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and

Strategy


Polynomial Interpretation

Improved Usable rules

plus(X1, mark(X2)) → plus(X1, X2)mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))mark(tt) → active(tt)
active(plus(N, s(M))) → mark(s(plus(N, M)))and(active(X1), X2) → and(X1, X2)
active(and(tt, X)) → mark(X)and(X1, mark(X2)) → and(X1, X2)
and(mark(X1), X2) → and(X1, X2)plus(active(X1), X2) → plus(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)mark(and(X1, X2)) → active(and(mark(X1), X2))
active(plus(N, 0)) → mark(N)s(mark(X)) → s(X)
and(X1, active(X2)) → and(X1, X2)mark(0) → active(0)
s(active(X)) → s(X)plus(X1, active(X2)) → plus(X1, X2)

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

mark#(and(X1, X2)) → mark#(X1)mark#(plus(X1, X2)) → mark#(X2)
active#(plus(N, 0)) → mark#(N)active#(and(tt, X)) → mark#(X)
mark#(plus(X1, X2)) → mark#(X1)

Problem 9: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(plus(X1, X2)) → active#(plus(mark(X1), mark(X2)))active#(plus(N, s(M))) → mark#(s(plus(N, M)))
mark#(and(X1, X2)) → active#(and(mark(X1), X2))mark#(s(X)) → mark#(X)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and

Strategy


Polynomial Interpretation

Improved Usable rules

plus(X1, mark(X2)) → plus(X1, X2)mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))mark(tt) → active(tt)
active(plus(N, s(M))) → mark(s(plus(N, M)))and(active(X1), X2) → and(X1, X2)
active(and(tt, X)) → mark(X)and(X1, mark(X2)) → and(X1, X2)
and(mark(X1), X2) → and(X1, X2)plus(active(X1), X2) → plus(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)mark(and(X1, X2)) → active(and(mark(X1), X2))
active(plus(N, 0)) → mark(N)s(mark(X)) → s(X)
and(X1, active(X2)) → and(X1, X2)mark(0) → active(0)
s(active(X)) → s(X)plus(X1, active(X2)) → plus(X1, X2)

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

mark#(s(X)) → mark#(X)

Problem 10: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(plus(X1, X2)) → active#(plus(mark(X1), mark(X2)))active#(plus(N, s(M))) → mark#(s(plus(N, M)))
mark#(and(X1, X2)) → active#(and(mark(X1), X2))

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and

Strategy


Polynomial Interpretation

Improved Usable rules

s(mark(X)) → s(X)s(active(X)) → s(X)

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

mark#(plus(X1, X2)) → active#(plus(mark(X1), mark(X2)))

Problem 11: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

active#(plus(N, s(M))) → mark#(s(plus(N, M)))mark#(and(X1, X2)) → active#(and(mark(X1), X2))

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and

Strategy


Polynomial Interpretation

Improved Usable rules

and(X1, mark(X2)) → and(X1, X2)and(mark(X1), X2) → and(X1, X2)
s(mark(X)) → s(X)and(X1, active(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)s(active(X)) → s(X)

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

active#(plus(N, s(M))) → mark#(s(plus(N, M)))

Problem 12: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2)) → active#(and(mark(X1), X2))

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and

Strategy


There are no SCCs!

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

and#(active(X1), X2) → and#(X1, X2)and#(X1, active(X2)) → and#(X1, X2)
and#(mark(X1), X2) → and#(X1, X2)and#(X1, mark(X2)) → and#(X1, X2)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

and#(active(X1), X2) → and#(X1, X2)and#(mark(X1), X2) → and#(X1, X2)

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

and#(X1, active(X2)) → and#(X1, X2)and#(X1, mark(X2)) → and#(X1, X2)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

and#(X1, active(X2)) → and#(X1, X2)and#(X1, mark(X2)) → and#(X1, X2)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

s#(mark(X)) → s#(X)s#(active(X)) → s#(X)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

s#(mark(X)) → s#(X)s#(active(X)) → s#(X)

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

plus#(X1, active(X2)) → plus#(X1, X2)plus#(X1, mark(X2)) → plus#(X1, X2)
plus#(mark(X1), X2) → plus#(X1, X2)plus#(active(X1), X2) → plus#(X1, X2)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

plus#(mark(X1), X2) → plus#(X1, X2)plus#(active(X1), X2) → plus#(X1, X2)

Problem 7: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

plus#(X1, mark(X2)) → plus#(X1, X2)plus#(X1, active(X2)) → plus#(X1, X2)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

plus#(X1, active(X2)) → plus#(X1, X2)plus#(X1, mark(X2)) → plus#(X1, X2)