YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (373ms).
 | – Problem 2 was processed with processor SubtermCriterion (22ms).
 | – Problem 3 was processed with processor SubtermCriterion (0ms).
 |    | – Problem 7 was processed with processor SubtermCriterion (23ms).
 | – Problem 4 was processed with processor SubtermCriterion (16ms).
 | – Problem 5 was processed with processor SubtermCriterion (1ms).
 | – Problem 6 was processed with processor PolynomialLinearRange4iUR (6587ms).
 |    | – Problem 8 was processed with processor PolynomialLinearRange4iUR (2726ms).
 |    |    | – Problem 9 was processed with processor PolynomialLinearRange4iUR (1597ms).
 |    |    |    | – Problem 10 was processed with processor PolynomialLinearRange4iUR (1352ms).
 |    |    |    |    | – Problem 11 was processed with processor PolynomialLinearRange4iUR (1201ms).
 |    |    |    |    |    | – Problem 12 was processed with processor PolynomialLinearRange4iUR (1215ms).
 |    |    |    |    |    |    | – Problem 13 was processed with processor PolynomialLinearRange4iUR (1215ms).
 |    |    |    |    |    |    |    | – Problem 14 was processed with processor DependencyGraph (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(cons(X1, X2)) → active#(cons(mark(X1), X2))cons#(mark(X1), X2) → cons#(X1, X2)
active#(f(s(0))) → f#(p(s(0)))f#(active(X)) → f#(X)
p#(mark(X)) → p#(X)active#(f(s(0))) → mark#(f(p(s(0))))
mark#(s(X)) → s#(mark(X))active#(p(s(0))) → mark#(0)
mark#(s(X)) → mark#(X)cons#(X1, mark(X2)) → cons#(X1, X2)
f#(mark(X)) → f#(X)mark#(f(X)) → f#(mark(X))
mark#(cons(X1, X2)) → cons#(mark(X1), X2)active#(f(0)) → s#(0)
mark#(0) → active#(0)mark#(s(X)) → active#(s(mark(X)))
active#(f(s(0))) → p#(s(0))mark#(cons(X1, X2)) → mark#(X1)
cons#(active(X1), X2) → cons#(X1, X2)mark#(f(X)) → mark#(X)
mark#(p(X)) → active#(p(mark(X)))mark#(f(X)) → active#(f(mark(X)))
s#(mark(X)) → s#(X)active#(f(s(0))) → s#(0)
cons#(X1, active(X2)) → cons#(X1, X2)active#(f(0)) → cons#(0, f(s(0)))
mark#(p(X)) → p#(mark(X))mark#(p(X)) → mark#(X)
active#(f(0)) → mark#(cons(0, f(s(0))))active#(f(0)) → f#(s(0))
s#(active(X)) → s#(X)p#(active(X)) → p#(X)

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

Strategy


The following SCCs where found

p#(mark(X)) → p#(X)p#(active(X)) → p#(X)

f#(active(X)) → f#(X)f#(mark(X)) → f#(X)

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

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

mark#(cons(X1, X2)) → active#(cons(mark(X1), X2))mark#(s(X)) → active#(s(mark(X)))
active#(f(0)) → mark#(cons(0, f(s(0))))mark#(p(X)) → mark#(X)
mark#(cons(X1, X2)) → mark#(X1)mark#(s(X)) → mark#(X)
mark#(p(X)) → active#(p(mark(X)))mark#(f(X)) → mark#(X)
active#(f(s(0))) → mark#(f(p(s(0))))mark#(f(X)) → active#(f(mark(X)))

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

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 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 7: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

f#(active(X)) → f#(X)f#(mark(X)) → f#(X)

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

f#(active(X)) → f#(X)f#(mark(X)) → f#(X)

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

p#(mark(X)) → p#(X)p#(active(X)) → p#(X)

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

p#(mark(X)) → p#(X)p#(active(X)) → p#(X)

Problem 6: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(cons(X1, X2)) → active#(cons(mark(X1), X2))mark#(s(X)) → active#(s(mark(X)))
active#(f(0)) → mark#(cons(0, f(s(0))))mark#(p(X)) → mark#(X)
mark#(cons(X1, X2)) → mark#(X1)mark#(s(X)) → mark#(X)
mark#(p(X)) → active#(p(mark(X)))mark#(f(X)) → mark#(X)
active#(f(s(0))) → mark#(f(p(s(0))))mark#(f(X)) → active#(f(mark(X)))

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

Strategy


Polynomial Interpretation

Improved Usable rules

cons(active(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
p(mark(X)) → p(X)cons(mark(X1), X2) → cons(X1, X2)
s(mark(X)) → s(X)f(active(X)) → f(X)
f(mark(X)) → f(X)p(active(X)) → p(X)
s(active(X)) → s(X)cons(X1, active(X2)) → cons(X1, X2)

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

mark#(cons(X1, X2)) → active#(cons(mark(X1), X2))mark#(p(X)) → active#(p(mark(X)))

Problem 8: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(s(X)) → active#(s(mark(X)))mark#(p(X)) → mark#(X)
active#(f(0)) → mark#(cons(0, f(s(0))))mark#(cons(X1, X2)) → mark#(X1)
mark#(s(X)) → mark#(X)mark#(f(X)) → mark#(X)
mark#(f(X)) → active#(f(mark(X)))active#(f(s(0))) → mark#(f(p(s(0))))

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

Strategy


Polynomial Interpretation

Improved Usable rules

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

Problem 9: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

active#(f(0)) → mark#(cons(0, f(s(0))))mark#(p(X)) → mark#(X)
mark#(cons(X1, X2)) → mark#(X1)mark#(s(X)) → mark#(X)
mark#(f(X)) → mark#(X)active#(f(s(0))) → mark#(f(p(s(0))))
mark#(f(X)) → active#(f(mark(X)))

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

Strategy


Polynomial Interpretation

Improved Usable rules

cons(active(X1), X2) → cons(X1, X2)mark(s(X)) → active(s(mark(X)))
active(p(s(0))) → mark(0)active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))cons(X1, mark(X2)) → cons(X1, X2)
mark(p(X)) → active(p(mark(X)))p(mark(X)) → p(X)
cons(mark(X1), X2) → cons(X1, X2)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
s(mark(X)) → s(X)f(active(X)) → f(X)
mark(f(X)) → active(f(mark(X)))f(mark(X)) → f(X)
p(active(X)) → p(X)mark(0) → active(0)
s(active(X)) → s(X)cons(X1, active(X2)) → cons(X1, X2)

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

mark#(f(X)) → mark#(X)

Problem 10: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(p(X)) → mark#(X)active#(f(0)) → mark#(cons(0, f(s(0))))
mark#(cons(X1, X2)) → mark#(X1)mark#(s(X)) → mark#(X)
mark#(f(X)) → active#(f(mark(X)))active#(f(s(0))) → mark#(f(p(s(0))))

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

Strategy


Polynomial Interpretation

Improved Usable rules

cons(active(X1), X2) → cons(X1, X2)mark(s(X)) → active(s(mark(X)))
active(p(s(0))) → mark(0)active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))cons(X1, mark(X2)) → cons(X1, X2)
mark(p(X)) → active(p(mark(X)))p(mark(X)) → p(X)
cons(mark(X1), X2) → cons(X1, X2)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
s(mark(X)) → s(X)f(active(X)) → f(X)
p(active(X)) → p(X)f(mark(X)) → f(X)
mark(f(X)) → active(f(mark(X)))s(active(X)) → s(X)
mark(0) → active(0)cons(X1, active(X2)) → cons(X1, X2)

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

