YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (302ms).
 | – Problem 2 was processed with processor SubtermCriterion (1ms).
 |    | – Problem 6 was processed with processor SubtermCriterion (1ms).
 | – Problem 3 was processed with processor SubtermCriterion (0ms).
 | – Problem 4 was processed with processor PolynomialLinearRange4iUR (3496ms).
 |    | – Problem 8 was processed with processor PolynomialLinearRange4iUR (2797ms).
 |    |    | – Problem 9 was processed with processor DependencyGraph (1ms).
 |    |    |    | – Problem 10 was processed with processor PolynomialLinearRange4iUR (13ms).
 | – Problem 5 was processed with processor SubtermCriterion (1ms).
 |    | – Problem 7 was processed with processor SubtermCriterion (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(__(X1, X2))__#(mark(X1), mark(X2))and#(active(X1), X2)and#(X1, X2)
mark#(isNePal(X))isNePal#(mark(X))active#(__(__(X, Y), Z))mark#(__(X, __(Y, Z)))
and#(X1, active(X2))and#(X1, X2)mark#(tt)active#(tt)
active#(__(__(X, Y), Z))__#(X, __(Y, Z))active#(__(X, nil))mark#(X)
__#(X1, active(X2))__#(X1, X2)__#(active(X1), X2)__#(X1, X2)
mark#(nil)active#(nil)mark#(and(X1, X2))active#(and(mark(X1), X2))
mark#(isNePal(X))mark#(X)mark#(__(X1, X2))mark#(X2)
and#(X1, mark(X2))and#(X1, X2)__#(mark(X1), X2)__#(X1, X2)
isNePal#(active(X))isNePal#(X)mark#(and(X1, X2))and#(mark(X1), X2)
active#(__(nil, X))mark#(X)active#(__(__(X, Y), Z))__#(Y, Z)
__#(X1, mark(X2))__#(X1, X2)isNePal#(mark(X))isNePal#(X)
mark#(__(X1, X2))active#(__(mark(X1), mark(X2)))and#(mark(X1), X2)and#(X1, X2)
active#(and(tt, X))mark#(X)mark#(isNePal(X))active#(isNePal(mark(X)))
mark#(and(X1, X2))mark#(X1)mark#(__(X1, X2))mark#(X1)
active#(isNePal(__(I, __(P, I))))mark#(tt)

Rewrite Rules

active(__(__(X, Y), Z))mark(__(X, __(Y, Z)))active(__(X, nil))mark(X)
active(__(nil, X))mark(X)active(and(tt, X))mark(X)
active(isNePal(__(I, __(P, I))))mark(tt)mark(__(X1, X2))active(__(mark(X1), mark(X2)))
mark(nil)active(nil)mark(and(X1, X2))active(and(mark(X1), X2))
mark(tt)active(tt)mark(isNePal(X))active(isNePal(mark(X)))
__(mark(X1), X2)__(X1, X2)__(X1, mark(X2))__(X1, X2)
__(active(X1), X2)__(X1, X2)__(X1, active(X2))__(X1, X2)
and(mark(X1), X2)and(X1, X2)and(X1, mark(X2))and(X1, X2)
and(active(X1), X2)and(X1, X2)and(X1, active(X2))and(X1, X2)
isNePal(mark(X))isNePal(X)isNePal(active(X))isNePal(X)

Original Signature

Termination of terms over the following signature is verified: tt, isNePal, active, __, mark, nil, and

Strategy


The following SCCs where found

mark#(and(X1, X2)) → mark#(X1)active#(__(__(X, Y), Z)) → mark#(__(X, __(Y, Z)))
active#(__(X, nil)) → mark#(X)active#(__(nil, X)) → mark#(X)
mark#(and(X1, X2)) → active#(and(mark(X1), X2))mark#(__(X1, X2)) → active#(__(mark(X1), mark(X2)))
mark#(__(X1, X2)) → mark#(X1)mark#(isNePal(X)) → active#(isNePal(mark(X)))
active#(and(tt, X)) → mark#(X)mark#(isNePal(X)) → mark#(X)
mark#(__(X1, X2)) → mark#(X2)

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

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

isNePal#(active(X)) → isNePal#(X)isNePal#(mark(X)) → isNePal#(X)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

__#(mark(X1), X2)__#(X1, X2)__#(active(X1), X2)__#(X1, X2)
__#(X1, mark(X2))__#(X1, X2)__#(X1, active(X2))__#(X1, X2)

Rewrite Rules

active(__(__(X, Y), Z))mark(__(X, __(Y, Z)))active(__(X, nil))mark(X)
active(__(nil, X))mark(X)active(and(tt, X))mark(X)
active(isNePal(__(I, __(P, I))))mark(tt)mark(__(X1, X2))active(__(mark(X1), mark(X2)))
mark(nil)active(nil)mark(and(X1, X2))active(and(mark(X1), X2))
mark(tt)active(tt)mark(isNePal(X))active(isNePal(mark(X)))
__(mark(X1), X2)__(X1, X2)__(X1, mark(X2))__(X1, X2)
__(active(X1), X2)__(X1, X2)__(X1, active(X2))__(X1, X2)
and(mark(X1), X2)and(X1, X2)and(X1, mark(X2))and(X1, X2)
and(active(X1), X2)and(X1, X2)and(X1, active(X2))and(X1, X2)
isNePal(mark(X))isNePal(X)isNePal(active(X))isNePal(X)

Original Signature

Termination of terms over the following signature is verified: tt, isNePal, active, __, mark, nil, and

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

__#(active(X1), X2)__#(X1, X2)__#(mark(X1), X2)__#(X1, X2)

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

__#(X1, mark(X2))__#(X1, X2)__#(X1, active(X2))__#(X1, X2)

Rewrite Rules

active(__(__(X, Y), Z))mark(__(X, __(Y, Z)))active(__(X, nil))mark(X)
active(__(nil, X))mark(X)active(and(tt, X))mark(X)
active(isNePal(__(I, __(P, I))))mark(tt)mark(__(X1, X2))active(__(mark(X1), mark(X2)))
mark(nil)active(nil)mark(and(X1, X2))active(and(mark(X1), X2))
mark(tt)active(tt)mark(isNePal(X))active(isNePal(mark(X)))
__(mark(X1), X2)__(X1, X2)__(X1, mark(X2))__(X1, X2)
__(active(X1), X2)__(X1, X2)__(X1, active(X2))__(X1, X2)
and(mark(X1), X2)and(X1, X2)and(X1, mark(X2))and(X1, X2)
and(active(X1), X2)and(X1, X2)and(X1, active(X2))and(X1, X2)
isNePal(mark(X))isNePal(X)isNePal(active(X))isNePal(X)

Original Signature

Termination of terms over the following signature is verified: tt, isNePal, __, active, mark, and, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

__#(X1, mark(X2))__#(X1, X2)__#(X1, active(X2))__#(X1, X2)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

isNePal#(active(X))isNePal#(X)isNePal#(mark(X))isNePal#(X)

Rewrite Rules

active(__(__(X, Y), Z))mark(__(X, __(Y, Z)))active(__(X, nil))mark(X)
active(__(nil, X))mark(X)active(and(tt, X))mark(X)
active(isNePal(__(I, __(P, I))))mark(tt)mark(__(X1, X2))active(__(mark(X1), mark(X2)))
mark(nil)active(nil)mark(and(X1, X2))active(and(mark(X1), X2))
mark(tt)active(tt)mark(isNePal(X))active(isNePal(mark(X)))
__(mark(X1), X2)__(X1, X2)__(X1, mark(X2))__(X1, X2)
__(active(X1), X2)__(X1, X2)__(X1, active(X2))__(X1, X2)
and(mark(X1), X2)and(X1, X2)and(X1, mark(X2))and(X1, X2)
and(active(X1), X2)and(X1, X2)and(X1, active(X2))and(X1, X2)
isNePal(mark(X))isNePal(X)isNePal(active(X))isNePal(X)

Original Signature

Termination of terms over the following signature is verified: tt, isNePal, active, __, mark, nil, and

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

isNePal#(active(X))isNePal#(X)isNePal#(mark(X))isNePal#(X)

Problem 4: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)active#(__(__(X, Y), Z))mark#(__(X, __(Y, Z)))
active#(__(X, nil))mark#(X)active#(__(nil, X))mark#(X)
mark#(and(X1, X2))active#(and(mark(X1), X2))mark#(__(X1, X2))active#(__(mark(X1), mark(X2)))
mark#(__(X1, X2))mark#(X1)mark#(isNePal(X))active#(isNePal(mark(X)))
active#(and(tt, X))mark#(X)mark#(isNePal(X))mark#(X)
mark#(__(X1, X2))mark#(X2)

