YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (157ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (379ms).
 | – Problem 3 was processed with processor SubtermCriterion (41ms).
 | – Problem 4 was processed with processor SubtermCriterion (1ms).
 | – Problem 5 was processed with processor SubtermCriterion (17ms).
 |    | – Problem 6 was processed with processor SubtermCriterion (2ms).
 |    |    | – Problem 7 was processed with processor PolynomialLinearRange4iUR (318ms).
 |    |    |    | – Problem 8 was processed with processor PolynomialLinearRange4iUR (25ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

a#(l, x, s(y), h) → s#(h)a#(l, x, s(y), s(z)) → s#(y)
+#(s(x), s(y)) → s#(+(x, y))a#(l, s(x), h, z) → a#(l, x, z, z)
a#(l, x, s(y), s(z)) → a#(l, x, s(y), z)+#(+(x, y), z) → +#(y, z)
a#(l, x, s(y), h) → a#(l, x, y, s(h))+#(s(x), s(y)) → +#(x, y)
+#(+(x, y), z) → +#(x, +(y, z))a#(h, h, h, x) → s#(x)
a#(s(l), h, h, z) → a#(l, z, h, z)sum#(cons(x, cons(y, l))) → a#(x, y, h, h)
+#(s(x), s(y)) → s#(s(+(x, y)))a#(l, x, s(y), s(z)) → a#(l, x, y, a(l, x, s(y), z))
sum#(cons(x, cons(y, l))) → sum#(cons(a(x, y, h, h), l))app#(cons(x, l), k) → app#(l, k)

Rewrite Rules

a(h, h, h, x) → s(x)a(l, x, s(y), h) → a(l, x, y, s(h))
a(l, x, s(y), s(z)) → a(l, x, y, a(l, x, s(y), z))a(l, s(x), h, z) → a(l, x, z, z)
a(s(l), h, h, z) → a(l, z, h, z)+(x, h) → x
+(h, x) → x+(s(x), s(y)) → s(s(+(x, y)))
+(+(x, y), z) → +(x, +(y, z))s(h) → 1
app(nil, k) → kapp(l, nil) → l
app(cons(x, l), k) → cons(x, app(l, k))sum(cons(x, nil)) → cons(x, nil)
sum(cons(x, cons(y, l))) → sum(cons(a(x, y, h, h), l))

Original Signature

Termination of terms over the following signature is verified: app, 1, s, a, +, sum, h, nil, cons

Strategy


The following SCCs where found

a#(s(l), h, h, z) → a#(l, z, h, z)a#(l, x, s(y), s(z)) → a#(l, x, y, a(l, x, s(y), z))
a#(l, s(x), h, z) → a#(l, x, z, z)a#(l, x, s(y), s(z)) → a#(l, x, s(y), z)
a#(l, x, s(y), h) → a#(l, x, y, s(h))

+#(+(x, y), z) → +#(y, z)+#(s(x), s(y)) → +#(x, y)
+#(+(x, y), z) → +#(x, +(y, z))

sum#(cons(x, cons(y, l))) → sum#(cons(a(x, y, h, h), l))

app#(cons(x, l), k) → app#(l, k)

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

sum#(cons(x, cons(y, l))) → sum#(cons(a(x, y, h, h), l))

Rewrite Rules

a(h, h, h, x) → s(x)a(l, x, s(y), h) → a(l, x, y, s(h))
a(l, x, s(y), s(z)) → a(l, x, y, a(l, x, s(y), z))a(l, s(x), h, z) → a(l, x, z, z)
a(s(l), h, h, z) → a(l, z, h, z)+(x, h) → x
+(h, x) → x+(s(x), s(y)) → s(s(+(x, y)))
+(+(x, y), z) → +(x, +(y, z))s(h) → 1
app(nil, k) → kapp(l, nil) → l
app(cons(x, l), k) → cons(x, app(l, k))sum(cons(x, nil)) → cons(x, nil)
sum(cons(x, cons(y, l))) → sum(cons(a(x, y, h, h), l))

Original Signature

Termination of terms over the following signature is verified: app, 1, s, a, +, sum, h, nil, cons

Strategy


Polynomial Interpretation

Improved Usable rules

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

sum#(cons(x, cons(y, l))) → sum#(cons(a(x, y, h, h), l))

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

+#(+(x, y), z) → +#(y, z)+#(s(x), s(y)) → +#(x, y)
+#(+(x, y), z) → +#(x, +(y, z))

Rewrite Rules

a(h, h, h, x) → s(x)a(l, x, s(y), h) → a(l, x, y, s(h))
a(l, x, s(y), s(z)) → a(l, x, y, a(l, x, s(y), z))a(l, s(x), h, z) → a(l, x, z, z)
a(s(l), h, h, z) → a(l, z, h, z)+(x, h) → x
+(h, x) → x+(s(x), s(y)) → s(s(+(x, y)))
+(+(x, y), z) → +(x, +(y, z))s(h) → 1
app(nil, k) → kapp(l, nil) → l
app(cons(x, l), k) → cons(x, app(l, k))sum(cons(x, nil)) → cons(x, nil)
sum(cons(x, cons(y, l))) → sum(cons(a(x, y, h, h), l))

Original Signature

Termination of terms over the following signature is verified: app, 1, s, a, +, sum, h, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

+#(+(x, y), z) → +#(y, z)+#(s(x), s(y)) → +#(x, y)
+#(+(x, y), z) → +#(x, +(y, z))

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

app#(cons(x, l), k) → app#(l, k)

Rewrite Rules

a(h, h, h, x) → s(x)a(l, x, s(y), h) → a(l, x, y, s(h))
a(l, x, s(y), s(z)) → a(l, x, y, a(l, x, s(y), z))a(l, s(x), h, z) → a(l, x, z, z)
a(s(l), h, h, z) → a(l, z, h, z)+(x, h) → x
+(h, x) → x+(s(x), s(y)) → s(s(+(x, y)))
+(+(x, y), z) → +(x, +(y, z))s(h) → 1
app(nil, k) → kapp(l, nil) → l
app(cons(x, l), k) → cons(x, app(l, k))sum(cons(x, nil)) → cons(x, nil)
sum(cons(x, cons(y, l))) → sum(cons(a(x, y, h, h), l))

Original Signature

Termination of terms over the following signature is verified: app, 1, s, a, +, sum, h, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

app#(cons(x, l), k) → app#(l, k)

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

a#(s(l), h, h, z) → a#(l, z, h, z)a#(l, x, s(y), s(z)) → a#(l, x, y, a(l, x, s(y), z))
a#(l, s(x), h, z) → a#(l, x, z, z)a#(l, x, s(y), s(z)) → a#(l, x, s(y), z)
a#(l, x, s(y), h) → a#(l, x, y, s(h))

Rewrite Rules

a(h, h, h, x) → s(x)a(l, x, s(y), h) → a(l, x, y, s(h))
a(l, x, s(y), s(z)) → a(l, x, y, a(l, x, s(y), z))a(l, s(x), h, z) → a(l, x, z, z)
a(s(l), h, h, z) → a(l, z, h, z)+(x, h) → x
+(h, x) → x+(s(x), s(y)) → s(s(+(x, y)))
+(+(x, y), z) → +(x, +(y, z))s(h) → 1
app(nil, k) → kapp(l, nil) → l
app(cons(x, l), k) → cons(x, app(l, k))sum(cons(x, nil)) → cons(x, nil)
sum(cons(x, cons(y, l))) → sum(cons(a(x, y, h, h), l))

Original Signature

Termination of terms over the following signature is verified: app, 1, s, a, +, sum, h, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

a#(s(l), h, h, z) → a#(l, z, h, z)

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

a#(l, x, s(y), s(z)) → a#(l, x, y, a(l, x, s(y), z))a#(l, s(x), h, z) → a#(l, x, z, z)
a#(l, x, s(y), s(z)) → a#(l, x, s(y), z)a#(l, x, s(y), h) → a#(l, x, y, s(h))

Rewrite Rules

a(h, h, h, x) → s(x)a(l, x, s(y), h) → a(l, x, y, s(h))
a(l, x, s(y), s(z)) → a(l, x, y, a(l, x, s(y), z))a(l, s(x), h, z) → a(l, x, z, z)
a(s(l), h, h, z) → a(l, z, h, z)+(x, h) → x
+(h, x) → x+(s(x), s(y)) → s(s(+(x, y)))
+(+(x, y), z) → +(x, +(y, z))s(h) → 1
app(nil, k) → kapp(l, nil) → l
app(cons(x, l), k) → cons(x, app(l, k))sum(cons(x, nil)) → cons(x, nil)
sum(cons(x, cons(y, l))) → sum(cons(a(x, y, h, h), l))

Original Signature

Termination of terms over the following signature is verified: app, 1, s, a, sum, +, h, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

a#(l, s(x), h, z) → a#(l, x, z, z)

Problem 7: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

a#(l, x, s(y), s(z)) → a#(l, x, y, a(l, x, s(y), z))a#(l, x, s(y), s(z)) → a#(l, x, s(y), z)
a#(l, x, s(y), h) → a#(l, x, y, s(h))

Rewrite Rules

a(h, h, h, x) → s(x)a(l, x, s(y), h) → a(l, x, y, s(h))
a(l, x, s(y), s(z)) → a(l, x, y, a(l, x, s(y), z))a(l, s(x), h, z) → a(l, x, z, z)
a(s(l), h, h, z) → a(l, z, h, z)+(x, h) → x
+(h, x) → x+(s(x), s(y)) → s(s(+(x, y)))
+(+(x, y), z) → +(x, +(y, z))s(h) → 1
app(nil, k) → kapp(l, nil) → l
app(cons(x, l), k) → cons(x, app(l, k))sum(cons(x, nil)) → cons(x, nil)
sum(cons(x, cons(y, l))) → sum(cons(a(x, y, h, h), l))

Original Signature

Termination of terms over the following signature is verified: app, 1, s, a, +, sum, h, nil, cons

Strategy


Polynomial Interpretation

Improved Usable rules

s(h) → 1

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

a#(l, x, s(y), s(z)) → a#(l, x, y, a(l, x, s(y), z))a#(l, x, s(y), h) → a#(l, x, y, s(h))

Problem 8: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

a#(l, x, s(y), s(z)) → a#(l, x, s(y), z)

Rewrite Rules

a(h, h, h, x) → s(x)a(l, x, s(y), h) → a(l, x, y, s(h))
a(l, x, s(y), s(z)) → a(l, x, y, a(l, x, s(y), z))a(l, s(x), h, z) → a(l, x, z, z)
a(s(l), h, h, z) → a(l, z, h, z)+(x, h) → x
+(h, x) → x+(s(x), s(y)) → s(s(+(x, y)))
+(+(x, y), z) → +(x, +(y, z))s(h) → 1
app(nil, k) → kapp(l, nil) → l
app(cons(x, l), k) → cons(x, app(l, k))sum(cons(x, nil)) → cons(x, nil)
sum(cons(x, cons(y, l))) → sum(cons(a(x, y, h, h), l))

Original Signature

Termination of terms over the following signature is verified: app, 1, s, a, sum, +, h, cons, nil

Strategy


Polynomial Interpretation

Improved Usable rules

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

a#(l, x, s(y), s(z)) → a#(l, x, s(y), z)