YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (234ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4 (173ms).
 |    | – Problem 3 was processed with processor PolynomialLinearRange4 (114ms).
 |    |    | – Problem 4 was processed with processor DependencyGraph (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)U11#(tt, N)activate#(N)
U21#(tt, M, N)s#(plus(activate(N), activate(M)))activate#(n__s(X))activate#(X)
activate#(n__plus(X1, X2))plus#(activate(X1), activate(X2))plus#(N, s(M))U21#(and(isNat(M), n__isNat(N)), M, N)
isNat#(n__plus(V1, V2))isNat#(activate(V1))U21#(tt, M, N)plus#(activate(N), activate(M))
plus#(N, 0)isNat#(N)U21#(tt, M, N)activate#(N)
isNat#(n__plus(V1, V2))activate#(V2)isNat#(n__plus(V1, V2))and#(isNat(activate(V1)), n__isNat(activate(V2)))
plus#(N, s(M))isNat#(M)activate#(n__plus(X1, X2))activate#(X2)
plus#(N, s(M))and#(isNat(M), n__isNat(N))isNat#(n__s(V1))isNat#(activate(V1))
plus#(N, 0)U11#(isNat(N), N)U21#(tt, M, N)activate#(M)
activate#(n__isNat(X))isNat#(X)activate#(n__0)0#
isNat#(n__plus(V1, V2))activate#(V1)activate#(n__s(X))s#(activate(X))
isNat#(n__s(V1))activate#(V1)activate#(n__plus(X1, X2))activate#(X1)

Rewrite Rules

U11(tt, N)activate(N)U21(tt, M, N)s(plus(activate(N), activate(M)))
and(tt, X)activate(X)isNat(n__0)tt
isNat(n__plus(V1, V2))and(isNat(activate(V1)), n__isNat(activate(V2)))isNat(n__s(V1))isNat(activate(V1))
plus(N, 0)U11(isNat(N), N)plus(N, s(M))U21(and(isNat(M), n__isNat(N)), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNat(X)n__isNat(X)s(X)n__s(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNat(X))isNat(X)activate(n__s(X))s(activate(X))
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, n__isNat, n__plus, and, activate, isNat, n__s, n__0, 0, s, tt, U11, U21

Strategy


The following SCCs where found

and#(tt, X) → activate#(X)U11#(tt, N) → activate#(N)
activate#(n__s(X)) → activate#(X)activate#(n__plus(X1, X2)) → plus#(activate(X1), activate(X2))
plus#(N, s(M)) → U21#(and(isNat(M), n__isNat(N)), M, N)isNat#(n__plus(V1, V2)) → isNat#(activate(V1))
U21#(tt, M, N) → plus#(activate(N), activate(M))plus#(N, 0) → isNat#(N)
U21#(tt, M, N) → activate#(N)isNat#(n__plus(V1, V2)) → activate#(V2)
isNat#(n__plus(V1, V2)) → and#(isNat(activate(V1)), n__isNat(activate(V2)))activate#(n__plus(X1, X2)) → activate#(X2)
plus#(N, s(M)) → isNat#(M)plus#(N, s(M)) → and#(isNat(M), n__isNat(N))
isNat#(n__s(V1)) → isNat#(activate(V1))U21#(tt, M, N) → activate#(M)
plus#(N, 0) → U11#(isNat(N), N)activate#(n__isNat(X)) → isNat#(X)
isNat#(n__plus(V1, V2)) → activate#(V1)isNat#(n__s(V1)) → activate#(V1)
activate#(n__plus(X1, X2)) → activate#(X1)

Problem 2: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)U11#(tt, N)activate#(N)
activate#(n__plus(X1, X2))plus#(activate(X1), activate(X2))activate#(n__s(X))activate#(X)
isNat#(n__plus(V1, V2))isNat#(activate(V1))plus#(N, s(M))U21#(and(isNat(M), n__isNat(N)), M, N)
U21#(tt, M, N)plus#(activate(N), activate(M))isNat#(n__plus(V1, V2))activate#(V2)
U21#(tt, M, N)activate#(N)plus#(N, 0)isNat#(N)
isNat#(n__plus(V1, V2))and#(isNat(activate(V1)), n__isNat(activate(V2)))plus#(N, s(M))isNat#(M)
activate#(n__plus(X1, X2))activate#(X2)plus#(N, s(M))and#(isNat(M), n__isNat(N))
isNat#(n__s(V1))isNat#(activate(V1))U21#(tt, M, N)activate#(M)
plus#(N, 0)U11#(isNat(N), N)activate#(n__isNat(X))isNat#(X)
isNat#(n__plus(V1, V2))activate#(V1)isNat#(n__s(V1))activate#(V1)
activate#(n__plus(X1, X2))activate#(X1)

Rewrite Rules

U11(tt, N)activate(N)U21(tt, M, N)s(plus(activate(N), activate(M)))
and(tt, X)activate(X)isNat(n__0)tt
isNat(n__plus(V1, V2))and(isNat(activate(V1)), n__isNat(activate(V2)))isNat(n__s(V1))isNat(activate(V1))
plus(N, 0)U11(isNat(N), N)plus(N, s(M))U21(and(isNat(M), n__isNat(N)), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNat(X)n__isNat(X)s(X)n__s(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNat(X))isNat(X)activate(n__s(X))s(activate(X))
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, n__isNat, n__plus, and, activate, isNat, n__s, n__0, 0, s, tt, U11, U21

Strategy


Polynomial Interpretation

Standard Usable rules

plus(X1, X2)n__plus(X1, X2)plus(N, 0)U11(isNat(N), N)
isNat(n__plus(V1, V2))and(isNat(activate(V1)), n__isNat(activate(V2)))U21(tt, M, N)s(plus(activate(N), activate(M)))
activate(n__0)0U11(tt, N)activate(N)
0n__0isNat(n__0)tt
and(tt, X)activate(X)s(X)n__s(X)
activate(X)XisNat(n__s(V1))isNat(activate(V1))
activate(n__isNat(X))isNat(X)isNat(X)n__isNat(X)
plus(N, s(M))U21(and(isNat(M), n__isNat(N)), M, N)activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__s(X))s(activate(X))

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

activate#(n__s(X))activate#(X)plus#(N, s(M))U21#(and(isNat(M), n__isNat(N)), M, N)
U21#(tt, M, N)plus#(activate(N), activate(M))U21#(tt, M, N)activate#(N)
plus#(N, s(M))isNat#(M)plus#(N, s(M))and#(isNat(M), n__isNat(N))
isNat#(n__s(V1))isNat#(activate(V1))U21#(tt, M, N)activate#(M)
isNat#(n__s(V1))activate#(V1)

Problem 3: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNat#(n__plus(V1, V2))and#(isNat(activate(V1)), n__isNat(activate(V2)))activate#(n__plus(X1, X2))activate#(X2)
and#(tt, X)activate#(X)U11#(tt, N)activate#(N)
activate#(n__plus(X1, X2))plus#(activate(X1), activate(X2))plus#(N, 0)U11#(isNat(N), N)
activate#(n__isNat(X))isNat#(X)isNat#(n__plus(V1, V2))isNat#(activate(V1))
isNat#(n__plus(V1, V2))activate#(V1)activate#(n__plus(X1, X2))activate#(X1)
plus#(N, 0)isNat#(N)isNat#(n__plus(V1, V2))activate#(V2)

Rewrite Rules

U11(tt, N)activate(N)U21(tt, M, N)s(plus(activate(N), activate(M)))
and(tt, X)activate(X)isNat(n__0)tt
isNat(n__plus(V1, V2))and(isNat(activate(V1)), n__isNat(activate(V2)))isNat(n__s(V1))isNat(activate(V1))
plus(N, 0)U11(isNat(N), N)plus(N, s(M))U21(and(isNat(M), n__isNat(N)), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNat(X)n__isNat(X)s(X)n__s(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNat(X))isNat(X)activate(n__s(X))s(activate(X))
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, n__isNat, n__plus, and, activate, isNat, n__s, n__0, 0, s, tt, U11, U21

Strategy


Polynomial Interpretation

Standard Usable rules

plus(X1, X2)n__plus(X1, X2)plus(N, 0)U11(isNat(N), N)
isNat(n__plus(V1, V2))and(isNat(activate(V1)), n__isNat(activate(V2)))U21(tt, M, N)s(plus(activate(N), activate(M)))
activate(n__0)0U11(tt, N)activate(N)
0n__0isNat(n__0)tt
and(tt, X)activate(X)s(X)n__s(X)
activate(X)XisNat(n__s(V1))isNat(activate(V1))
activate(n__isNat(X))isNat(X)isNat(X)n__isNat(X)
plus(N, s(M))U21(and(isNat(M), n__isNat(N)), M, N)activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__s(X))s(activate(X))

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

isNat#(n__plus(V1, V2))isNat#(activate(V1))plus#(N, 0)isNat#(N)
isNat#(n__plus(V1, V2))and#(isNat(activate(V1)), n__isNat(activate(V2)))activate#(n__plus(X1, X2))activate#(X2)
plus#(N, 0)U11#(isNat(N), N)activate#(n__isNat(X))isNat#(X)
activate#(n__plus(X1, X2))activate#(X1)

Problem 4: DependencyGraph



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)U11#(tt, N)activate#(N)
activate#(n__plus(X1, X2))plus#(activate(X1), activate(X2))isNat#(n__plus(V1, V2))activate#(V1)
isNat#(n__plus(V1, V2))activate#(V2)

Rewrite Rules

U11(tt, N)activate(N)U21(tt, M, N)s(plus(activate(N), activate(M)))
and(tt, X)activate(X)isNat(n__0)tt
isNat(n__plus(V1, V2))and(isNat(activate(V1)), n__isNat(activate(V2)))isNat(n__s(V1))isNat(activate(V1))
plus(N, 0)U11(isNat(N), N)plus(N, s(M))U21(and(isNat(M), n__isNat(N)), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNat(X)n__isNat(X)s(X)n__s(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNat(X))isNat(X)activate(n__s(X))s(activate(X))
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, n__isNat, n__plus, and, activate, isNat, n__s, n__0, 0, s, tt, U11, U21

Strategy


There are no SCCs!