YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (9ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (205ms).
 |    | – Problem 3 was processed with processor PolynomialLinearRange4iUR (137ms).
 |    |    | – Problem 4 was processed with processor DependencyGraph (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

if#(false, X, Y)activate#(Y)activate#(n__f(X))f#(activate(X))
f#(X)if#(X, c, n__f(n__true))activate#(n__f(X))activate#(X)
activate#(n__true)true#

Rewrite Rules

f(X)if(X, c, n__f(n__true))if(true, X, Y)X
if(false, X, Y)activate(Y)f(X)n__f(X)
truen__trueactivate(n__f(X))f(activate(X))
activate(n__true)trueactivate(X)X

Original Signature

Termination of terms over the following signature is verified: f, activate, c, if, true, false, n__true, n__f

Strategy


The following SCCs where found

if#(false, X, Y) → activate#(Y)activate#(n__f(X)) → f#(activate(X))
f#(X) → if#(X, c, n__f(n__true))activate#(n__f(X)) → activate#(X)

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

if#(false, X, Y)activate#(Y)activate#(n__f(X))f#(activate(X))
f#(X)if#(X, c, n__f(n__true))activate#(n__f(X))activate#(X)

Rewrite Rules

f(X)if(X, c, n__f(n__true))if(true, X, Y)X
if(false, X, Y)activate(Y)f(X)n__f(X)
truen__trueactivate(n__f(X))f(activate(X))
activate(n__true)trueactivate(X)X

Original Signature

Termination of terms over the following signature is verified: f, activate, c, if, true, false, n__true, n__f

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:

activate#(n__f(X))activate#(X)

Problem 3: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

activate#(n__f(X))f#(activate(X))if#(false, X, Y)activate#(Y)
f#(X)if#(X, c, n__f(n__true))

Rewrite Rules

f(X)if(X, c, n__f(n__true))if(true, X, Y)X
if(false, X, Y)activate(Y)f(X)n__f(X)
truen__trueactivate(n__f(X))f(activate(X))
activate(n__true)trueactivate(X)X

Original Signature

Termination of terms over the following signature is verified: activate, f, c, if, false, true, n__true, n__f

Strategy


Polynomial Interpretation

Improved Usable rules

activate(X)Xf(X)if(X, c, n__f(n__true))
if(false, X, Y)activate(Y)activate(n__f(X))f(activate(X))
f(X)n__f(X)if(true, X, Y)X
truen__trueactivate(n__true)true

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

if#(false, X, Y)activate#(Y)

Problem 4: DependencyGraph



Dependency Pair Problem

Dependency Pairs

activate#(n__f(X))f#(activate(X))f#(X)if#(X, c, n__f(n__true))

Rewrite Rules

f(X)if(X, c, n__f(n__true))if(true, X, Y)X
if(false, X, Y)activate(Y)f(X)n__f(X)
truen__trueactivate(n__f(X))f(activate(X))
activate(n__true)trueactivate(X)X

Original Signature

Termination of terms over the following signature is verified: f, activate, c, if, true, false, n__true, n__f

Strategy


There are no SCCs!