YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (158ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (2813ms).
 |    | – Problem 3 was processed with processor PolynomialLinearRange4iUR (1841ms).
 |    |    | – Problem 4 was processed with processor PolynomialLinearRange4iUR (1184ms).
 |    |    |    | – Problem 5 was processed with processor PolynomialLinearRange4iUR (861ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(U12(X))mark#(X)a____#(__(X, Y), Z)mark#(Y)
a____#(__(X, Y), Z)a____#(mark(Y), mark(Z))mark#(__(X1, X2))a____#(mark(X1), mark(X2))
mark#(U12(X))a__U12#(mark(X))mark#(U11(X))mark#(X)
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)a____#(__(X, Y), Z)a____#(mark(X), a____(mark(Y), mark(Z)))
mark#(U11(X))a__U11#(mark(X))a__U11#(tt)a__U12#(tt)
mark#(__(X1, X2))mark#(X1)a__isNePal#(__(I, __(P, I)))a__U11#(tt)
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__U11(tt)a__U12(tt)
a__U12(tt)tta__isNePal(__(I, __(P, I)))a__U11(tt)
mark(__(X1, X2))a____(mark(X1), mark(X2))mark(U11(X))a__U11(mark(X))
mark(U12(X))a__U12(mark(X))mark(isNePal(X))a__isNePal(mark(X))
mark(nil)nilmark(tt)tt
a____(X1, X2)__(X1, X2)a__U11(X)U11(X)
a__U12(X)U12(X)a__isNePal(X)isNePal(X)

Original Signature

Termination of terms over the following signature is verified: a____, tt, isNePal, __, U11, mark, a__U12, U12, a__U11, a__isNePal, nil

Strategy


The following SCCs where found

mark#(U12(X)) → mark#(X)a____#(__(X, Y), Z) → mark#(Y)
a____#(__(X, Y), Z) → a____#(mark(Y), mark(Z))mark#(__(X1, X2)) → a____#(mark(X1), mark(X2))
mark#(U11(X)) → mark#(X)a____#(nil, X) → mark#(X)
a____#(__(X, Y), Z) → mark#(X)a____#(X, nil) → mark#(X)
a____#(__(X, Y), Z) → mark#(Z)a____#(__(X, Y), Z) → a____#(mark(X), a____(mark(Y), mark(Z)))
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#(U12(X))mark#(X)
mark#(__(X1, X2))a____#(mark(X1), mark(X2))a____#(__(X, Y), Z)a____#(mark(Y), mark(Z))
mark#(U11(X))mark#(X)a____#(nil, X)mark#(X)
a____#(__(X, Y), Z)mark#(X)a____#(X, nil)mark#(X)
a____#(__(X, Y), Z)mark#(Z)a____#(__(X, Y), Z)a____#(mark(X), a____(mark(Y), mark(Z)))
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__U11(tt)a__U12(tt)
a__U12(tt)tta__isNePal(__(I, __(P, I)))a__U11(tt)
mark(__(X1, X2))a____(mark(X1), mark(X2))mark(U11(X))a__U11(mark(X))
mark(U12(X))a__U12(mark(X))mark(isNePal(X))a__isNePal(mark(X))
mark(nil)nilmark(tt)tt
a____(X1, X2)__(X1, X2)a__U11(X)U11(X)
a__U12(X)U12(X)a__isNePal(X)isNePal(X)

Original Signature

Termination of terms over the following signature is verified: a____, tt, isNePal, __, U11, mark, a__U12, U12, a__U11, a__isNePal, nil

Strategy


Polynomial Interpretation

Improved Usable rules

mark(tt)tta__isNePal(__(I, __(P, I)))a__U11(tt)
mark(U12(X))a__U12(mark(X))a____(X, nil)mark(X)
mark(isNePal(X))a__isNePal(mark(X))a____(X1, X2)__(X1, X2)
a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))a__isNePal(X)isNePal(X)
a____(nil, X)mark(X)mark(U11(X))a__U11(mark(X))
a__U12(X)U12(X)a__U11(tt)a__U12(tt)
mark(nil)nilmark(__(X1, X2))a____(mark(X1), mark(X2))
a__U11(X)U11(X)a__U12(tt)tt

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

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

Problem 3: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

