YES

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

The following DP Processors were used


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

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

f#(s(x), s(y), s(z)) → f#(x, y, f(s(x), s(y), z))f#(0, s(s(y)), s(s(z))) → f#(0, s(s(y)), s(z))
f#(s(x), s(y), s(z)) → f#(s(x), s(y), z)f#(0, s(s(y)), s(s(z))) → f#(0, y, f(0, s(s(y)), s(z)))
f#(s(x), 0, s(z)) → f#(x, s(0), z)f#(s(0), y, z) → f#(0, s(y), s(z))
f#(s(x), s(y), 0) → f#(x, y, s(0))f#(0, s(0), s(s(z))) → f#(0, s(0), z)
f#(0, s(s(y)), s(0)) → f#(0, y, s(0))

Rewrite Rules

f(x, 0, 0) → s(x)f(0, y, 0) → s(y)
f(0, 0, z) → s(z)f(s(0), y, z) → f(0, s(y), s(z))
f(s(x), s(y), 0) → f(x, y, s(0))f(s(x), 0, s(z)) → f(x, s(0), z)
f(0, s(0), s(0)) → s(s(0))f(s(x), s(y), s(z)) → f(x, y, f(s(x), s(y), z))
f(0, s(s(y)), s(0)) → f(0, y, s(0))f(0, s(0), s(s(z))) → f(0, s(0), z)
f(0, s(s(y)), s(s(z))) → f(0, y, f(0, s(s(y)), s(z)))

Original Signature

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

Strategy


The following SCCs where found

f#(0, s(s(y)), s(s(z))) → f#(0, s(s(y)), s(z))f#(0, s(s(y)), s(s(z))) → f#(0, y, f(0, s(s(y)), s(z)))

f#(s(x), s(y), s(z)) → f#(x, y, f(s(x), s(y), z))f#(s(x), s(y), s(z)) → f#(s(x), s(y), z)
f#(s(x), 0, s(z)) → f#(x, s(0), z)f#(s(x), s(y), 0) → f#(x, y, s(0))

f#(0, s(0), s(s(z))) → f#(0, s(0), z)

f#(0, s(s(y)), s(0)) → f#(0, y, s(0))

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

f#(s(x), s(y), s(z)) → f#(x, y, f(s(x), s(y), z))f#(s(x), s(y), s(z)) → f#(s(x), s(y), z)
f#(s(x), 0, s(z)) → f#(x, s(0), z)f#(s(x), s(y), 0) → f#(x, y, s(0))

Rewrite Rules

f(x, 0, 0) → s(x)f(0, y, 0) → s(y)
f(0, 0, z) → s(z)f(s(0), y, z) → f(0, s(y), s(z))
f(s(x), s(y), 0) → f(x, y, s(0))f(s(x), 0, s(z)) → f(x, s(0), z)
f(0, s(0), s(0)) → s(s(0))f(s(x), s(y), s(z)) → f(x, y, f(s(x), s(y), z))
f(0, s(s(y)), s(0)) → f(0, y, s(0))f(0, s(0), s(s(z))) → f(0, s(0), z)
f(0, s(s(y)), s(s(z))) → f(0, y, f(0, s(s(y)), s(z)))

Original Signature

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

f#(s(x), s(y), s(z)) → f#(x, y, f(s(x), s(y), z))f#(s(x), 0, s(z)) → f#(x, s(0), z)
f#(s(x), s(y), 0) → f#(x, y, s(0))

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

f(x, 0, 0) → s(x)f(0, y, 0) → s(y)
f(0, 0, z) → s(z)f(s(0), y, z) → f(0, s(y), s(z))
f(s(x), s(y), 0) → f(x, y, s(0))f(s(x), 0, s(z)) → f(x, s(0), z)
f(0, s(0), s(0)) → s(s(0))f(s(x), s(y), s(z)) → f(x, y, f(s(x), s(y), z))
f(0, s(s(y)), s(0)) → f(0, y, s(0))f(0, s(0), s(s(z))) → f(0, s(0), z)
f(0, s(s(y)), s(s(z))) → f(0, y, f(0, s(s(y)), s(z)))