Rewrite Rules

active(__(__(X, Y), Z))mark(__(X, __(Y, Z)))active(__(X, nil))mark(X)
active(__(nil, X))mark(X)active(and(tt, X))mark(X)
active(isNePal(__(I, __(P, I))))mark(tt)mark(__(X1, X2))active(__(mark(X1), mark(X2)))
mark(nil)active(nil)mark(and(X1, X2))active(and(mark(X1), X2))
mark(tt)active(tt)mark(isNePal(X))active(isNePal(mark(X)))
__(mark(X1), X2)__(X1, X2)__(X1, mark(X2))__(X1, X2)
__(active(X1), X2)__(X1, X2)__(X1, active(X2))__(X1, X2)
and(mark(X1), X2)and(X1, X2)and(X1, mark(X2))and(X1, X2)
and(active(X1), X2)and(X1, X2)and(X1, active(X2))and(X1, X2)
isNePal(mark(X))isNePal(X)isNePal(active(X))isNePal(X)

Original Signature

Termination of terms over the following signature is verified: tt, isNePal, active, __, mark, nil, and

Strategy


Polynomial Interpretation

Improved Usable rules

isNePal(active(X))isNePal(X)active(__(nil, X))mark(X)
active(__(X, nil))mark(X)__(active(X1), X2)__(X1, X2)
mark(__(X1, X2))active(__(mark(X1), mark(X2)))mark(tt)active(tt)
__(X1, mark(X2))__(X1, X2)and(active(X1), X2)and(X1, X2)
active(and(tt, X))mark(X)mark(isNePal(X))active(isNePal(mark(X)))
and(X1, mark(X2))and(X1, X2)and(mark(X1), X2)and(X1, X2)
mark(and(X1, X2))active(and(mark(X1), X2))__(mark(X1), X2)__(X1, X2)
active(__(__(X, Y), Z))mark(__(X, __(Y, Z)))isNePal(mark(X))isNePal(X)
and(X1, active(X2))and(X1, X2)mark(nil)active(nil)
__(X1, active(X2))__(X1, X2)active(isNePal(__(I, __(P, I))))mark(tt)

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

