YES

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

The following DP Processors were used


Problem 1 was processed with processor PolynomialLinearRange4iUR (763ms).
 | – Problem 2 was processed with processor DependencyGraph (9ms).
 |    | – Problem 3 was processed with processor PolynomialLinearRange4iUR (235ms).
 |    |    | – Problem 4 was processed with processor PolynomialLinearRange4iUR (317ms).
 |    |    |    | – Problem 5 was processed with processor DependencyGraph (1ms).
 |    |    |    |    | – Problem 6 was processed with processor PolynomialLinearRange4iUR (150ms).
 |    |    |    |    | – Problem 7 was processed with processor PolynomialLinearRange4iUR (6ms).

Problem 1: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)a__plus#(N, s(M))a__plus#(mark(N), mark(M))
mark#(and(X1, X2))a__and#(mark(X1), X2)mark#(plus(X1, X2))mark#(X2)
mark#(plus(X1, X2))a__plus#(mark(X1), mark(X2))a__and#(tt, X)mark#(X)
a__plus#(N, s(M))mark#(N)mark#(s(X))mark#(X)
a__plus#(N, 0)mark#(N)a__plus#(N, s(M))mark#(M)
mark#(plus(X1, X2))mark#(X1)

Rewrite Rules

a__and(tt, X)mark(X)a__plus(N, 0)mark(N)
a__plus(N, s(M))s(a__plus(mark(N), mark(M)))mark(and(X1, X2))a__and(mark(X1), X2)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(tt)tt
mark(0)0mark(s(X))s(mark(X))
a__and(X1, X2)and(X1, X2)a__plus(X1, X2)plus(X1, X2)

Original Signature

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

Strategy


Polynomial Interpretation

Improved Usable rules

mark(tt)ttmark(and(X1, X2))a__and(mark(X1), X2)
mark(0)0a__plus(N, 0)mark(N)
a__plus(N, s(M))s(a__plus(mark(N), mark(M)))mark(s(X))s(mark(X))
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__and(tt, X)mark(X)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))

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

a__and#(tt, X)mark#(X)

Problem 2: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)a__plus#(N, s(M))a__plus#(mark(N), mark(M))
mark#(plus(X1, X2))mark#(X2)mark#(and(X1, X2))a__and#(mark(X1), X2)
mark#(plus(X1, X2))a__plus#(mark(X1), mark(X2))a__plus#(N, s(M))mark#(N)
mark#(s(X))mark#(X)a__plus#(N, 0)mark#(N)
mark#(plus(X1, X2))mark#(X1)a__plus#(N, s(M))mark#(M)

Rewrite Rules

a__and(tt, X)mark(X)a__plus(N, 0)mark(N)
a__plus(N, s(M))s(a__plus(mark(N), mark(M)))mark(and(X1, X2))a__and(mark(X1), X2)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(tt)tt
mark(0)0mark(s(X))s(mark(X))
a__and(X1, X2)and(X1, X2)a__plus(X1, X2)plus(X1, X2)

Original Signature

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

Strategy


The following SCCs where found

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

Problem 3: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)a__plus#(N, s(M))a__plus#(mark(N), mark(M))
mark#(plus(X1, X2))mark#(X2)mark#(plus(X1, X2))a__plus#(mark(X1), mark(X2))
a__plus#(N, s(M))mark#(N)mark#(s(X))mark#(X)
a__plus#(N, 0)mark#(N)mark#(plus(X1, X2))mark#(X1)
a__plus#(N, s(M))mark#(M)

Rewrite Rules

a__and(tt, X)mark(X)a__plus(N, 0)mark(N)
a__plus(N, s(M))s(a__plus(mark(N), mark(M)))mark(and(X1, X2))a__and(mark(X1), X2)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(tt)tt
mark(0)0mark(s(X))s(mark(X))
a__and(X1, X2)and(X1, X2)a__plus(X1, X2)plus(X1, X2)

Original Signature

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

Strategy


Polynomial Interpretation

Improved Usable rules

mark(tt)ttmark(and(X1, X2))a__and(mark(X1), X2)
mark(0)0a__plus(N, 0)mark(N)
a__plus(N, s(M))s(a__plus(mark(N), mark(M)))mark(s(X))s(mark(X))
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__and(tt, X)mark(X)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))

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

a__plus#(N, 0)mark#(N)

Problem 4: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

a__and(tt, X)mark(X)a__plus(N, 0)mark(N)
a__plus(N, s(M))s(a__plus(mark(N), mark(M)))mark(and(X1, X2))a__and(mark(X1), X2)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(tt)tt
mark(0)0mark(s(X))s(mark(X))
a__and(X1, X2)and(X1, X2)a__plus(X1, X2)plus(X1, X2)

Original Signature

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

Strategy


Polynomial Interpretation

Improved Usable rules

mark(tt)ttmark(and(X1, X2))a__and(mark(X1), X2)
mark(0)0a__plus(N, 0)mark(N)
a__plus(N, s(M))s(a__plus(mark(N), mark(M)))mark(s(X))s(mark(X))
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__and(tt, X)mark(X)mark(plus(X1, X2))a__plus(mark(X1), mark(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)
mark#(plus(X1, X2))a__plus#(mark(X1), mark(X2))mark#(plus(X1, X2))mark#(X1)

Problem 5: DependencyGraph



Dependency Pair Problem

Dependency Pairs

a__plus#(N, s(M))a__plus#(mark(N), mark(M))a__plus#(N, s(M))mark#(N)
mark#(s(X))mark#(X)a__plus#(N, s(M))mark#(M)

Rewrite Rules

a__and(tt, X)mark(X)a__plus(N, 0)mark(N)
a__plus(N, s(M))s(a__plus(mark(N), mark(M)))mark(and(X1, X2))a__and(mark(X1), X2)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(tt)tt
mark(0)0mark(s(X))s(mark(X))
a__and(X1, X2)and(X1, X2)a__plus(X1, X2)plus(X1, X2)

Original Signature

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

Strategy


The following SCCs where found

a__plus#(N, s(M)) → a__plus#(mark(N), mark(M))

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

Problem 6: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

a__plus#(N, s(M))a__plus#(mark(N), mark(M))

Rewrite Rules

a__and(tt, X)mark(X)a__plus(N, 0)mark(N)
a__plus(N, s(M))s(a__plus(mark(N), mark(M)))mark(and(X1, X2))a__and(mark(X1), X2)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(tt)tt
mark(0)0mark(s(X))s(mark(X))
a__and(X1, X2)and(X1, X2)a__plus(X1, X2)plus(X1, X2)

Original Signature

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

Strategy


Polynomial Interpretation

Improved Usable rules

mark(tt)ttmark(and(X1, X2))a__and(mark(X1), X2)
mark(0)0a__plus(N, 0)mark(N)
a__plus(N, s(M))s(a__plus(mark(N), mark(M)))mark(s(X))s(mark(X))
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__and(tt, X)mark(X)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))

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

a__plus#(N, s(M))a__plus#(mark(N), mark(M))

Problem 7: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

a__and(tt, X)mark(X)a__plus(N, 0)mark(N)
a__plus(N, s(M))s(a__plus(mark(N), mark(M)))mark(and(X1, X2))a__and(mark(X1), X2)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(tt)tt
mark(0)0mark(s(X))s(mark(X))
a__and(X1, X2)and(X1, X2)a__plus(X1, X2)plus(X1, X2)

Original Signature

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

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#(s(X))mark#(X)