Original Signature

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

f#(0, s(s(y)), s(s(z))) → f#(0, s(s(y)), s(z))f#(0, s(s(y)), s(s(z))) → f#(0, y, f(0, s(s(y)), s(z)))

Rewrite Rules

f(x, 0, 0) → s(x)f(0, y, 0) → s(y)
f(0, 0, z) → s(z)f(s(0), y, z) → f(0, s(y), s(z))
f(s(x), s(y), 0) → f(x, y, s(0))f(s(x), 0, s(z)) → f(x, s(0), z)
f(0, s(0), s(0)) → s(s(0))f(s(x), s(y), s(z)) → f(x, y, f(s(x), s(y), z))
f(0, s(s(y)), s(0)) → f(0, y, s(0))f(0, s(0), s(s(z))) → f(0, s(0), z)
f(0, s(s(y)), s(s(z))) → f(0, y, f(0, s(s(y)), s(z)))

Original Signature

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

f#(0, s(s(y)), s(s(z))) → f#(0, y, f(0, s(s(y)), s(z)))

Problem 7: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

f#(0, s(s(y)), s(s(z))) → f#(0, s(s(y)), s(z))

Rewrite Rules

f(x, 0, 0) → s(x)f(0, y, 0) → s(y)
f(0, 0, z) → s(z)f(s(0), y, z) → f(0, s(y), s(z))
f(s(x), s(y), 0) → f(x, y, s(0))f(s(x), 0, s(z)) → f(x, s(0), z)
f(0, s(0), s(0)) → s(s(0))f(s(x), s(y), s(z)) → f(x, y, f(s(x), s(y), z))
f(0, s(s(y)), s(0)) → f(0, y, s(0))f(0, s(0), s(s(z))) → f(0, s(0), z)
f(0, s(s(y)), s(s(z))) → f(0, y, f(0, s(s(y)), s(z)))

Original Signature

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

f#(0, s(s(y)), s(s(z))) → f#(0, s(s(y)), s(z))

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

f#(0, s(0), s(s(z))) → f#(0, s(0), z)

Rewrite Rules

f(x, 0, 0) → s(x)f(0, y, 0) → s(y)
f(0, 0, z) → s(z)f(s(0), y, z) → f(0, s(y), s(z))
f(s(x), s(y), 0) → f(x, y, s(0))f(s(x), 0, s(z)) → f(x, s(0), z)
f(0, s(0), s(0)) → s(s(0))f(s(x), s(y), s(z)) → f(x, y, f(s(x), s(y), z))
f(0, s(s(y)), s(0)) → f(0, y, s(0))f(0, s(0), s(s(z))) → f(0, s(0), z)
f(0, s(s(y)), s(s(z))) → f(0, y, f(0, s(s(y)), s(z)))

Original Signature

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

f#(0, s(0), s(s(z))) → f#(0, s(0), z)

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

f#(0, s(s(y)), s(0)) → f#(0, y, s(0))

Rewrite Rules

f(x, 0, 0) → s(x)f(0, y, 0) → s(y)
f(0, 0, z) → s(z)f(s(0), y, z) → f(0, s(y), s(z))
f(s(x), s(y), 0) → f(x, y, s(0))f(s(x), 0, s(z)) → f(x, s(0), z)
f(0, s(0), s(0)) → s(s(0))f(s(x), s(y), s(z)) → f(x, y, f(s(x), s(y), z))
f(0, s(s(y)), s(0)) → f(0, y, s(0))f(0, s(0), s(s(z))) → f(0, s(0), z)
f(0, s(s(y)), s(s(z))) → f(0, y, f(0, s(s(y)), s(z)))

Original Signature

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

f#(0, s(s(y)), s(0)) → f#(0, y, s(0))