YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (69ms).
 | – Problem 2 was processed with processor SubtermCriterion (1ms).
 | – Problem 3 was processed with processor SubtermCriterion (0ms).
 | – Problem 4 was processed with processor SubtermCriterion (0ms).
 | – Problem 5 was processed with processor SubtermCriterion (0ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

prod#(cons(x, l))prod#(l)*#(s(x), s(y))*#(x, y)
*#(s(x), s(y))+#(x, y)*#(*(x, y), z)*#(x, *(y, z))
*#(*(x, y), z)*#(y, z)*#(s(x), s(y))+#(*(x, y), +(x, y))
+#(+(x, y), z)+#(y, z)sum#(cons(x, l))sum#(l)
sum#(cons(x, l))+#(x, sum(l))prod#(cons(x, l))*#(x, prod(l))
+#(s(x), s(y))+#(x, y)+#(+(x, y), z)+#(x, +(y, z))

Rewrite Rules

+(x, 0)x+(0, x)x
+(s(x), s(y))s(s(+(x, y)))+(+(x, y), z)+(x, +(y, z))
*(x, 0)0*(0, x)0
*(s(x), s(y))s(+(*(x, y), +(x, y)))*(*(x, y), z)*(x, *(y, z))
sum(nil)0sum(cons(x, l))+(x, sum(l))
prod(nil)s(0)prod(cons(x, l))*(x, prod(l))

Original Signature

Termination of terms over the following signature is verified: 0, s, *, +, sum, nil, cons, prod

Strategy


The following SCCs where found

prod#(cons(x, l)) → prod#(l)

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

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

sum#(cons(x, l)) → sum#(l)

Problem 2: 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

+(x, 0)x+(0, x)x
+(s(x), s(y))s(s(+(x, y)))+(+(x, y), z)+(x, +(y, z))
*(x, 0)0*(0, x)0
*(s(x), s(y))s(+(*(x, y), +(x, y)))*(*(x, y), z)*(x, *(y, z))
sum(nil)0sum(cons(x, l))+(x, sum(l))
prod(nil)s(0)prod(cons(x, l))*(x, prod(l))

Original Signature

Termination of terms over the following signature is verified: 0, s, *, +, sum, nil, cons, prod

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 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

*#(s(x), s(y))*#(x, y)*#(*(x, y), z)*#(x, *(y, z))
*#(*(x, y), z)*#(y, z)

Rewrite Rules

+(x, 0)x+(0, x)x
+(s(x), s(y))s(s(+(x, y)))+(+(x, y), z)+(x, +(y, z))
*(x, 0)0*(0, x)0
*(s(x), s(y))s(+(*(x, y), +(x, y)))*(*(x, y), z)*(x, *(y, z))
sum(nil)0sum(cons(x, l))+(x, sum(l))
prod(nil)s(0)prod(cons(x, l))*(x, prod(l))

Original Signature

Termination of terms over the following signature is verified: 0, s, *, +, sum, nil, cons, prod

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

*#(s(x), s(y))*#(x, y)*#(*(x, y), z)*#(x, *(y, z))
*#(*(x, y), z)*#(y, z)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

prod#(cons(x, l))prod#(l)

Rewrite Rules

+(x, 0)x+(0, x)x
+(s(x), s(y))s(s(+(x, y)))+(+(x, y), z)+(x, +(y, z))
*(x, 0)0*(0, x)0
*(s(x), s(y))s(+(*(x, y), +(x, y)))*(*(x, y), z)*(x, *(y, z))
sum(nil)0sum(cons(x, l))+(x, sum(l))
prod(nil)s(0)prod(cons(x, l))*(x, prod(l))

Original Signature

Termination of terms over the following signature is verified: 0, s, *, +, sum, nil, cons, prod

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

prod#(cons(x, l))prod#(l)

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

sum#(cons(x, l))sum#(l)

Rewrite Rules

+(x, 0)x+(0, x)x
+(s(x), s(y))s(s(+(x, y)))+(+(x, y), z)+(x, +(y, z))
*(x, 0)0*(0, x)0
*(s(x), s(y))s(+(*(x, y), +(x, y)))*(*(x, y), z)*(x, *(y, z))
sum(nil)0sum(cons(x, l))+(x, sum(l))
prod(nil)s(0)prod(cons(x, l))*(x, prod(l))

Original Signature

Termination of terms over the following signature is verified: 0, s, *, +, sum, nil, cons, prod

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

sum#(cons(x, l))sum#(l)