active#(f(0)) → mark#(cons(0, f(s(0))))mark#(s(X)) → mark#(X)

Problem 11: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(p(X)) → mark#(X)mark#(cons(X1, X2)) → mark#(X1)
active#(f(s(0))) → mark#(f(p(s(0))))mark#(f(X)) → active#(f(mark(X)))

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

Strategy


Polynomial Interpretation

Improved Usable rules

f(active(X)) → f(X)f(mark(X)) → f(X)

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

mark#(p(X)) → mark#(X)

Problem 12: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(cons(X1, X2)) → mark#(X1)mark#(f(X)) → active#(f(mark(X)))
active#(f(s(0))) → mark#(f(p(s(0))))

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

Strategy


Polynomial Interpretation

Improved Usable rules

f(active(X)) → f(X)f(mark(X)) → f(X)

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

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

Problem 13: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

active#(f(s(0))) → mark#(f(p(s(0))))mark#(f(X)) → active#(f(mark(X)))

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

Strategy


Polynomial Interpretation

Improved Usable rules

cons(active(X1), X2) → cons(X1, X2)mark(s(X)) → active(s(mark(X)))
active(p(s(0))) → mark(0)active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))cons(X1, mark(X2)) → cons(X1, X2)
mark(p(X)) → active(p(mark(X)))p(mark(X)) → p(X)
cons(mark(X1), X2) → cons(X1, X2)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
s(mark(X)) → s(X)f(active(X)) → f(X)
mark(f(X)) → active(f(mark(X)))f(mark(X)) → f(X)
p(active(X)) → p(X)mark(0) → active(0)
s(active(X)) → s(X)cons(X1, active(X2)) → cons(X1, X2)

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

active#(f(s(0))) → mark#(f(p(s(0))))

Problem 14: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(f(X)) → active#(f(mark(X)))

Rewrite Rules

active(f(0)) → mark(cons(0, f(s(0))))active(f(s(0))) → mark(f(p(s(0))))
active(p(s(0))) → mark(0)mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)s(active(X)) → s(X)
p(mark(X)) → p(X)p(active(X)) → p(X)

Original Signature

Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons

Strategy


There are no SCCs!