YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (139ms).
 | – Problem 2 was processed with processor SubtermCriterion (9ms).
 | – Problem 3 was processed with processor SubtermCriterion (12ms).
 | – Problem 4 was processed with processor SubtermCriterion (6ms).
 | – Problem 5 was processed with processor PolynomialLinearRange4iUR (530ms).
 |    | – Problem 8 was processed with processor PolynomialLinearRange4iUR (427ms).
 |    |    | – Problem 9 was processed with processor PolynomialLinearRange4iUR (40ms).
 | – Problem 6 was processed with processor SubtermCriterion (1ms).
 | – Problem 7 was processed with processor SubtermCriterion (0ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

f#(mark(x)) → f#(x)top#(found(x)) → top#(active(x))
top#(mark(x)) → check#(x)match#(f(x), f(y)) → f#(match(x, y))
top#(active(c)) → top#(mark(c))top#(found(x)) → active#(x)
proper#(f(x)) → proper#(x)check#(x) → match#(f(X), x)
check#(x) → f#(X)active#(f(x)) → f#(active(x))
check#(x) → start#(match(f(X), x))match#(f(x), f(y)) → match#(x, y)
proper#(f(x)) → f#(proper(x))top#(mark(x)) → top#(check(x))
f#(found(x)) → f#(x)check#(f(x)) → check#(x)
check#(f(x)) → f#(check(x))active#(f(x)) → active#(x)
match#(X, x) → proper#(x)f#(ok(x)) → f#(x)

Rewrite Rules

active(f(x)) → mark(x)top(active(c)) → top(mark(c))
top(mark(x)) → top(check(x))check(f(x)) → f(check(x))
check(x) → start(match(f(X), x))match(f(x), f(y)) → f(match(x, y))
match(X, x) → proper(x)proper(c) → ok(c)
proper(f(x)) → f(proper(x))f(ok(x)) → ok(f(x))
start(ok(x)) → found(x)f(found(x)) → found(f(x))
top(found(x)) → top(active(x))active(f(x)) → f(active(x))
f(mark(x)) → mark(f(x))

Original Signature

Termination of terms over the following signature is verified: f, check, c, start, active, mark, ok, match, proper, X, top, found

Strategy


The following SCCs where found

match#(f(x), f(y)) → match#(x, y)

check#(f(x)) → check#(x)

f#(mark(x)) → f#(x)f#(found(x)) → f#(x)
f#(ok(x)) → f#(x)

proper#(f(x)) → proper#(x)

top#(found(x)) → top#(active(x))top#(active(c)) → top#(mark(c))
top#(mark(x)) → top#(check(x))

active#(f(x)) → active#(x)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

match#(f(x), f(y)) → match#(x, y)

Rewrite Rules

active(f(x)) → mark(x)top(active(c)) → top(mark(c))
top(mark(x)) → top(check(x))check(f(x)) → f(check(x))
check(x) → start(match(f(X), x))match(f(x), f(y)) → f(match(x, y))
match(X, x) → proper(x)proper(c) → ok(c)
proper(f(x)) → f(proper(x))f(ok(x)) → ok(f(x))
start(ok(x)) → found(x)f(found(x)) → found(f(x))
top(found(x)) → top(active(x))active(f(x)) → f(active(x))
f(mark(x)) → mark(f(x))

Original Signature

Termination of terms over the following signature is verified: f, check, c, start, active, mark, ok, match, proper, X, top, found

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

match#(f(x), f(y)) → match#(x, y)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

f#(mark(x)) → f#(x)f#(found(x)) → f#(x)
f#(ok(x)) → f#(x)

Rewrite Rules

active(f(x)) → mark(x)top(active(c)) → top(mark(c))
top(mark(x)) → top(check(x))check(f(x)) → f(check(x))
check(x) → start(match(f(X), x))match(f(x), f(y)) → f(match(x, y))
match(X, x) → proper(x)proper(c) → ok(c)
proper(f(x)) → f(proper(x))f(ok(x)) → ok(f(x))
start(ok(x)) → found(x)f(found(x)) → found(f(x))
top(found(x)) → top(active(x))active(f(x)) → f(active(x))
f(mark(x)) → mark(f(x))

Original Signature

Termination of terms over the following signature is verified: f, check, c, start, active, mark, ok, match, proper, X, top, found

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

f#(mark(x)) → f#(x)f#(found(x)) → f#(x)
f#(ok(x)) → f#(x)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

check#(f(x)) → check#(x)

Rewrite Rules

active(f(x)) → mark(x)top(active(c)) → top(mark(c))
top(mark(x)) → top(check(x))check(f(x)) → f(check(x))
check(x) → start(match(f(X), x))match(f(x), f(y)) → f(match(x, y))
match(X, x) → proper(x)proper(c) → ok(c)
proper(f(x)) → f(proper(x))f(ok(x)) → ok(f(x))
start(ok(x)) → found(x)f(found(x)) → found(f(x))
top(found(x)) → top(active(x))active(f(x)) → f(active(x))
f(mark(x)) → mark(f(x))

Original Signature

Termination of terms over the following signature is verified: f, check, c, start, active, mark, ok, match, proper, X, top, found

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

check#(f(x)) → check#(x)

Problem 5: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

top#(found(x)) → top#(active(x))top#(active(c)) → top#(mark(c))
top#(mark(x)) → top#(check(x))

Rewrite Rules

active(f(x)) → mark(x)top(active(c)) → top(mark(c))
top(mark(x)) → top(check(x))check(f(x)) → f(check(x))
check(x) → start(match(f(X), x))match(f(x), f(y)) → f(match(x, y))
match(X, x) → proper(x)proper(c) → ok(c)
proper(f(x)) → f(proper(x))f(ok(x)) → ok(f(x))
start(ok(x)) → found(x)f(found(x)) → found(f(x))
top(found(x)) → top(active(x))active(f(x)) → f(active(x))
f(mark(x)) → mark(f(x))

Original Signature

Termination of terms over the following signature is verified: f, check, c, start, active, mark, ok, match, proper, X, top, found

Strategy


Polynomial Interpretation

Improved Usable rules

match(X, x) → proper(x)start(ok(x)) → found(x)
match(f(x), f(y)) → f(match(x, y))proper(f(x)) → f(proper(x))
f(mark(x)) → mark(f(x))f(found(x)) → found(f(x))
f(ok(x)) → ok(f(x))proper(c) → ok(c)
active(f(x)) → f(active(x))check(f(x)) → f(check(x))
active(f(x)) → mark(x)check(x) → start(match(f(X), x))

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

top#(active(c)) → top#(mark(c))

Problem 8: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

top#(found(x)) → top#(active(x))top#(mark(x)) → top#(check(x))

Rewrite Rules

active(f(x)) → mark(x)top(active(c)) → top(mark(c))
top(mark(x)) → top(check(x))check(f(x)) → f(check(x))
check(x) → start(match(f(X), x))match(f(x), f(y)) → f(match(x, y))
match(X, x) → proper(x)proper(c) → ok(c)
proper(f(x)) → f(proper(x))f(ok(x)) → ok(f(x))
start(ok(x)) → found(x)f(found(x)) → found(f(x))
top(found(x)) → top(active(x))active(f(x)) → f(active(x))
f(mark(x)) → mark(f(x))

Original Signature

Termination of terms over the following signature is verified: f, check, start, c, active, ok, mark, proper, match, X, found, top

Strategy


Polynomial Interpretation

Improved Usable rules

match(X, x) → proper(x)start(ok(x)) → found(x)
match(f(x), f(y)) → f(match(x, y))proper(f(x)) → f(proper(x))
f(mark(x)) → mark(f(x))f(found(x)) → found(f(x))
f(ok(x)) → ok(f(x))proper(c) → ok(c)
active(f(x)) → f(active(x))check(f(x)) → f(check(x))
active(f(x)) → mark(x)check(x) → start(match(f(X), x))

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

top#(mark(x)) → top#(check(x))

Problem 9: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

top#(found(x)) → top#(active(x))

Rewrite Rules

active(f(x)) → mark(x)top(active(c)) → top(mark(c))
top(mark(x)) → top(check(x))check(f(x)) → f(check(x))
check(x) → start(match(f(X), x))match(f(x), f(y)) → f(match(x, y))
match(X, x) → proper(x)proper(c) → ok(c)
proper(f(x)) → f(proper(x))f(ok(x)) → ok(f(x))
start(ok(x)) → found(x)f(found(x)) → found(f(x))
top(found(x)) → top(active(x))active(f(x)) → f(active(x))
f(mark(x)) → mark(f(x))

Original Signature

Termination of terms over the following signature is verified: f, check, c, start, active, mark, ok, match, proper, X, top, found

Strategy


Polynomial Interpretation

Improved Usable rules

f(mark(x)) → mark(f(x))f(found(x)) → found(f(x))
f(ok(x)) → ok(f(x))active(f(x)) → f(active(x))
active(f(x)) → mark(x)

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

top#(found(x)) → top#(active(x))

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

active#(f(x)) → active#(x)

Rewrite Rules

active(f(x)) → mark(x)top(active(c)) → top(mark(c))
top(mark(x)) → top(check(x))check(f(x)) → f(check(x))
check(x) → start(match(f(X), x))match(f(x), f(y)) → f(match(x, y))
match(X, x) → proper(x)proper(c) → ok(c)
proper(f(x)) → f(proper(x))f(ok(x)) → ok(f(x))
start(ok(x)) → found(x)f(found(x)) → found(f(x))
top(found(x)) → top(active(x))active(f(x)) → f(active(x))
f(mark(x)) → mark(f(x))

Original Signature

Termination of terms over the following signature is verified: f, check, c, start, active, mark, ok, match, proper, X, top, found

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

active#(f(x)) → active#(x)

Problem 7: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

proper#(f(x)) → proper#(x)

Rewrite Rules

active(f(x)) → mark(x)top(active(c)) → top(mark(c))
top(mark(x)) → top(check(x))check(f(x)) → f(check(x))
check(x) → start(match(f(X), x))match(f(x), f(y)) → f(match(x, y))
match(X, x) → proper(x)proper(c) → ok(c)
proper(f(x)) → f(proper(x))f(ok(x)) → ok(f(x))
start(ok(x)) → found(x)f(found(x)) → found(f(x))
top(found(x)) → top(active(x))active(f(x)) → f(active(x))
f(mark(x)) → mark(f(x))

Original Signature

Termination of terms over the following signature is verified: f, check, c, start, active, mark, ok, match, proper, X, top, found

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

proper#(f(x)) → proper#(x)