YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (82ms).
 | – Problem 2 was processed with processor SubtermCriterion (1ms).
 |    | – Problem 5 was processed with processor SubtermCriterion (1ms).
 | – Problem 3 was processed with processor SubtermCriterion (1ms).
 | – Problem 4 was processed with processor PolynomialLinearRange4iUR (1259ms).
 |    | – Problem 6 was processed with processor PolynomialLinearRange4iUR (466ms).
 |    |    | – Problem 7 was processed with processor DependencyGraph (0ms).
 |    |    |    | – Problem 8 was processed with processor PolynomialLinearRange4iUR (11ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

active#(f(g(X), Y)) → g#(X)g#(mark(X)) → g#(X)
active#(f(g(X), Y)) → f#(X, f(g(X), Y))mark#(g(X)) → g#(mark(X))
mark#(g(X)) → mark#(X)f#(X1, active(X2)) → f#(X1, X2)
g#(active(X)) → g#(X)mark#(f(X1, X2)) → f#(mark(X1), X2)
f#(X1, mark(X2)) → f#(X1, X2)active#(f(g(X), Y)) → mark#(f(X, f(g(X), Y)))
mark#(f(X1, X2)) → active#(f(mark(X1), X2))f#(active(X1), X2) → f#(X1, X2)
mark#(g(X)) → active#(g(mark(X)))f#(mark(X1), X2) → f#(X1, X2)
active#(f(g(X), Y)) → f#(g(X), Y)mark#(f(X1, X2)) → mark#(X1)

Rewrite Rules

active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(g(X)) → active(g(mark(X)))f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)g(mark(X)) → g(X)
g(active(X)) → g(X)

Original Signature

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

Strategy


The following SCCs where found

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

mark#(f(X1, X2)) → active#(f(mark(X1), X2))active#(f(g(X), Y)) → mark#(f(X, f(g(X), Y)))
mark#(g(X)) → mark#(X)mark#(g(X)) → active#(g(mark(X)))
mark#(f(X1, X2)) → mark#(X1)

g#(active(X)) → g#(X)g#(mark(X)) → g#(X)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(g(X)) → active(g(mark(X)))f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)g(mark(X)) → g(X)
g(active(X)) → g(X)

Original Signature

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(g(X)) → active(g(mark(X)))f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)g(mark(X)) → g(X)
g(active(X)) → g(X)

Original Signature

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

g#(active(X)) → g#(X)g#(mark(X)) → g#(X)

Rewrite Rules

active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(g(X)) → active(g(mark(X)))f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)g(mark(X)) → g(X)
g(active(X)) → g(X)

Original Signature

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

g#(active(X)) → g#(X)g#(mark(X)) → g#(X)

Problem 4: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(f(X1, X2)) → active#(f(mark(X1), X2))active#(f(g(X), Y)) → mark#(f(X, f(g(X), Y)))
mark#(g(X)) → mark#(X)mark#(g(X)) → active#(g(mark(X)))
mark#(f(X1, X2)) → mark#(X1)

Rewrite Rules

active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(g(X)) → active(g(mark(X)))f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)g(mark(X)) → g(X)
g(active(X)) → g(X)

Original Signature

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

Strategy


Polynomial Interpretation

Improved Usable rules

f(active(X1), X2) → f(X1, X2)f(X1, mark(X2)) → f(X1, X2)
g(active(X)) → g(X)f(mark(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)g(mark(X)) → g(X)

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

mark#(g(X)) → active#(g(mark(X)))

Problem 6: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

active#(f(g(X), Y)) → mark#(f(X, f(g(X), Y)))mark#(f(X1, X2)) → active#(f(mark(X1), X2))
mark#(g(X)) → mark#(X)mark#(f(X1, X2)) → mark#(X1)

Rewrite Rules

active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(g(X)) → active(g(mark(X)))f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)g(mark(X)) → g(X)
g(active(X)) → g(X)

Original Signature

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

Strategy


Polynomial Interpretation

Improved Usable rules

f(active(X1), X2) → f(X1, X2)f(X1, mark(X2)) → f(X1, X2)
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))g(active(X)) → g(X)
f(mark(X1), X2) → f(X1, X2)f(X1, active(X2)) → f(X1, X2)
mark(g(X)) → active(g(mark(X)))mark(f(X1, X2)) → active(f(mark(X1), X2))
g(mark(X)) → g(X)

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

mark#(f(X1, X2)) → active#(f(mark(X1), X2))mark#(g(X)) → mark#(X)

Problem 7: DependencyGraph



Dependency Pair Problem

Dependency Pairs

active#(f(g(X), Y)) → mark#(f(X, f(g(X), Y)))mark#(f(X1, X2)) → mark#(X1)

Rewrite Rules

active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(g(X)) → active(g(mark(X)))f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)g(mark(X)) → g(X)
g(active(X)) → g(X)

Original Signature

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

Strategy


The following SCCs where found

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

Problem 8: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(g(X)) → active(g(mark(X)))f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)g(mark(X)) → g(X)
g(active(X)) → g(X)

Original Signature

Termination of terms over the following signature is verified: f, g, 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:

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