YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (301ms).
 | – Problem 2 was processed with processor SubtermCriterion (23ms).
 | – Problem 3 was processed with processor SubtermCriterion (1ms).
 | – Problem 4 was processed with processor SubtermCriterion (1ms).
 | – Problem 5 was processed with processor SubtermCriterion (1ms).
 | – Problem 6 was processed with processor PolynomialLinearRange4iUR (767ms).
 |    | – Problem 9 was processed with processor PolynomialLinearRange4iUR (349ms).
 | – Problem 7 was processed with processor SubtermCriterion (1ms).
 |    | – Problem 8 was processed with processor SubtermCriterion (0ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

top#(ok(X)) → top#(active(X))and#(ok(X1), ok(X2)) → and#(X1, X2)
proper#(and(X1, X2)) → proper#(X1)proper#(and(X1, X2)) → and#(proper(X1), proper(X2))
top#(ok(X)) → active#(X)active#(and(X1, X2)) → and#(active(X1), X2)
proper#(and(X1, X2)) → proper#(X2)plus#(X1, mark(X2)) → plus#(X1, X2)
proper#(plus(X1, X2)) → proper#(X1)proper#(plus(X1, X2)) → proper#(X2)
top#(mark(X)) → proper#(X)proper#(plus(X1, X2)) → plus#(proper(X1), proper(X2))
active#(plus(N, s(M))) → plus#(N, M)plus#(ok(X1), ok(X2)) → plus#(X1, X2)
top#(mark(X)) → top#(proper(X))and#(mark(X1), X2) → and#(X1, X2)
active#(s(X)) → s#(active(X))s#(ok(X)) → s#(X)
active#(plus(N, s(M))) → s#(plus(N, M))s#(mark(X)) → s#(X)
active#(plus(X1, X2)) → plus#(X1, active(X2))proper#(s(X)) → proper#(X)
active#(plus(X1, X2)) → active#(X1)active#(s(X)) → active#(X)
active#(plus(X1, X2)) → plus#(active(X1), X2)proper#(s(X)) → s#(proper(X))
active#(plus(X1, X2)) → active#(X2)active#(and(X1, X2)) → active#(X1)
plus#(mark(X1), X2) → plus#(X1, X2)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, ok, proper, and, top

Strategy


The following SCCs where found

plus#(ok(X1), ok(X2)) → plus#(X1, X2)plus#(X1, mark(X2)) → plus#(X1, X2)
plus#(mark(X1), X2) → plus#(X1, X2)

active#(plus(X1, X2)) → active#(X1)active#(s(X)) → active#(X)
active#(plus(X1, X2)) → active#(X2)active#(and(X1, X2)) → active#(X1)

proper#(s(X)) → proper#(X)proper#(and(X1, X2)) → proper#(X2)
proper#(plus(X1, X2)) → proper#(X1)proper#(plus(X1, X2)) → proper#(X2)
proper#(and(X1, X2)) → proper#(X1)

and#(ok(X1), ok(X2)) → and#(X1, X2)and#(mark(X1), X2) → and#(X1, X2)

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

top#(mark(X)) → top#(proper(X))top#(ok(X)) → top#(active(X))

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

active#(plus(X1, X2)) → active#(X1)active#(s(X)) → active#(X)
active#(plus(X1, X2)) → active#(X2)active#(and(X1, X2)) → active#(X1)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, ok, proper, and, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

active#(plus(X1, X2)) → active#(X1)active#(s(X)) → active#(X)
active#(plus(X1, X2)) → active#(X2)active#(and(X1, X2)) → active#(X1)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, ok, proper, and, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

and#(ok(X1), ok(X2)) → and#(X1, X2)and#(mark(X1), X2) → and#(X1, X2)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, ok, proper, and, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

and#(ok(X1), ok(X2)) → and#(X1, X2)and#(mark(X1), X2) → and#(X1, X2)

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

proper#(s(X)) → proper#(X)proper#(and(X1, X2)) → proper#(X2)
proper#(plus(X1, X2)) → proper#(X1)proper#(plus(X1, X2)) → proper#(X2)
proper#(and(X1, X2)) → proper#(X1)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, ok, proper, and, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

proper#(s(X)) → proper#(X)proper#(and(X1, X2)) → proper#(X2)
proper#(plus(X1, X2)) → proper#(X1)proper#(plus(X1, X2)) → proper#(X2)
proper#(and(X1, X2)) → proper#(X1)

Problem 6: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

top#(mark(X)) → top#(proper(X))top#(ok(X)) → top#(active(X))

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, ok, proper, and, top

Strategy


Polynomial Interpretation

Improved Usable rules

plus(X1, mark(X2)) → mark(plus(X1, X2))active(plus(X1, X2)) → plus(X1, active(X2))
active(plus(X1, X2)) → plus(active(X1), X2)active(s(X)) → s(active(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
s(ok(X)) → ok(s(X))plus(mark(X1), X2) → mark(plus(X1, X2))
proper(tt) → ok(tt)active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(tt, X)) → mark(X)proper(and(X1, X2)) → and(proper(X1), proper(X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))s(mark(X)) → mark(s(X))
proper(s(X)) → s(proper(X))active(plus(N, 0)) → mark(N)
and(mark(X1), X2) → mark(and(X1, X2))proper(0) → ok(0)
active(and(X1, X2)) → and(active(X1), X2)

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

top#(mark(X)) → top#(proper(X))

Problem 9: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

top#(ok(X)) → top#(active(X))

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, ok, mark, proper, top, and

Strategy


Polynomial Interpretation

Improved Usable rules

active(plus(X1, X2)) → plus(X1, active(X2))plus(X1, mark(X2)) → mark(plus(X1, X2))
active(plus(X1, X2)) → plus(active(X1), X2)active(s(X)) → s(active(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))s(ok(X)) → ok(s(X))
plus(mark(X1), X2) → mark(plus(X1, X2))active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(tt, X)) → mark(X)s(mark(X)) → mark(s(X))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))active(plus(N, 0)) → mark(N)
and(mark(X1), X2) → mark(and(X1, X2))active(and(X1, X2)) → and(active(X1), X2)

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

top#(ok(X)) → top#(active(X))

Problem 7: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

plus#(ok(X1), ok(X2)) → plus#(X1, X2)plus#(X1, mark(X2)) → plus#(X1, X2)
plus#(mark(X1), X2) → plus#(X1, X2)

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, ok, proper, and, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

plus#(ok(X1), ok(X2)) → plus#(X1, X2)plus#(mark(X1), X2) → plus#(X1, X2)

Problem 8: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(and(tt, X)) → mark(X)active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, 0, s, tt, active, ok, mark, proper, top, and

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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