mark#(isNePal(X))mark#(X)

Problem 8: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)active#(__(__(X, Y), Z))mark#(__(X, __(Y, Z)))
active#(__(X, nil))mark#(X)active#(__(nil, X))mark#(X)
mark#(and(X1, X2))active#(and(mark(X1), X2))mark#(__(X1, X2))mark#(X1)
mark#(__(X1, X2))active#(__(mark(X1), mark(X2)))active#(and(tt, X))mark#(X)
mark#(isNePal(X))active#(isNePal(mark(X)))mark#(__(X1, X2))mark#(X2)

Rewrite Rules

active(__(__(X, Y), Z))mark(__(X, __(Y, Z)))active(__(X, nil))mark(X)
active(__(nil, X))mark(X)active(and(tt, X))mark(X)
active(isNePal(__(I, __(P, I))))mark(tt)mark(__(X1, X2))active(__(mark(X1), mark(X2)))
mark(nil)active(nil)mark(and(X1, X2))active(and(mark(X1), X2))
mark(tt)active(tt)mark(isNePal(X))active(isNePal(mark(X)))
__(mark(X1), X2)__(X1, X2)__(X1, mark(X2))__(X1, X2)
__(active(X1), X2)__(X1, X2)__(X1, active(X2))__(X1, X2)
and(mark(X1), X2)and(X1, X2)and(X1, mark(X2))and(X1, X2)
and(active(X1), X2)and(X1, X2)and(X1, active(X2))and(X1, X2)
isNePal(mark(X))isNePal(X)isNePal(active(X))isNePal(X)

Original Signature

Termination of terms over the following signature is verified: tt, isNePal, __, active, mark, and, nil

Strategy


Polynomial Interpretation

Improved Usable rules

isNePal(active(X))isNePal(X)active(__(nil, X))mark(X)
active(__(X, nil))mark(X)__(active(X1), X2)__(X1, X2)
mark(__(X1, X2))active(__(mark(X1), mark(X2)))mark(tt)active(tt)
__(X1, mark(X2))__(X1, X2)and(active(X1), X2)and(X1, X2)
active(and(tt, X))mark(X)mark(isNePal(X))active(isNePal(mark(X)))
and(X1, mark(X2))and(X1, X2)and(mark(X1), X2)and(X1, X2)
mark(and(X1, X2))active(and(mark(X1), X2))__(mark(X1), X2)__(X1, X2)
active(__(__(X, Y), Z))mark(__(X, __(Y, Z)))isNePal(mark(X))isNePal(X)
and(X1, active(X2))and(X1, X2)mark(nil)active(nil)
__(X1, active(X2))__(X1, X2)active(isNePal(__(I, __(P, I))))mark(tt)

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

mark#(and(X1, X2))active#(and(mark(X1), X2))mark#(__(X1, X2))active#(__(mark(X1), mark(X2)))
mark#(__(X1, X2))mark#(X1)mark#(isNePal(X))active#(isNePal(mark(X)))
active#(and(tt, X))mark#(X)mark#(__(X1, X2))mark#(X2)

Problem 9: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)active#(__(__(X, Y), Z))mark#(__(X, __(Y, Z)))
active#(__(X, nil))mark#(X)active#(__(nil, X))mark#(X)

Rewrite Rules

