YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (109ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (2380ms).
 |    | – Problem 3 was processed with processor PolynomialLinearRange4iUR (1436ms).
 |    |    | – Problem 4 was processed with processor DependencyGraph (10ms).
 |    |    |    | – Problem 5 was processed with processor PolynomialLinearRange4iUR (990ms).
 |    |    |    |    | – Problem 6 was processed with processor PolynomialLinearRange4iUR (930ms).
 |    |    |    |    |    | – Problem 7 was processed with processor PolynomialLinearRange4iUR (986ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

a____#(__(X, Y), Z)mark#(Y)a____#(__(X, Y), Z)a____#(mark(Y), mark(Z))
mark#(__(X1, X2))a____#(mark(X1), mark(X2))a____#(nil, X)mark#(X)
mark#(isNePal(X))a__isNePal#(mark(X))a____#(__(X, Y), Z)mark#(X)
a____#(X, nil)mark#(X)a____#(__(X, Y), Z)mark#(Z)
mark#(and(X1, X2))mark#(X1)a____#(__(X, Y), Z)a____#(mark(X), a____(mark(Y), mark(Z)))
mark#(and(X1, X2))a__and#(mark(X1), X2)a__and#(tt, X)mark#(X)
mark#(__(X1, X2))mark#(X1)mark#(isNePal(X))mark#(X)
mark#(__(X1, X2))mark#(X2)

Rewrite Rules

a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))a____(X, nil)mark(X)
a____(nil, X)mark(X)a__and(tt, X)mark(X)
a__isNePal(__(I, __(P, I)))ttmark(__(X1, X2))a____(mark(X1), mark(X2))
mark(and(X1, X2))a__and(mark(X1), X2)mark(isNePal(X))a__isNePal(mark(X))
mark(nil)nilmark(tt)tt
a____(X1, X2)__(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNePal(X)isNePal(X)

Original Signature

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

Strategy


The following SCCs where found

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

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))a____(X, nil)mark(X)
a____(nil, X)mark(X)a__and(tt, X)mark(X)
a__isNePal(__(I, __(P, I)))ttmark(__(X1, X2))a____(mark(X1), mark(X2))
mark(and(X1, X2))a__and(mark(X1), X2)mark(isNePal(X))a__isNePal(mark(X))
mark(nil)nilmark(tt)tt
a____(X1, X2)__(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNePal(X)isNePal(X)

Original Signature

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

Strategy


Polynomial Interpretation

Improved Usable rules

mark(tt)tta__and(X1, X2)and(X1, X2)
a__and(tt, X)mark(X)a____(X, nil)mark(X)
mark(isNePal(X))a__isNePal(mark(X))a____(X1, X2)__(X1, X2)
a__isNePal(X)isNePal(X)a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))
a____(nil, X)mark(X)mark(and(X1, X2))a__and(mark(X1), X2)
mark(nil)nilmark(__(X1, X2))a____(mark(X1), mark(X2))
a__isNePal(__(I, __(P, I)))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 3: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

a____#(__(X, Y), Z)mark#(Y)mark#(__(X1, X2))a____#(mark(X1), mark(X2))
a____#(__(X, Y), Z)a____#(mark(Y), mark(Z))a____#(nil, X)mark#(X)
a____#(__(X, Y), Z)mark#(X)a____#(X, nil)mark#(X)
mark#(and(X1, X2))mark#(X1)a____#(__(X, Y), Z)mark#(Z)
mark#(and(X1, X2))a__and#(mark(X1), X2)a____#(__(X, Y), Z)a____#(mark(X), a____(mark(Y), mark(Z)))
a__and#(tt, X)mark#(X)mark#(__(X1, X2))mark#(X1)
mark#(__(X1, X2))mark#(X2)

Rewrite Rules

a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))a____(X, nil)mark(X)
a____(nil, X)mark(X)a__and(tt, X)mark(X)
a__isNePal(__(I, __(P, I)))ttmark(__(X1, X2))a____(mark(X1), mark(X2))
mark(and(X1, X2))a__and(mark(X1), X2)mark(isNePal(X))a__isNePal(mark(X))
mark(nil)nilmark(tt)tt
a____(X1, X2)__(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNePal(X)isNePal(X)

Original Signature

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

Strategy


Polynomial Interpretation

Improved Usable rules

mark(tt)tta__and(X1, X2)and(X1, X2)
a__and(tt, X)mark(X)a____(X, nil)mark(X)
mark(isNePal(X))a__isNePal(mark(X))a____(X1, X2)__(X1, X2)
a__isNePal(X)isNePal(X)a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))
a____(nil, X)mark(X)mark(and(X1, X2))a__and(mark(X1), X2)
mark(nil)nilmark(__(X1, X2))a____(mark(X1), mark(X2))
a__isNePal(__(I, __(P, I)))tt

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

a__and#(tt, X)mark#(X)

