YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (29ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (291ms).
 | – Problem 3 was processed with processor SubtermCriterion (1ms).
 |    | – Problem 5 was processed with processor SubtermCriterion (20ms).
 |    |    | – Problem 6 was processed with processor PolynomialLinearRange4iUR (31ms).
 | – Problem 4 was processed with processor SubtermCriterion (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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), l))a(h, h, x) → s(x)
a(x, s(y), h) → a(x, y, s(h))a(x, s(y), s(z)) → a(x, y, a(x, s(y), z))
a(s(x), h, z) → a(x, z, z)

Original Signature

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

Strategy


The following SCCs where found

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

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

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

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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), l))a(h, h, x) → s(x)
a(x, s(y), h) → a(x, y, s(h))a(x, s(y), s(z)) → a(x, y, a(x, s(y), z))
a(s(x), h, z) → a(x, z, z)

Original Signature

Termination of terms over the following signature is verified: app, 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), l))

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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), l))a(h, h, x) → s(x)
a(x, s(y), h) → a(x, y, s(h))a(x, s(y), s(z)) → a(x, y, a(x, s(y), z))
a(s(x), h, z) → a(x, z, z)

Original Signature

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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), l))a(h, h, x) → s(x)
a(x, s(y), h) → a(x, y, s(h))a(x, s(y), s(z)) → a(x, y, a(x, s(y), z))
a(s(x), h, z) → a(x, z, z)

Original Signature

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 6: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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), l))a(h, h, x) → s(x)
a(x, s(y), h) → a(x, y, s(h))a(x, s(y), s(z)) → a(x, y, a(x, s(y), z))
a(s(x), h, z) → a(x, z, z)

Original Signature

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

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:

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

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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), l))a(h, h, x) → s(x)
a(x, s(y), h) → a(x, y, s(h))a(x, s(y), s(z)) → a(x, y, a(x, s(y), z))
a(s(x), h, z) → a(x, z, z)

Original Signature

Termination of terms over the following signature is verified: app, 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)