active(__(__(X, Y), Z))mark(__(X, __(Y, Z)))active(__(X, nil))mark(X)
active(__(nil, X))mark(X)active(and(tt, X))mark(X)
active(isNePal(__(I, __(P, I))))mark(tt)mark(__(X1, X2))active(__(mark(X1), mark(X2)))
mark(nil)active(nil)mark(and(X1, X2))active(and(mark(X1), X2))
mark(tt)active(tt)mark(isNePal(X))active(isNePal(mark(X)))
__(mark(X1), X2)__(X1, X2)__(X1, mark(X2))__(X1, X2)
__(active(X1), X2)__(X1, X2)__(X1, active(X2))__(X1, X2)
and(mark(X1), X2)and(X1, X2)and(X1, mark(X2))and(X1, X2)
and(active(X1), X2)and(X1, X2)and(X1, active(X2))and(X1, X2)
isNePal(mark(X))isNePal(X)isNePal(active(X))isNePal(X)

Original Signature

Termination of terms over the following signature is verified: tt, isNePal, active, __, mark, nil, and

Strategy


The following SCCs where found

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

Problem 10: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(__(__(X, Y), Z))mark(__(X, __(Y, Z)))active(__(X, nil))mark(X)
active(__(nil, X))mark(X)active(and(tt, X))mark(X)
active(isNePal(__(I, __(P, I))))mark(tt)mark(__(X1, X2))active(__(mark(X1), mark(X2)))
mark(nil)active(nil)mark(and(X1, X2))active(and(mark(X1), X2))
mark(tt)active(tt)mark(isNePal(X))active(isNePal(mark(X)))
__(mark(X1), X2)__(X1, X2)__(X1, mark(X2))__(X1, X2)
__(active(X1), X2)__(X1, X2)__(X1, active(X2))__(X1, X2)
and(mark(X1), X2)and(X1, X2)and(X1, mark(X2))and(X1, X2)
and(active(X1), X2)and(X1, X2)and(X1, active(X2))and(X1, X2)
isNePal(mark(X))isNePal(X)isNePal(active(X))isNePal(X)

Original Signature

Termination of terms over the following signature is verified: tt, isNePal, active, __, mark, nil, and

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#(and(X1, X2))mark#(X1)

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

and#(active(X1), X2)and#(X1, X2)and#(X1, active(X2))and#(X1, X2)
and#(mark(X1), X2)and#(X1, X2)and#(X1, mark(X2))and#(X1, X2)

Rewrite Rules

active(__(__(X, Y), Z))mark(__(X, __(Y, Z)))active(__(X, nil))mark(X)
active(__(nil, X))mark(X)active(and(tt, X))mark(X)
active(isNePal(__(I, __(P, I))))mark(tt)mark(__(X1, X2))active(__(mark(X1), mark(X2)))
mark(nil)active(nil)mark(and(X1, X2))active(and(mark(X1), X2))
mark(tt)active(tt)mark(isNePal(X))active(isNePal(mark(X)))
__(mark(X1), X2)__(X1, X2)__(X1, mark(X2))__(X1, X2)
__(active(X1), X2)__(X1, X2)__(X1, active(X2))__(X1, X2)
and(mark(X1), X2)and(X1, X2)and(X1, mark(X2))and(X1, X2)
and(active(X1), X2)and(X1, X2)and(X1, active(X2))and(X1, X2)
isNePal(mark(X))isNePal(X)isNePal(active(X))isNePal(X)

Original Signature

Termination of terms over the following signature is verified: tt, isNePal, active, __, mark, nil, and

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

and#(active(X1), X2)and#(X1, X2)and#(mark(X1), X2)and#(X1, X2)

Problem 7: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

and#(X1, active(X2))and#(X1, X2)and#(X1, mark(X2))and#(X1, X2)

Rewrite Rules

active(__(__(X, Y), Z))mark(__(X, __(Y, Z)))active(__(X, nil))mark(X)
active(__(nil, X))mark(X)active(and(tt, X))mark(X)
active(isNePal(__(I, __(P, I))))mark(tt)mark(__(X1, X2))active(__(mark(X1), mark(X2)))
mark(nil)active(nil)mark(and(X1, X2))active(and(mark(X1), X2))
mark(tt)active(tt)mark(isNePal(X))active(isNePal(mark(X)))
__(mark(X1), X2)__(X1, X2)__(X1, mark(X2))__(X1, X2)
__(active(X1), X2)__(X1, X2)__(X1, active(X2))__(X1, X2)
and(mark(X1), X2)and(X1, X2)and(X1, mark(X2))and(X1, X2)
and(active(X1), X2)and(X1, X2)and(X1, active(X2))and(X1, X2)
isNePal(mark(X))isNePal(X)isNePal(active(X))isNePal(X)

Original Signature

Termination of terms over the following signature is verified: tt, isNePal, __, active, mark, and, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

and#(X1, active(X2))and#(X1, X2)and#(X1, mark(X2))and#(X1, X2)