YES

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

The following DP Processors were used


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

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

half#(s(s(x)))half#(x)double#(s(x))double#(x)
-#(s(x), s(y))-#(x, y)

Rewrite Rules

double(0)0double(s(x))s(s(double(x)))
half(0)0half(s(0))0
half(s(s(x)))s(half(x))-(x, 0)x
-(s(x), s(y))-(x, y)if(0, y, z)y
if(s(x), y, z)zhalf(double(x))x

Original Signature

Termination of terms over the following signature is verified: 0, s, if, half, double, -

Strategy


The following SCCs where found

half#(s(s(x))) → half#(x)

double#(s(x)) → double#(x)

-#(s(x), s(y)) → -#(x, y)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

-#(s(x), s(y))-#(x, y)

Rewrite Rules

double(0)0double(s(x))s(s(double(x)))
half(0)0half(s(0))0
half(s(s(x)))s(half(x))-(x, 0)x
-(s(x), s(y))-(x, y)if(0, y, z)y
if(s(x), y, z)zhalf(double(x))x

Original Signature

Termination of terms over the following signature is verified: 0, s, if, half, double, -

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

-#(s(x), s(y))-#(x, y)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

half#(s(s(x)))half#(x)

Rewrite Rules

double(0)0double(s(x))s(s(double(x)))
half(0)0half(s(0))0
half(s(s(x)))s(half(x))-(x, 0)x
-(s(x), s(y))-(x, y)if(0, y, z)y
if(s(x), y, z)zhalf(double(x))x

Original Signature

Termination of terms over the following signature is verified: 0, s, if, half, double, -

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

half#(s(s(x)))half#(x)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

double#(s(x))double#(x)

Rewrite Rules

double(0)0double(s(x))s(s(double(x)))
half(0)0half(s(0))0
half(s(s(x)))s(half(x))-(x, 0)x
-(s(x), s(y))-(x, y)if(0, y, z)y
if(s(x), y, z)zhalf(double(x))x

Original Signature

Termination of terms over the following signature is verified: 0, s, if, half, double, -

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

double#(s(x))double#(x)