YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (563ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (345ms).
 | – Problem 3 was processed with processor SubtermCriterion (2ms).
 | – Problem 4 was processed with processor PolynomialLinearRange4iUR (419ms).
 |    | – Problem 7 was processed with processor PolynomialLinearRange4iUR (93ms).
 |    |    | – Problem 9 was processed with processor PolynomialLinearRange4iUR (89ms).
 | – Problem 5 was processed with processor PolynomialLinearRange4iUR (58ms).
 |    | – Problem 8 was processed with processor PolynomialLinearRange4iUR (10ms).
 | – Problem 6 was processed with processor SubtermCriterion (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

ge#(0(x), 1(y)) → not#(ge(y, x))-#(0(x), 0(y)) → 0#(-(x, y))
-#(1(x), 1(y)) → 0#(-(x, y))+#(0(x), 0(y)) → +#(x, y)
log'#(0(x)) → +#(log'(x), 1(#))+#(+(x, y), z) → +#(y, z)
-#(0(x), 1(y)) → -#(x, y)-#(0(x), 0(y)) → -#(x, y)
+#(+(x, y), z) → +#(x, +(y, z))+#(0(x), 0(y)) → 0#(+(x, y))
log'#(1(x)) → +#(log'(x), 1(#))log#(x) → log'#(x)
-#(1(x), 1(y)) → -#(x, y)+#(1(x), 0(y)) → +#(x, y)
log#(x) → -#(log'(x), 1(#))log'#(0(x)) → if#(ge(x, 1(#)), +(log'(x), 1(#)), #)
ge#(1(x), 1(y)) → ge#(x, y)+#(1(x), 1(y)) → 0#(+(+(x, y), 1(#)))
+#(0(x), 1(y)) → +#(x, y)ge#(0(x), 1(y)) → ge#(y, x)
-#(1(x), 0(y)) → -#(x, y)-#(0(x), 1(y)) → -#(-(x, y), 1(#))
+#(1(x), 1(y)) → +#(+(x, y), 1(#))log'#(0(x)) → ge#(x, 1(#))
ge#(1(x), 0(y)) → ge#(x, y)log'#(1(x)) → log'#(x)
ge#(0(x), 0(y)) → ge#(x, y)log'#(0(x)) → log'#(x)
ge#(#, 0(x)) → ge#(#, x)+#(1(x), 1(y)) → +#(x, y)

Rewrite Rules

0(#) → #+(#, x) → x
+(x, #) → x+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))+(+(x, y), z) → +(x, +(y, z))
-(#, x) → #-(x, #) → x
-(0(x), 0(y)) → 0(-(x, y))-(0(x), 1(y)) → 1(-(-(x, y), 1(#)))
-(1(x), 0(y)) → 1(-(x, y))-(1(x), 1(y)) → 0(-(x, y))
not(true) → falsenot(false) → true
if(true, x, y) → xif(false, x, y) → y
ge(0(x), 0(y)) → ge(x, y)ge(0(x), 1(y)) → not(ge(y, x))
ge(1(x), 0(y)) → ge(x, y)ge(1(x), 1(y)) → ge(x, y)
ge(x, #) → truege(#, 0(x)) → ge(#, x)
ge(#, 1(x)) → falselog(x) → -(log'(x), 1(#))
log'(#) → #log'(1(x)) → +(log'(x), 1(#))
log'(0(x)) → if(ge(x, 1(#)), +(log'(x), 1(#)), #)

Original Signature

Termination of terms over the following signature is verified: not, #, 1, 0, log', if, +, false, true, ge, log, -

Strategy


The following SCCs where found

log'#(1(x)) → log'#(x)log'#(0(x)) → log'#(x)

ge#(1(x), 1(y)) → ge#(x, y)ge#(0(x), 1(y)) → ge#(y, x)
ge#(0(x), 0(y)) → ge#(x, y)ge#(1(x), 0(y)) → ge#(x, y)

ge#(#, 0(x)) → ge#(#, x)

+#(0(x), 1(y)) → +#(x, y)+#(0(x), 0(y)) → +#(x, y)
+#(+(x, y), z) → +#(y, z)+#(1(x), 1(y)) → +#(x, y)
+#(1(x), 1(y)) → +#(+(x, y), 1(#))+#(1(x), 0(y)) → +#(x, y)
+#(+(x, y), z) → +#(x, +(y, z))

-#(1(x), 0(y)) → -#(x, y)-#(0(x), 1(y)) → -#(x, y)
-#(0(x), 1(y)) → -#(-(x, y), 1(#))-#(1(x), 1(y)) → -#(x, y)
-#(0(x), 0(y)) → -#(x, y)

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

-#(1(x), 0(y)) → -#(x, y)-#(0(x), 1(y)) → -#(x, y)
-#(0(x), 1(y)) → -#(-(x, y), 1(#))-#(1(x), 1(y)) → -#(x, y)
-#(0(x), 0(y)) → -#(x, y)

Rewrite Rules

0(#) → #+(#, x) → x
+(x, #) → x+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))+(+(x, y), z) → +(x, +(y, z))
-(#, x) → #-(x, #) → x
-(0(x), 0(y)) → 0(-(x, y))-(0(x), 1(y)) → 1(-(-(x, y), 1(#)))
-(1(x), 0(y)) → 1(-(x, y))-(1(x), 1(y)) → 0(-(x, y))
not(true) → falsenot(false) → true
if(true, x, y) → xif(false, x, y) → y
ge(0(x), 0(y)) → ge(x, y)ge(0(x), 1(y)) → not(ge(y, x))
ge(1(x), 0(y)) → ge(x, y)ge(1(x), 1(y)) → ge(x, y)
ge(x, #) → truege(#, 0(x)) → ge(#, x)
ge(#, 1(x)) → falselog(x) → -(log'(x), 1(#))
log'(#) → #log'(1(x)) → +(log'(x), 1(#))
log'(0(x)) → if(ge(x, 1(#)), +(log'(x), 1(#)), #)

Original Signature

Termination of terms over the following signature is verified: not, #, 1, 0, log', if, +, false, true, ge, log, -

Strategy


Polynomial Interpretation

Improved Usable rules

-(1(x), 1(y)) → 0(-(x, y))0(#) → #
-(0(x), 0(y)) → 0(-(x, y))-(1(x), 0(y)) → 1(-(x, y))
-(0(x), 1(y)) → 1(-(-(x, y), 1(#)))-(x, #) → x
-(#, x) → #

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

-#(1(x), 0(y)) → -#(x, y)-#(0(x), 1(y)) → -#(x, y)
-#(0(x), 1(y)) → -#(-(x, y), 1(#))-#(1(x), 1(y)) → -#(x, y)
-#(0(x), 0(y)) → -#(x, y)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

ge#(#, 0(x)) → ge#(#, x)

Rewrite Rules

0(#) → #+(#, x) → x
+(x, #) → x+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))+(+(x, y), z) → +(x, +(y, z))
-(#, x) → #-(x, #) → x
-(0(x), 0(y)) → 0(-(x, y))-(0(x), 1(y)) → 1(-(-(x, y), 1(#)))
-(1(x), 0(y)) → 1(-(x, y))-(1(x), 1(y)) → 0(-(x, y))
not(true) → falsenot(false) → true
if(true, x, y) → xif(false, x, y) → y
ge(0(x), 0(y)) → ge(x, y)ge(0(x), 1(y)) → not(ge(y, x))
ge(1(x), 0(y)) → ge(x, y)ge(1(x), 1(y)) → ge(x, y)
ge(x, #) → truege(#, 0(x)) → ge(#, x)
ge(#, 1(x)) → falselog(x) → -(log'(x), 1(#))
log'(#) → #log'(1(x)) → +(log'(x), 1(#))
log'(0(x)) → if(ge(x, 1(#)), +(log'(x), 1(#)), #)

Original Signature

Termination of terms over the following signature is verified: not, #, 1, 0, log', if, +, false, true, ge, log, -

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

ge#(#, 0(x)) → ge#(#, x)

Problem 4: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

+#(0(x), 1(y)) → +#(x, y)+#(0(x), 0(y)) → +#(x, y)
+#(+(x, y), z) → +#(y, z)+#(1(x), 1(y)) → +#(x, y)
+#(1(x), 1(y)) → +#(+(x, y), 1(#))+#(1(x), 0(y)) → +#(x, y)
+#(+(x, y), z) → +#(x, +(y, z))

Rewrite Rules

0(#) → #+(#, x) → x
+(x, #) → x+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))+(+(x, y), z) → +(x, +(y, z))
-(#, x) → #-(x, #) → x
-(0(x), 0(y)) → 0(-(x, y))-(0(x), 1(y)) → 1(-(-(x, y), 1(#)))
-(1(x), 0(y)) → 1(-(x, y))-(1(x), 1(y)) → 0(-(x, y))
not(true) → falsenot(false) → true
if(true, x, y) → xif(false, x, y) → y
ge(0(x), 0(y)) → ge(x, y)ge(0(x), 1(y)) → not(ge(y, x))
ge(1(x), 0(y)) → ge(x, y)ge(1(x), 1(y)) → ge(x, y)
ge(x, #) → truege(#, 0(x)) → ge(#, x)
ge(#, 1(x)) → falselog(x) → -(log'(x), 1(#))
log'(#) → #log'(1(x)) → +(log'(x), 1(#))
log'(0(x)) → if(ge(x, 1(#)), +(log'(x), 1(#)), #)

Original Signature

Termination of terms over the following signature is verified: not, #, 1, 0, log', if, +, false, true, ge, log, -

Strategy


Polynomial Interpretation

Improved Usable rules

+(+(x, y), z) → +(x, +(y, z))+(0(x), 0(y)) → 0(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))0(#) → #
+(x, #) → x+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))+(#, x) → x

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

+#(0(x), 1(y)) → +#(x, y)+#(1(x), 1(y)) → +#(x, y)
+#(1(x), 1(y)) → +#(+(x, y), 1(#))+#(1(x), 0(y)) → +#(x, y)

Problem 7: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

0(#) → #+(#, x) → x
+(x, #) → x+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))+(+(x, y), z) → +(x, +(y, z))
-(#, x) → #-(x, #) → x
-(0(x), 0(y)) → 0(-(x, y))-(0(x), 1(y)) → 1(-(-(x, y), 1(#)))
-(1(x), 0(y)) → 1(-(x, y))-(1(x), 1(y)) → 0(-(x, y))
not(true) → falsenot(false) → true
if(true, x, y) → xif(false, x, y) → y
ge(0(x), 0(y)) → ge(x, y)ge(0(x), 1(y)) → not(ge(y, x))
ge(1(x), 0(y)) → ge(x, y)ge(1(x), 1(y)) → ge(x, y)
ge(x, #) → truege(#, 0(x)) → ge(#, x)
ge(#, 1(x)) → falselog(x) → -(log'(x), 1(#))
log'(#) → #log'(1(x)) → +(log'(x), 1(#))
log'(0(x)) → if(ge(x, 1(#)), +(log'(x), 1(#)), #)

Original Signature

Termination of terms over the following signature is verified: not, #, 1, 0, log', if, true, false, +, ge, log, -

Strategy


Polynomial Interpretation

Improved Usable rules

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

+#(0(x), 0(y)) → +#(x, y)

Problem 9: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

0(#) → #+(#, x) → x
+(x, #) → x+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))+(+(x, y), z) → +(x, +(y, z))
-(#, x) → #-(x, #) → x
-(0(x), 0(y)) → 0(-(x, y))-(0(x), 1(y)) → 1(-(-(x, y), 1(#)))
-(1(x), 0(y)) → 1(-(x, y))-(1(x), 1(y)) → 0(-(x, y))
not(true) → falsenot(false) → true
if(true, x, y) → xif(false, x, y) → y
ge(0(x), 0(y)) → ge(x, y)ge(0(x), 1(y)) → not(ge(y, x))
ge(1(x), 0(y)) → ge(x, y)ge(1(x), 1(y)) → ge(x, y)
ge(x, #) → truege(#, 0(x)) → ge(#, x)
ge(#, 1(x)) → falselog(x) → -(log'(x), 1(#))
log'(#) → #log'(1(x)) → +(log'(x), 1(#))
log'(0(x)) → if(ge(x, 1(#)), +(log'(x), 1(#)), #)

Original Signature

Termination of terms over the following signature is verified: not, #, 1, 0, log', if, +, false, true, ge, log, -

Strategy


Polynomial Interpretation

Improved Usable rules

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

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

Problem 5: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

ge#(1(x), 1(y)) → ge#(x, y)ge#(0(x), 1(y)) → ge#(y, x)
ge#(0(x), 0(y)) → ge#(x, y)ge#(1(x), 0(y)) → ge#(x, y)

Rewrite Rules

0(#) → #+(#, x) → x
+(x, #) → x+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))+(+(x, y), z) → +(x, +(y, z))
-(#, x) → #-(x, #) → x
-(0(x), 0(y)) → 0(-(x, y))-(0(x), 1(y)) → 1(-(-(x, y), 1(#)))
-(1(x), 0(y)) → 1(-(x, y))-(1(x), 1(y)) → 0(-(x, y))
not(true) → falsenot(false) → true
if(true, x, y) → xif(false, x, y) → y
ge(0(x), 0(y)) → ge(x, y)ge(0(x), 1(y)) → not(ge(y, x))
ge(1(x), 0(y)) → ge(x, y)ge(1(x), 1(y)) → ge(x, y)
ge(x, #) → truege(#, 0(x)) → ge(#, x)
ge(#, 1(x)) → falselog(x) → -(log'(x), 1(#))
log'(#) → #log'(1(x)) → +(log'(x), 1(#))
log'(0(x)) → if(ge(x, 1(#)), +(log'(x), 1(#)), #)

Original Signature

Termination of terms over the following signature is verified: not, #, 1, 0, log', if, +, false, true, ge, log, -

Strategy


Polynomial Interpretation

There are no usable rules

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

ge#(1(x), 1(y)) → ge#(x, y)ge#(0(x), 1(y)) → ge#(y, x)
ge#(1(x), 0(y)) → ge#(x, y)

Problem 8: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

ge#(0(x), 0(y)) → ge#(x, y)

Rewrite Rules

0(#) → #+(#, x) → x
+(x, #) → x+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))+(+(x, y), z) → +(x, +(y, z))
-(#, x) → #-(x, #) → x
-(0(x), 0(y)) → 0(-(x, y))-(0(x), 1(y)) → 1(-(-(x, y), 1(#)))
-(1(x), 0(y)) → 1(-(x, y))-(1(x), 1(y)) → 0(-(x, y))
not(true) → falsenot(false) → true
if(true, x, y) → xif(false, x, y) → y
ge(0(x), 0(y)) → ge(x, y)ge(0(x), 1(y)) → not(ge(y, x))
ge(1(x), 0(y)) → ge(x, y)ge(1(x), 1(y)) → ge(x, y)
ge(x, #) → truege(#, 0(x)) → ge(#, x)
ge(#, 1(x)) → falselog(x) → -(log'(x), 1(#))
log'(#) → #log'(1(x)) → +(log'(x), 1(#))
log'(0(x)) → if(ge(x, 1(#)), +(log'(x), 1(#)), #)

Original Signature

Termination of terms over the following signature is verified: not, #, 1, 0, log', if, true, false, +, ge, log, -

Strategy


Polynomial Interpretation

There are no usable rules

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

ge#(0(x), 0(y)) → ge#(x, y)

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

log'#(1(x)) → log'#(x)log'#(0(x)) → log'#(x)

Rewrite Rules

0(#) → #+(#, x) → x
+(x, #) → x+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))+(+(x, y), z) → +(x, +(y, z))
-(#, x) → #-(x, #) → x
-(0(x), 0(y)) → 0(-(x, y))-(0(x), 1(y)) → 1(-(-(x, y), 1(#)))
-(1(x), 0(y)) → 1(-(x, y))-(1(x), 1(y)) → 0(-(x, y))
not(true) → falsenot(false) → true
if(true, x, y) → xif(false, x, y) → y
ge(0(x), 0(y)) → ge(x, y)ge(0(x), 1(y)) → not(ge(y, x))
ge(1(x), 0(y)) → ge(x, y)ge(1(x), 1(y)) → ge(x, y)
ge(x, #) → truege(#, 0(x)) → ge(#, x)
ge(#, 1(x)) → falselog(x) → -(log'(x), 1(#))
log'(#) → #log'(1(x)) → +(log'(x), 1(#))
log'(0(x)) → if(ge(x, 1(#)), +(log'(x), 1(#)), #)

Original Signature

Termination of terms over the following signature is verified: not, #, 1, 0, log', if, +, false, true, ge, log, -

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

log'#(1(x)) → log'#(x)log'#(0(x)) → log'#(x)