YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (107ms).
 | – Problem 2 was processed with processor SubtermCriterion (1ms).
 |    | – Problem 4 was processed with processor SubtermCriterion (1ms).
 |    |    | – Problem 5 was processed with processor PolynomialLinearRange4iUR (51ms).
 |    |    |    | – Problem 7 was processed with processor PolynomialLinearRange4iUR (12ms).
 | – Problem 3 was processed with processor PolynomialLinearRange4iUR (524ms).
 |    | – Problem 6 was processed with processor PolynomialLinearRange4iUR (260ms).
 |    |    | – Problem 8 was processed with processor DependencyGraph (0ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(f(X1, X2, X3)) → active#(f(X1, mark(X2), X3))mark#(a) → active#(a)
f#(X1, mark(X2), X3) → f#(X1, X2, X3)active#(f(a, X, X)) → mark#(f(X, b, b))
active#(f(a, X, X)) → f#(X, b, b)f#(X1, X2, mark(X3)) → f#(X1, X2, X3)
mark#(b) → active#(b)active#(b) → mark#(a)
f#(mark(X1), X2, X3) → f#(X1, X2, X3)f#(active(X1), X2, X3) → f#(X1, X2, X3)
f#(X1, active(X2), X3) → f#(X1, X2, X3)mark#(f(X1, X2, X3)) → f#(X1, mark(X2), X3)
mark#(f(X1, X2, X3)) → mark#(X2)f#(X1, X2, active(X3)) → f#(X1, X2, X3)

Rewrite Rules

active(f(a, X, X)) → mark(f(X, b, b))active(b) → mark(a)
mark(f(X1, X2, X3)) → active(f(X1, mark(X2), X3))mark(a) → active(a)
mark(b) → active(b)f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)

Original Signature

Termination of terms over the following signature is verified: f, b, a, active, mark

Strategy


The following SCCs where found

f#(X1, X2, mark(X3)) → f#(X1, X2, X3)f#(mark(X1), X2, X3) → f#(X1, X2, X3)
f#(X1, mark(X2), X3) → f#(X1, X2, X3)f#(active(X1), X2, X3) → f#(X1, X2, X3)
f#(X1, active(X2), X3) → f#(X1, X2, X3)f#(X1, X2, active(X3)) → f#(X1, X2, X3)

mark#(f(X1, X2, X3)) → active#(f(X1, mark(X2), X3))active#(f(a, X, X)) → mark#(f(X, b, b))
mark#(f(X1, X2, X3)) → mark#(X2)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

f#(X1, X2, mark(X3)) → f#(X1, X2, X3)f#(mark(X1), X2, X3) → f#(X1, X2, X3)
f#(X1, mark(X2), X3) → f#(X1, X2, X3)f#(active(X1), X2, X3) → f#(X1, X2, X3)
f#(X1, active(X2), X3) → f#(X1, X2, X3)f#(X1, X2, active(X3)) → f#(X1, X2, X3)

Rewrite Rules

active(f(a, X, X)) → mark(f(X, b, b))active(b) → mark(a)
mark(f(X1, X2, X3)) → active(f(X1, mark(X2), X3))mark(a) → active(a)
mark(b) → active(b)f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)

Original Signature

Termination of terms over the following signature is verified: f, b, a, active, mark

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

f#(mark(X1), X2, X3) → f#(X1, X2, X3)f#(active(X1), X2, X3) → f#(X1, X2, X3)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

f#(X1, X2, mark(X3)) → f#(X1, X2, X3)f#(X1, mark(X2), X3) → f#(X1, X2, X3)
f#(X1, active(X2), X3) → f#(X1, X2, X3)f#(X1, X2, active(X3)) → f#(X1, X2, X3)

Rewrite Rules

active(f(a, X, X)) → mark(f(X, b, b))active(b) → mark(a)
mark(f(X1, X2, X3)) → active(f(X1, mark(X2), X3))mark(a) → active(a)
mark(b) → active(b)f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)

Original Signature

Termination of terms over the following signature is verified: f, b, a, active, mark

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

f#(X1, mark(X2), X3) → f#(X1, X2, X3)f#(X1, active(X2), X3) → f#(X1, X2, X3)

Problem 5: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

f#(X1, X2, mark(X3)) → f#(X1, X2, X3)f#(X1, X2, active(X3)) → f#(X1, X2, X3)

Rewrite Rules

active(f(a, X, X)) → mark(f(X, b, b))active(b) → mark(a)
mark(f(X1, X2, X3)) → active(f(X1, mark(X2), X3))mark(a) → active(a)
mark(b) → active(b)f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)

Original Signature

Termination of terms over the following signature is verified: f, b, a, active, mark

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:

f#(X1, X2, mark(X3)) → f#(X1, X2, X3)

Problem 7: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

f#(X1, X2, active(X3)) → f#(X1, X2, X3)

Rewrite Rules

active(f(a, X, X)) → mark(f(X, b, b))active(b) → mark(a)
mark(f(X1, X2, X3)) → active(f(X1, mark(X2), X3))mark(a) → active(a)
mark(b) → active(b)f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)

Original Signature

Termination of terms over the following signature is verified: f, b, a, active, mark

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:

f#(X1, X2, active(X3)) → f#(X1, X2, X3)

Problem 3: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(f(X1, X2, X3)) → active#(f(X1, mark(X2), X3))active#(f(a, X, X)) → mark#(f(X, b, b))
mark#(f(X1, X2, X3)) → mark#(X2)

Rewrite Rules

active(f(a, X, X)) → mark(f(X, b, b))active(b) → mark(a)
mark(f(X1, X2, X3)) → active(f(X1, mark(X2), X3))mark(a) → active(a)
mark(b) → active(b)f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)

Original Signature

Termination of terms over the following signature is verified: f, b, a, active, mark

Strategy


Polynomial Interpretation

Improved Usable rules

f(X1, X2, mark(X3)) → f(X1, X2, X3)f(mark(X1), X2, X3) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)f(X1, mark(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)f(X1, active(X2), X3) → f(X1, X2, X3)

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

mark#(f(X1, X2, X3)) → mark#(X2)

Problem 6: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(f(X1, X2, X3)) → active#(f(X1, mark(X2), X3))active#(f(a, X, X)) → mark#(f(X, b, b))

Rewrite Rules

active(f(a, X, X)) → mark(f(X, b, b))active(b) → mark(a)
mark(f(X1, X2, X3)) → active(f(X1, mark(X2), X3))mark(a) → active(a)
mark(b) → active(b)f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)

Original Signature

Termination of terms over the following signature is verified: f, b, a, active, mark

Strategy


Polynomial Interpretation

Improved Usable rules

f(X1, X2, mark(X3)) → f(X1, X2, X3)f(mark(X1), X2, X3) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)f(X1, mark(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)f(X1, active(X2), X3) → f(X1, X2, X3)

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

active#(f(a, X, X)) → mark#(f(X, b, b))

Problem 8: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(f(X1, X2, X3)) → active#(f(X1, mark(X2), X3))

Rewrite Rules

active(f(a, X, X)) → mark(f(X, b, b))active(b) → mark(a)
mark(f(X1, X2, X3)) → active(f(X1, mark(X2), X3))mark(a) → active(a)
mark(b) → active(b)f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)

Original Signature

Termination of terms over the following signature is verified: f, b, a, active, mark

Strategy


There are no SCCs!