YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (7ms).
 | – Problem 2 was processed with processor SubtermCriterion (0ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

merge#(++(x, y), ++(u, v))merge#(++(x, y), v)merge#(++(x, y), ++(u, v))merge#(y, ++(u, v))

Rewrite Rules

merge(x, nil)xmerge(nil, y)y
merge(++(x, y), ++(u, v))++(x, merge(y, ++(u, v)))merge(++(x, y), ++(u, v))++(u, merge(++(x, y), v))

Original Signature

Termination of terms over the following signature is verified: v, u, merge, ++, nil

Strategy


The following SCCs where found

merge#(++(x, y), ++(u, v)) → merge#(y, ++(u, v))

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

merge#(++(x, y), ++(u, v))merge#(y, ++(u, v))

Rewrite Rules

merge(x, nil)xmerge(nil, y)y
merge(++(x, y), ++(u, v))++(x, merge(y, ++(u, v)))merge(++(x, y), ++(u, v))++(u, merge(++(x, y), v))

Original Signature

Termination of terms over the following signature is verified: v, u, merge, ++, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

merge#(++(x, y), ++(u, v))merge#(y, ++(u, v))