a____#(__(X, Y), Z)mark#(Z)mark#(U12(X))mark#(X)
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__U11(tt)a__U12(tt)
a__U12(tt)tta__isNePal(__(I, __(P, I)))a__U11(tt)
mark(__(X1, X2))a____(mark(X1), mark(X2))mark(U11(X))a__U11(mark(X))
mark(U12(X))a__U12(mark(X))mark(isNePal(X))a__isNePal(mark(X))
mark(nil)nilmark(tt)tt
a____(X1, X2)__(X1, X2)a__U11(X)U11(X)
a__U12(X)U12(X)a__isNePal(X)isNePal(X)

Original Signature

Termination of terms over the following signature is verified: a____, tt, isNePal, U11, __, U12, a__U12, mark, a__isNePal, a__U11, nil

Strategy


Polynomial Interpretation

Improved Usable rules

mark(tt)tta__isNePal(__(I, __(P, I)))a__U11(tt)
mark(U12(X))a__U12(mark(X))a____(X, nil)mark(X)
mark(isNePal(X))a__isNePal(mark(X))a____(X1, X2)__(X1, X2)
a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))a__isNePal(X)isNePal(X)
a____(nil, X)mark(X)mark(U11(X))a__U11(mark(X))
a__U12(X)U12(X)a__U11(tt)a__U12(tt)
mark(nil)nilmark(__(X1, X2))a____(mark(X1), mark(X2))
a__U11(X)U11(X)a__U12(tt)tt

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

mark#(U12(X))mark#(X)

Problem 4: 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__U11(tt)a__U12(tt)
a__U12(tt)tta__isNePal(__(I, __(P, I)))a__U11(tt)
mark(__(X1, X2))a____(mark(X1), mark(X2))mark(U11(X))a__U11(mark(X))
mark(U12(X))a__U12(mark(X))mark(isNePal(X))a__isNePal(mark(X))
mark(nil)nilmark(tt)tt
a____(X1, X2)__(X1, X2)a__U11(X)U11(X)
a__U12(X)U12(X)a__isNePal(X)isNePal(X)

Original Signature

Termination of terms over the following signature is verified: a____, tt, isNePal, __, U11, mark, a__U12, U12, a__U11, a__isNePal, nil

Strategy


Polynomial Interpretation

Improved Usable rules

mark(tt)tta__isNePal(__(I, __(P, I)))a__U11(tt)
mark(U12(X))a__U12(mark(X))a____(X, nil)mark(X)
mark(isNePal(X))a__isNePal(mark(X))a____(X1, X2)__(X1, X2)
a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))a__isNePal(X)isNePal(X)
a____(nil, X)mark(X)mark(U11(X))a__U11(mark(X))
a__U12(X)U12(X)a__U11(tt)a__U12(tt)
mark(nil)nilmark(__(X1, X2))a____(mark(X1), mark(X2))
a__U11(X)U11(X)a__U12(tt)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(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)

Problem 5: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

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__U11(tt)a__U12(tt)
a__U12(tt)tta__isNePal(__(I, __(P, I)))a__U11(tt)
mark(__(X1, X2))a____(mark(X1), mark(X2))mark(U11(X))a__U11(mark(X))
mark(U12(X))a__U12(mark(X))mark(isNePal(X))a__isNePal(mark(X))
mark(nil)nilmark(tt)tt
a____(X1, X2)__(X1, X2)a__U11(X)U11(X)
a__U12(X)U12(X)a__isNePal(X)isNePal(X)

Original Signature

Termination of terms over the following signature is verified: a____, tt, isNePal, U11, __, U12, a__U12, mark, a__isNePal, a__U11, nil

Strategy


Polynomial Interpretation

Improved Usable rules

mark(tt)tta__isNePal(__(I, __(P, I)))a__U11(tt)
mark(U12(X))a__U12(mark(X))a____(X, nil)mark(X)
mark(isNePal(X))a__isNePal(mark(X))a____(X1, X2)__(X1, X2)
a____(__(X, Y), Z)a____(mark(X), a____(mark(Y), mark(Z)))a__isNePal(X)isNePal(X)
a____(nil, X)mark(X)mark(U11(X))a__U11(mark(X))
a__U12(X)U12(X)a__U11(tt)a__U12(tt)
mark(nil)nilmark(__(X1, X2))a____(mark(X1), mark(X2))
a__U11(X)U11(X)a__U12(tt)tt

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

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