Problem 4: DependencyGraph



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))a____(X, nil)mark(X)
a____(nil, X)mark(X)a__and(tt, X)mark(X)
a__isNePal(__(I, __(P, I)))ttmark(__(X1, X2))a____(mark(X1), mark(X2))
mark(and(X1, X2))a__and(mark(X1), X2)mark(isNePal(X))a__isNePal(mark(X))
mark(nil)nilmark(tt)tt
a____(X1, X2)__(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNePal(X)isNePal(X)

Original Signature

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

Strategy


The following SCCs where found

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

Problem 5: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))a____(X, nil)mark(X)
a____(nil, X)mark(X)a__and(tt, X)mark(X)
a__isNePal(__(I, __(P, I)))ttmark(__(X1, X2))a____(mark(X1), mark(X2))
mark(and(X1, X2))a__and(mark(X1), X2)mark(isNePal(X))a__isNePal(mark(X))
mark(nil)nilmark(tt)tt
a____(X1, X2)__(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNePal(X)isNePal(X)

Original Signature

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

Strategy


Polynomial Interpretation

Improved Usable rules

mark(tt)tta__and(X1, X2)and(X1, X2)
a__and(tt, X)mark(X)a____(X, nil)mark(X)
mark(isNePal(X))a__isNePal(mark(X))a____(X1, X2)__(X1, X2)
a__isNePal(X)isNePal(X)a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))
a____(nil, X)mark(X)mark(and(X1, X2))a__and(mark(X1), X2)
mark(nil)nilmark(__(X1, X2))a____(mark(X1), mark(X2))
a__isNePal(__(I, __(P, I)))tt

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

a____#(nil, X)mark#(X)a____#(X, nil)mark#(X)

Problem 6: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))a____(X, nil)mark(X)
a____(nil, X)mark(X)a__and(tt, X)mark(X)
a__isNePal(__(I, __(P, I)))ttmark(__(X1, X2))a____(mark(X1), mark(X2))
mark(and(X1, X2))a__and(mark(X1), X2)mark(isNePal(X))a__isNePal(mark(X))
mark(nil)nilmark(tt)tt
a____(X1, X2)__(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNePal(X)isNePal(X)

Original Signature

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

Strategy


Polynomial Interpretation

Improved Usable rules

mark(tt)tta__and(X1, X2)and(X1, X2)
a__and(tt, X)mark(X)a____(X, nil)mark(X)
mark(isNePal(X))a__isNePal(mark(X))a____(X1, X2)__(X1, X2)
a__isNePal(X)isNePal(X)a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))
a____(nil, X)mark(X)mark(and(X1, X2))a__and(mark(X1), X2)
mark(nil)nilmark(__(X1, X2))a____(mark(X1), mark(X2))
a__isNePal(__(I, __(P, I)))tt

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 7: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

a____#(__(X, Y), Z)mark#(Z)a____#(__(X, Y), Z)mark#(Y)
a____#(__(X, Y), Z)a____#(mark(X), a____(mark(Y), mark(Z)))mark#(__(X1, X2))a____#(mark(X1), mark(X2))
a____#(__(X, Y), Z)a____#(mark(Y), mark(Z))mark#(__(X1, X2))mark#(X1)
a____#(__(X, Y), Z)mark#(X)mark#(__(X1, X2))mark#(X2)

Rewrite Rules

a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))a____(X, nil)mark(X)
a____(nil, X)mark(X)a__and(tt, X)mark(X)
a__isNePal(__(I, __(P, I)))ttmark(__(X1, X2))a____(mark(X1), mark(X2))
mark(and(X1, X2))a__and(mark(X1), X2)mark(isNePal(X))a__isNePal(mark(X))
mark(nil)nilmark(tt)tt
a____(X1, X2)__(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNePal(X)isNePal(X)

Original Signature

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

Strategy


Polynomial Interpretation

Improved Usable rules

mark(tt)tta__and(X1, X2)and(X1, X2)
a__and(tt, X)mark(X)a____(X, nil)mark(X)
mark(isNePal(X))a__isNePal(mark(X))a____(X1, X2)__(X1, X2)
a__isNePal(X)isNePal(X)a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))
a____(nil, X)mark(X)mark(and(X1, X2))a__and(mark(X1), X2)
mark(nil)nilmark(__(X1, X2))a____(mark(X1), mark(X2))
a__isNePal(__(I, __(P, I)))tt

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

a____#(__(X, Y), Z)mark#(Z)a____#(__(X, Y), Z)mark#(Y)
a____#(__(X, Y), Z)a____#(mark(X), a____(mark(Y), mark(Z)))a____#(__(X, Y), Z)a____#(mark(Y), mark(Z))
mark#(__(X1, X2))a____#(mark(X1), mark(X2))mark#(__(X1, X2))mark#(X1)
a____#(__(X, Y), Z)mark#(X)mark#(__(X1, X2))mark#(X2)