YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (38ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4 (89ms).
 | – Problem 3 was processed with processor PolynomialLinearRange4 (44ms).
 |    | – Problem 4 was processed with processor PolynomialLinearRange4 (123ms).
 |    |    | – Problem 5 was processed with processor PolynomialLinearRange4 (69ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

T(take(X, L)) → take#(X, L)T(length(L)) → length#(L)
T(take(x_1, x_2)) → T(x_2)T(s(x_1)) → T(x_1)
T(take(x_1, x_2)) → T(x_1)T(length(x_1)) → T(x_1)
eq#(s(X), s(Y)) → eq#(X, Y)T(inf(s(X))) → inf#(s(X))

Rewrite Rules

eq(0, 0) → trueeq(s(X), s(Y)) → eq(X, Y)
eq(X, Y) → falseinf(X) → cons(X, inf(s(X)))
take(0, X) → niltake(s(X), cons(Y, L)) → cons(Y, take(X, L))
length(nil) → 0length(cons(X, L)) → s(length(L))

Original Signature

Termination of terms over the following signature is verified: 0, s, take, inf, length, true, false, eq, cons, nil

Strategy

Context-sensitive strategy:
μ(true) = μ(eq#) = μ(T) = μ(0) = μ(s) = μ(false) = μ(eq) = μ(cons) = μ(nil) = ∅
μ(length#) = μ(inf) = μ(inf#) = μ(length) = {1}
μ(take#) = μ(take) = {1, 2}


The following SCCs where found

T(take(x_1, x_2)) → T(x_2)T(s(x_1)) → T(x_1)
T(take(x_1, x_2)) → T(x_1)T(length(x_1)) → T(x_1)

eq#(s(X), s(Y)) → eq#(X, Y)

Problem 2: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

eq#(s(X), s(Y)) → eq#(X, Y)

Rewrite Rules

eq(0, 0) → trueeq(s(X), s(Y)) → eq(X, Y)
eq(X, Y) → falseinf(X) → cons(X, inf(s(X)))
take(0, X) → niltake(s(X), cons(Y, L)) → cons(Y, take(X, L))
length(nil) → 0length(cons(X, L)) → s(length(L))

Original Signature

Termination of terms over the following signature is verified: 0, s, take, inf, length, true, false, eq, cons, nil

Strategy

Context-sensitive strategy:
μ(true) = μ(eq#) = μ(T) = μ(0) = μ(s) = μ(false) = μ(nil) = μ(cons) = μ(eq) = ∅
μ(length#) = μ(inf) = μ(inf#) = μ(length) = {1}
μ(take#) = μ(take) = {1, 2}


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:

eq#(s(X), s(Y)) → eq#(X, Y)

Problem 3: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

T(take(x_1, x_2)) → T(x_2)T(s(x_1)) → T(x_1)
T(take(x_1, x_2)) → T(x_1)T(length(x_1)) → T(x_1)

Rewrite Rules

eq(0, 0) → trueeq(s(X), s(Y)) → eq(X, Y)
eq(X, Y) → falseinf(X) → cons(X, inf(s(X)))
take(0, X) → niltake(s(X), cons(Y, L)) → cons(Y, take(X, L))
length(nil) → 0length(cons(X, L)) → s(length(L))

Original Signature

Termination of terms over the following signature is verified: 0, s, take, inf, length, true, false, eq, cons, nil

Strategy

Context-sensitive strategy:
μ(true) = μ(eq#) = μ(T) = μ(0) = μ(s) = μ(false) = μ(nil) = μ(cons) = μ(eq) = ∅
μ(length#) = μ(inf) = μ(inf#) = μ(length) = {1}
μ(take#) = μ(take) = {1, 2}


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:

T(s(x_1)) → T(x_1)

Problem 4: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

T(take(x_1, x_2)) → T(x_2)T(take(x_1, x_2)) → T(x_1)
T(length(x_1)) → T(x_1)

Rewrite Rules

eq(0, 0) → trueeq(s(X), s(Y)) → eq(X, Y)
eq(X, Y) → falseinf(X) → cons(X, inf(s(X)))
take(0, X) → niltake(s(X), cons(Y, L)) → cons(Y, take(X, L))
length(nil) → 0length(cons(X, L)) → s(length(L))

Original Signature

Termination of terms over the following signature is verified: 0, s, take, length, inf, false, true, nil, cons, eq

Strategy

Context-sensitive strategy:
μ(true) = μ(eq#) = μ(T) = μ(0) = μ(s) = μ(false) = μ(eq) = μ(cons) = μ(nil) = ∅
μ(length#) = μ(inf) = μ(inf#) = μ(length) = {1}
μ(take#) = μ(take) = {1, 2}


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:

T(length(x_1)) → T(x_1)

Problem 5: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

T(take(x_1, x_2)) → T(x_2)T(take(x_1, x_2)) → T(x_1)

Rewrite Rules

eq(0, 0) → trueeq(s(X), s(Y)) → eq(X, Y)
eq(X, Y) → falseinf(X) → cons(X, inf(s(X)))
take(0, X) → niltake(s(X), cons(Y, L)) → cons(Y, take(X, L))
length(nil) → 0length(cons(X, L)) → s(length(L))

Original Signature

Termination of terms over the following signature is verified: 0, s, take, inf, length, true, false, eq, cons, nil

Strategy

Context-sensitive strategy:
μ(true) = μ(eq#) = μ(T) = μ(0) = μ(s) = μ(false) = μ(nil) = μ(cons) = μ(eq) = ∅
μ(length#) = μ(inf) = μ(inf#) = μ(length) = {1}
μ(take#) = μ(take) = {1, 2}


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:

T(take(x_1, x_2)) → T(x_2)T(take(x_1, x_2)) → T(x_1)