YES

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

The following DP Processors were used


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

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

s#(f(x, y))s#(x)f#(g(x, y), g(u, v))f#(x, u)
f#(g(x, y), g(u, v))f#(y, v)s#(f(x, y))f#(s(y), s(x))
s#(f(x, y))s#(y)s#(g(x, y))g#(s(x), s(y))
f#(g(x, y), g(u, v))g#(f(x, u), f(y, v))s#(g(x, y))s#(y)
s#(g(x, y))s#(x)

Rewrite Rules

s(a)as(s(x))x
s(f(x, y))f(s(y), s(x))s(g(x, y))g(s(x), s(y))
f(x, a)xf(a, y)y
f(g(x, y), g(u, v))g(f(x, u), f(y, v))g(a, a)a

Original Signature

Termination of terms over the following signature is verified: f, g, s, a

Strategy


The following SCCs where found

s#(f(x, y)) → s#(x)s#(f(x, y)) → s#(y)
s#(g(x, y)) → s#(y)s#(g(x, y)) → s#(x)

f#(g(x, y), g(u, v)) → f#(x, u)f#(g(x, y), g(u, v)) → f#(y, v)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

s#(f(x, y))s#(x)s#(f(x, y))s#(y)
s#(g(x, y))s#(y)s#(g(x, y))s#(x)

Rewrite Rules

s(a)as(s(x))x
s(f(x, y))f(s(y), s(x))s(g(x, y))g(s(x), s(y))
f(x, a)xf(a, y)y
f(g(x, y), g(u, v))g(f(x, u), f(y, v))g(a, a)a

Original Signature

Termination of terms over the following signature is verified: f, g, s, a

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

s#(f(x, y))s#(x)s#(f(x, y))s#(y)
s#(g(x, y))s#(y)s#(g(x, y))s#(x)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

f#(g(x, y), g(u, v))f#(x, u)f#(g(x, y), g(u, v))f#(y, v)

Rewrite Rules

s(a)as(s(x))x
s(f(x, y))f(s(y), s(x))s(g(x, y))g(s(x), s(y))
f(x, a)xf(a, y)y
f(g(x, y), g(u, v))g(f(x, u), f(y, v))g(a, a)a

Original Signature

Termination of terms over the following signature is verified: f, g, s, a

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

f#(g(x, y), g(u, v))f#(y, v)f#(g(x, y), g(u, v))f#(x, u)