YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (483ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4 (1424ms).
 |    | – Problem 3 was processed with processor DependencyGraph (106ms).
 |    |    | – Problem 4 was processed with processor PolynomialLinearRange4 (1111ms).
 |    |    |    | – Problem 5 was processed with processor DependencyGraph (53ms).
 |    |    |    |    | – Problem 6 was processed with processor PolynomialLinearRange4 (264ms).
 |    |    |    |    |    | – Problem 7 was processed with processor DependencyGraph (27ms).
 |    |    |    |    |    |    | – Problem 8 was processed with processor PolynomialLinearRange4 (244ms).
 |    |    |    |    |    |    |    | – Problem 9 was processed with processor DependencyGraph (16ms).
 |    |    |    |    |    |    |    |    | – Problem 10 was processed with processor PolynomialLinearRange4 (143ms).
 |    |    |    |    |    |    |    |    |    | – Problem 11 was processed with processor DependencyGraph (13ms).
 |    |    |    |    |    |    |    |    |    |    | – Problem 12 was processed with processor PolynomialLinearRange4 (137ms).
 |    |    |    |    |    |    |    |    |    |    |    | – Problem 13 was processed with processor DependencyGraph (0ms).
 |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 14 was processed with processor PolynomialLinearRange4 (8ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)plus#(N, s(M))U41#(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
activate#(n__and(X1, X2))activate#(X1)isNat#(n__plus(V1, V2))isNatKind#(activate(V1))
activate#(n__and(X1, X2))and#(activate(X1), X2)activate#(n__plus(X1, X2))plus#(activate(X1), activate(X2))
activate#(n__s(X))activate#(X)U41#(tt, M, N)activate#(M)
plus#(N, 0)and#(isNat(N), n__isNatKind(N))U41#(tt, M, N)plus#(activate(N), activate(M))
isNatKind#(n__s(V1))activate#(V1)plus#(N, s(M))and#(isNat(M), n__isNatKind(M))
U12#(tt, V2)activate#(V2)plus#(N, 0)isNat#(N)
U21#(tt, V1)U22#(isNat(activate(V1)))isNat#(n__plus(V1, V2))activate#(V2)
U41#(tt, M, N)s#(plus(activate(N), activate(M)))U11#(tt, V1, V2)activate#(V2)
activate#(n__plus(X1, X2))activate#(X2)isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))plus#(N, 0)U31#(and(isNat(N), n__isNatKind(N)), N)
isNatKind#(n__plus(V1, V2))activate#(V2)U11#(tt, V1, V2)isNat#(activate(V1))
activate#(n__isNat(X))isNat#(X)isNat#(n__s(V1))activate#(V1)
isNat#(n__plus(V1, V2))U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))U12#(tt, V2)isNat#(activate(V2))
plus#(N, s(M))and#(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N)))activate#(n__plus(X1, X2))activate#(X1)
isNatKind#(n__plus(V1, V2))activate#(V1)U21#(tt, V1)activate#(V1)
U31#(tt, N)activate#(N)U41#(tt, M, N)activate#(N)
U11#(tt, V1, V2)activate#(V1)plus#(N, s(M))isNat#(M)
activate#(n__isNatKind(X))isNatKind#(X)isNat#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
U11#(tt, V1, V2)U12#(isNat(activate(V1)), activate(V2))activate#(n__0)0#
isNat#(n__plus(V1, V2))activate#(V1)U21#(tt, V1)isNat#(activate(V1))
isNatKind#(n__s(V1))isNatKind#(activate(V1))activate#(n__s(X))s#(activate(X))
isNat#(n__s(V1))U21#(isNatKind(activate(V1)), activate(V1))isNat#(n__s(V1))isNatKind#(activate(V1))
U12#(tt, V2)U13#(isNat(activate(V2)))

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, U41, tt, U11, U12, U31, U13, U21, U22, n__isNatKind

Strategy


The following SCCs where found

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

Problem 2: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)plus#(N, s(M))U41#(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
activate#(n__and(X1, X2))activate#(X1)isNat#(n__plus(V1, V2))isNatKind#(activate(V1))
activate#(n__and(X1, X2))and#(activate(X1), X2)activate#(n__s(X))activate#(X)
activate#(n__plus(X1, X2))plus#(activate(X1), activate(X2))plus#(N, 0)and#(isNat(N), n__isNatKind(N))
U41#(tt, M, N)activate#(M)isNatKind#(n__s(V1))activate#(V1)
U41#(tt, M, N)plus#(activate(N), activate(M))plus#(N, s(M))and#(isNat(M), n__isNatKind(M))
U12#(tt, V2)activate#(V2)isNat#(n__plus(V1, V2))activate#(V2)
plus#(N, 0)isNat#(N)U11#(tt, V1, V2)activate#(V2)
isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))activate#(n__plus(X1, X2))activate#(X2)
isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))U11#(tt, V1, V2)isNat#(activate(V1))
plus#(N, 0)U31#(and(isNat(N), n__isNatKind(N)), N)isNatKind#(n__plus(V1, V2))activate#(V2)
activate#(n__isNat(X))isNat#(X)isNat#(n__s(V1))activate#(V1)
isNat#(n__plus(V1, V2))U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))activate#(n__plus(X1, X2))activate#(X1)
U12#(tt, V2)isNat#(activate(V2))plus#(N, s(M))and#(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N)))
isNatKind#(n__plus(V1, V2))activate#(V1)U21#(tt, V1)activate#(V1)
U31#(tt, N)activate#(N)U41#(tt, M, N)activate#(N)
U11#(tt, V1, V2)activate#(V1)activate#(n__isNatKind(X))isNatKind#(X)
plus#(N, s(M))isNat#(M)U11#(tt, V1, V2)U12#(isNat(activate(V1)), activate(V2))
isNat#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNat#(n__plus(V1, V2))activate#(V1)
U21#(tt, V1)isNat#(activate(V1))isNatKind#(n__s(V1))isNatKind#(activate(V1))
isNat#(n__s(V1))U21#(isNatKind(activate(V1)), activate(V1))isNat#(n__s(V1))isNatKind#(activate(V1))

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, U41, tt, U11, U12, U31, U13, U21, U22, n__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

isNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))U31(tt, N)activate(N)
U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))activate(n__0)0
isNat(n__0)ttU13(tt)tt
s(X)n__s(X)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
isNatKind(n__s(V1))isNatKind(activate(V1))U21(tt, V1)U22(isNat(activate(V1)))
isNat(X)n__isNat(X)isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
U22(tt)ttplus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)
plus(X1, X2)n__plus(X1, X2)isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))
U41(tt, M, N)s(plus(activate(N), activate(M)))activate(n__isNatKind(X))isNatKind(X)
and(X1, X2)n__and(X1, X2)U12(tt, V2)U13(isNat(activate(V2)))
isNatKind(X)n__isNatKind(X)0n__0
isNatKind(n__0)ttand(tt, X)activate(X)
activate(X)Xactivate(n__isNat(X))isNat(X)
activate(n__and(X1, X2))and(activate(X1), X2)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:

plus#(N, 0)and#(isNat(N), n__isNatKind(N))plus#(N, 0)isNat#(N)
plus#(N, 0)U31#(and(isNat(N), n__isNatKind(N)), N)

Problem 3: DependencyGraph



Dependency Pair Problem

Dependency Pairs

plus#(N, s(M))U41#(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)and#(tt, X)activate#(X)
activate#(n__and(X1, X2))activate#(X1)isNat#(n__plus(V1, V2))isNatKind#(activate(V1))
activate#(n__and(X1, X2))and#(activate(X1), X2)activate#(n__plus(X1, X2))plus#(activate(X1), activate(X2))
activate#(n__s(X))activate#(X)U41#(tt, M, N)activate#(M)
U41#(tt, M, N)plus#(activate(N), activate(M))isNatKind#(n__s(V1))activate#(V1)
plus#(N, s(M))and#(isNat(M), n__isNatKind(M))U12#(tt, V2)activate#(V2)
isNat#(n__plus(V1, V2))activate#(V2)U11#(tt, V1, V2)activate#(V2)
isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))activate#(n__plus(X1, X2))activate#(X2)
isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))U11#(tt, V1, V2)isNat#(activate(V1))
isNatKind#(n__plus(V1, V2))activate#(V2)activate#(n__isNat(X))isNat#(X)
isNat#(n__s(V1))activate#(V1)isNat#(n__plus(V1, V2))U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
activate#(n__plus(X1, X2))activate#(X1)U12#(tt, V2)isNat#(activate(V2))
plus#(N, s(M))and#(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N)))isNatKind#(n__plus(V1, V2))activate#(V1)
U21#(tt, V1)activate#(V1)U31#(tt, N)activate#(N)
U41#(tt, M, N)activate#(N)U11#(tt, V1, V2)activate#(V1)
plus#(N, s(M))isNat#(M)activate#(n__isNatKind(X))isNatKind#(X)
isNat#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))U11#(tt, V1, V2)U12#(isNat(activate(V1)), activate(V2))
isNat#(n__plus(V1, V2))activate#(V1)isNatKind#(n__s(V1))isNatKind#(activate(V1))
U21#(tt, V1)isNat#(activate(V1))isNat#(n__s(V1))U21#(isNatKind(activate(V1)), activate(V1))
isNat#(n__s(V1))isNatKind#(activate(V1))

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, tt, U41, U11, U12, U13, U31, U21, n__isNatKind, U22

Strategy


The following SCCs where found

plus#(N, s(M)) → U41#(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)and#(tt, X) → activate#(X)
activate#(n__and(X1, X2)) → activate#(X1)isNat#(n__plus(V1, V2)) → isNatKind#(activate(V1))
activate#(n__and(X1, X2)) → and#(activate(X1), X2)activate#(n__s(X)) → activate#(X)
activate#(n__plus(X1, X2)) → plus#(activate(X1), activate(X2))U41#(tt, M, N) → activate#(M)
isNatKind#(n__s(V1)) → activate#(V1)U41#(tt, M, N) → plus#(activate(N), activate(M))
plus#(N, s(M)) → and#(isNat(M), n__isNatKind(M))U12#(tt, V2) → activate#(V2)
isNat#(n__plus(V1, V2)) → activate#(V2)U11#(tt, V1, V2) → activate#(V2)
activate#(n__plus(X1, X2)) → activate#(X2)isNatKind#(n__plus(V1, V2)) → and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
isNatKind#(n__plus(V1, V2)) → isNatKind#(activate(V1))isNatKind#(n__plus(V1, V2)) → activate#(V2)
U11#(tt, V1, V2) → isNat#(activate(V1))activate#(n__isNat(X)) → isNat#(X)
isNat#(n__plus(V1, V2)) → U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))isNat#(n__s(V1)) → activate#(V1)
activate#(n__plus(X1, X2)) → activate#(X1)plus#(N, s(M)) → and#(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N)))
U12#(tt, V2) → isNat#(activate(V2))isNatKind#(n__plus(V1, V2)) → activate#(V1)
U21#(tt, V1) → activate#(V1)U41#(tt, M, N) → activate#(N)
U11#(tt, V1, V2) → activate#(V1)activate#(n__isNatKind(X)) → isNatKind#(X)
plus#(N, s(M)) → isNat#(M)U11#(tt, V1, V2) → U12#(isNat(activate(V1)), activate(V2))
isNat#(n__plus(V1, V2)) → and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNat#(n__plus(V1, V2)) → activate#(V1)
isNatKind#(n__s(V1)) → isNatKind#(activate(V1))U21#(tt, V1) → isNat#(activate(V1))
isNat#(n__s(V1)) → U21#(isNatKind(activate(V1)), activate(V1))isNat#(n__s(V1)) → isNatKind#(activate(V1))

Problem 4: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

plus#(N, s(M))U41#(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)and#(tt, X)activate#(X)
activate#(n__and(X1, X2))activate#(X1)isNat#(n__plus(V1, V2))isNatKind#(activate(V1))
activate#(n__and(X1, X2))and#(activate(X1), X2)activate#(n__s(X))activate#(X)
activate#(n__plus(X1, X2))plus#(activate(X1), activate(X2))U41#(tt, M, N)activate#(M)
isNatKind#(n__s(V1))activate#(V1)U41#(tt, M, N)plus#(activate(N), activate(M))
plus#(N, s(M))and#(isNat(M), n__isNatKind(M))U12#(tt, V2)activate#(V2)
isNat#(n__plus(V1, V2))activate#(V2)U11#(tt, V1, V2)activate#(V2)
isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))activate#(n__plus(X1, X2))activate#(X2)
isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))U11#(tt, V1, V2)isNat#(activate(V1))
isNatKind#(n__plus(V1, V2))activate#(V2)activate#(n__isNat(X))isNat#(X)
isNat#(n__s(V1))activate#(V1)isNat#(n__plus(V1, V2))U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
U12#(tt, V2)isNat#(activate(V2))plus#(N, s(M))and#(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N)))
activate#(n__plus(X1, X2))activate#(X1)isNatKind#(n__plus(V1, V2))activate#(V1)
U21#(tt, V1)activate#(V1)U41#(tt, M, N)activate#(N)
U11#(tt, V1, V2)activate#(V1)activate#(n__isNatKind(X))isNatKind#(X)
plus#(N, s(M))isNat#(M)U11#(tt, V1, V2)U12#(isNat(activate(V1)), activate(V2))
isNat#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNat#(n__plus(V1, V2))activate#(V1)
isNatKind#(n__s(V1))isNatKind#(activate(V1))U21#(tt, V1)isNat#(activate(V1))
isNat#(n__s(V1))U21#(isNatKind(activate(V1)), activate(V1))isNat#(n__s(V1))isNatKind#(activate(V1))

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, tt, U41, U11, U12, U13, U31, U21, n__isNatKind, U22

Strategy


Polynomial Interpretation

Standard Usable rules

isNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))U31(tt, N)activate(N)
U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))activate(n__0)0
isNat(n__0)ttU13(tt)tt
s(X)n__s(X)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
isNatKind(n__s(V1))isNatKind(activate(V1))U21(tt, V1)U22(isNat(activate(V1)))
isNat(X)n__isNat(X)isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
U22(tt)ttplus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)
plus(X1, X2)n__plus(X1, X2)isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))
U41(tt, M, N)s(plus(activate(N), activate(M)))activate(n__isNatKind(X))isNatKind(X)
and(X1, X2)n__and(X1, X2)U12(tt, V2)U13(isNat(activate(V2)))
isNatKind(X)n__isNatKind(X)0n__0
isNatKind(n__0)ttand(tt, X)activate(X)
activate(X)Xactivate(n__isNat(X))isNat(X)
activate(n__and(X1, X2))and(activate(X1), X2)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:

plus#(N, s(M))U41#(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)activate#(n__s(X))activate#(X)
isNatKind#(n__s(V1))activate#(V1)plus#(N, s(M))and#(isNat(M), n__isNatKind(M))
isNat#(n__s(V1))activate#(V1)plus#(N, s(M))and#(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N)))
plus#(N, s(M))isNat#(M)isNatKind#(n__s(V1))isNatKind#(activate(V1))
isNat#(n__s(V1))U21#(isNatKind(activate(V1)), activate(V1))isNat#(n__s(V1))isNatKind#(activate(V1))

Problem 5: DependencyGraph



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)activate#(n__and(X1, X2))activate#(X1)
isNat#(n__plus(V1, V2))isNatKind#(activate(V1))activate#(n__and(X1, X2))and#(activate(X1), X2)
activate#(n__plus(X1, X2))plus#(activate(X1), activate(X2))U41#(tt, M, N)activate#(M)
U41#(tt, M, N)plus#(activate(N), activate(M))U12#(tt, V2)activate#(V2)
isNat#(n__plus(V1, V2))activate#(V2)U11#(tt, V1, V2)activate#(V2)
activate#(n__plus(X1, X2))activate#(X2)isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))U11#(tt, V1, V2)isNat#(activate(V1))
isNatKind#(n__plus(V1, V2))activate#(V2)activate#(n__isNat(X))isNat#(X)
isNat#(n__plus(V1, V2))U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))U12#(tt, V2)isNat#(activate(V2))
activate#(n__plus(X1, X2))activate#(X1)isNatKind#(n__plus(V1, V2))activate#(V1)
U21#(tt, V1)activate#(V1)U41#(tt, M, N)activate#(N)
U11#(tt, V1, V2)activate#(V1)activate#(n__isNatKind(X))isNatKind#(X)
isNat#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))U11#(tt, V1, V2)U12#(isNat(activate(V1)), activate(V2))
isNat#(n__plus(V1, V2))activate#(V1)U21#(tt, V1)isNat#(activate(V1))

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, U41, tt, U11, U12, U31, U13, U21, U22, n__isNatKind

Strategy


The following SCCs where found

and#(tt, X) → activate#(X)activate#(n__and(X1, X2)) → activate#(X1)
isNat#(n__plus(V1, V2)) → isNatKind#(activate(V1))activate#(n__and(X1, X2)) → and#(activate(X1), X2)
U12#(tt, V2) → activate#(V2)U11#(tt, V1, V2) → activate#(V1)
isNat#(n__plus(V1, V2)) → activate#(V2)U11#(tt, V1, V2) → activate#(V2)
activate#(n__isNatKind(X)) → isNatKind#(X)activate#(n__plus(X1, X2)) → activate#(X2)
isNatKind#(n__plus(V1, V2)) → and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind#(n__plus(V1, V2)) → isNatKind#(activate(V1))
isNatKind#(n__plus(V1, V2)) → activate#(V2)U11#(tt, V1, V2) → U12#(isNat(activate(V1)), activate(V2))
U11#(tt, V1, V2) → isNat#(activate(V1))isNat#(n__plus(V1, V2)) → and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
activate#(n__isNat(X)) → isNat#(X)isNat#(n__plus(V1, V2)) → activate#(V1)
isNat#(n__plus(V1, V2)) → U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))activate#(n__plus(X1, X2)) → activate#(X1)
U12#(tt, V2) → isNat#(activate(V2))isNatKind#(n__plus(V1, V2)) → activate#(V1)

Problem 6: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)activate#(n__and(X1, X2))activate#(X1)
isNat#(n__plus(V1, V2))isNatKind#(activate(V1))activate#(n__and(X1, X2))and#(activate(X1), X2)
U11#(tt, V1, V2)activate#(V1)U12#(tt, V2)activate#(V2)
isNat#(n__plus(V1, V2))activate#(V2)U11#(tt, V1, V2)activate#(V2)
isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))activate#(n__plus(X1, X2))activate#(X2)
activate#(n__isNatKind(X))isNatKind#(X)isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))
isNatKind#(n__plus(V1, V2))activate#(V2)U11#(tt, V1, V2)U12#(isNat(activate(V1)), activate(V2))
U11#(tt, V1, V2)isNat#(activate(V1))isNat#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
activate#(n__isNat(X))isNat#(X)isNat#(n__plus(V1, V2))activate#(V1)
isNat#(n__plus(V1, V2))U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))activate#(n__plus(X1, X2))activate#(X1)
U12#(tt, V2)isNat#(activate(V2))isNatKind#(n__plus(V1, V2))activate#(V1)

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, U41, tt, U11, U12, U31, U13, U21, U22, n__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

isNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))U31(tt, N)activate(N)
U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))activate(n__0)0
isNat(n__0)ttU13(tt)tt
s(X)n__s(X)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
isNatKind(n__s(V1))isNatKind(activate(V1))U21(tt, V1)U22(isNat(activate(V1)))
isNat(X)n__isNat(X)isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
U22(tt)ttplus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)
plus(X1, X2)n__plus(X1, X2)isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))
U41(tt, M, N)s(plus(activate(N), activate(M)))activate(n__isNatKind(X))isNatKind(X)
and(X1, X2)n__and(X1, X2)U12(tt, V2)U13(isNat(activate(V2)))
isNatKind(X)n__isNatKind(X)0n__0
isNatKind(n__0)ttand(tt, X)activate(X)
activate(X)Xactivate(n__isNat(X))isNat(X)
activate(n__and(X1, X2))and(activate(X1), X2)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:

U12#(tt, V2)activate#(V2)U12#(tt, V2)isNat#(activate(V2))

Problem 7: DependencyGraph



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)activate#(n__and(X1, X2))activate#(X1)
isNat#(n__plus(V1, V2))isNatKind#(activate(V1))activate#(n__and(X1, X2))and#(activate(X1), X2)
U11#(tt, V1, V2)activate#(V1)isNat#(n__plus(V1, V2))activate#(V2)
U11#(tt, V1, V2)activate#(V2)isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
activate#(n__plus(X1, X2))activate#(X2)activate#(n__isNatKind(X))isNatKind#(X)
isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))isNat#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
U11#(tt, V1, V2)isNat#(activate(V1))isNatKind#(n__plus(V1, V2))activate#(V2)
U11#(tt, V1, V2)U12#(isNat(activate(V1)), activate(V2))activate#(n__isNat(X))isNat#(X)
isNat#(n__plus(V1, V2))activate#(V1)isNat#(n__plus(V1, V2))U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
activate#(n__plus(X1, X2))activate#(X1)isNatKind#(n__plus(V1, V2))activate#(V1)

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, tt, U41, U11, U12, U13, U31, U21, n__isNatKind, U22

Strategy


The following SCCs where found

and#(tt, X) → activate#(X)activate#(n__and(X1, X2)) → activate#(X1)
isNat#(n__plus(V1, V2)) → isNatKind#(activate(V1))activate#(n__and(X1, X2)) → and#(activate(X1), X2)
U11#(tt, V1, V2) → activate#(V1)isNat#(n__plus(V1, V2)) → activate#(V2)
U11#(tt, V1, V2) → activate#(V2)activate#(n__isNatKind(X)) → isNatKind#(X)
activate#(n__plus(X1, X2)) → activate#(X2)isNatKind#(n__plus(V1, V2)) → and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
isNatKind#(n__plus(V1, V2)) → isNatKind#(activate(V1))isNatKind#(n__plus(V1, V2)) → activate#(V2)
isNat#(n__plus(V1, V2)) → and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))U11#(tt, V1, V2) → isNat#(activate(V1))
activate#(n__isNat(X)) → isNat#(X)isNat#(n__plus(V1, V2)) → activate#(V1)
isNat#(n__plus(V1, V2)) → U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))activate#(n__plus(X1, X2)) → activate#(X1)
isNatKind#(n__plus(V1, V2)) → activate#(V1)

Problem 8: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)activate#(n__and(X1, X2))activate#(X1)
isNat#(n__plus(V1, V2))isNatKind#(activate(V1))activate#(n__and(X1, X2))and#(activate(X1), X2)
U11#(tt, V1, V2)activate#(V1)isNat#(n__plus(V1, V2))activate#(V2)
U11#(tt, V1, V2)activate#(V2)isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
activate#(n__plus(X1, X2))activate#(X2)activate#(n__isNatKind(X))isNatKind#(X)
isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))isNatKind#(n__plus(V1, V2))activate#(V2)
U11#(tt, V1, V2)isNat#(activate(V1))isNat#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
activate#(n__isNat(X))isNat#(X)isNat#(n__plus(V1, V2))activate#(V1)
isNat#(n__plus(V1, V2))U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))activate#(n__plus(X1, X2))activate#(X1)
isNatKind#(n__plus(V1, V2))activate#(V1)

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, tt, U41, U11, U12, U13, U31, U21, n__isNatKind, U22

Strategy


Polynomial Interpretation

Standard Usable rules

isNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))U31(tt, N)activate(N)
U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))activate(n__0)0
isNat(n__0)ttU13(tt)tt
s(X)n__s(X)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
U21(tt, V1)U22(isNat(activate(V1)))isNatKind(n__s(V1))isNatKind(activate(V1))
isNat(X)n__isNat(X)isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
U22(tt)ttplus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)
plus(X1, X2)n__plus(X1, X2)isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))
U41(tt, M, N)s(plus(activate(N), activate(M)))activate(n__isNatKind(X))isNatKind(X)
and(X1, X2)n__and(X1, X2)U12(tt, V2)U13(isNat(activate(V2)))
isNatKind(X)n__isNatKind(X)0n__0
isNatKind(n__0)ttand(tt, X)activate(X)
activate(X)Xactivate(n__isNat(X))isNat(X)
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__s(X))s(activate(X))
activate(n__plus(X1, X2))plus(activate(X1), activate(X2))

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

U11#(tt, V1, V2)activate#(V1)U11#(tt, V1, V2)activate#(V2)
U11#(tt, V1, V2)isNat#(activate(V1))

Problem 9: DependencyGraph



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)activate#(n__and(X1, X2))activate#(X1)
isNat#(n__plus(V1, V2))isNatKind#(activate(V1))activate#(n__and(X1, X2))and#(activate(X1), X2)
isNat#(n__plus(V1, V2))activate#(V2)isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
activate#(n__plus(X1, X2))activate#(X2)activate#(n__isNatKind(X))isNatKind#(X)
isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))isNatKind#(n__plus(V1, V2))activate#(V2)
isNat#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))activate#(n__isNat(X))isNat#(X)
isNat#(n__plus(V1, V2))activate#(V1)isNat#(n__plus(V1, V2))U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
activate#(n__plus(X1, X2))activate#(X1)isNatKind#(n__plus(V1, V2))activate#(V1)

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, U41, tt, U11, U12, U31, U13, U21, U22, n__isNatKind

Strategy


The following SCCs where found

and#(tt, X) → activate#(X)activate#(n__and(X1, X2)) → activate#(X1)
isNat#(n__plus(V1, V2)) → isNatKind#(activate(V1))activate#(n__and(X1, X2)) → and#(activate(X1), X2)
isNat#(n__plus(V1, V2)) → activate#(V2)activate#(n__isNatKind(X)) → isNatKind#(X)
isNatKind#(n__plus(V1, V2)) → and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))activate#(n__plus(X1, X2)) → activate#(X2)
isNatKind#(n__plus(V1, V2)) → isNatKind#(activate(V1))isNatKind#(n__plus(V1, V2)) → activate#(V2)
isNat#(n__plus(V1, V2)) → and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))activate#(n__isNat(X)) → isNat#(X)
isNat#(n__plus(V1, V2)) → activate#(V1)activate#(n__plus(X1, X2)) → activate#(X1)
isNatKind#(n__plus(V1, V2)) → activate#(V1)

Problem 10: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)activate#(n__and(X1, X2))activate#(X1)
isNat#(n__plus(V1, V2))isNatKind#(activate(V1))activate#(n__and(X1, X2))and#(activate(X1), X2)
isNat#(n__plus(V1, V2))activate#(V2)activate#(n__plus(X1, X2))activate#(X2)
isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))activate#(n__isNatKind(X))isNatKind#(X)
isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))isNat#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
isNatKind#(n__plus(V1, V2))activate#(V2)activate#(n__isNat(X))isNat#(X)
isNat#(n__plus(V1, V2))activate#(V1)activate#(n__plus(X1, X2))activate#(X1)
isNatKind#(n__plus(V1, V2))activate#(V1)

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, U41, tt, U11, U12, U31, U13, U21, U22, n__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

isNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))U31(tt, N)activate(N)
U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))activate(n__0)0
isNat(n__0)ttU13(tt)tt
s(X)n__s(X)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
U21(tt, V1)U22(isNat(activate(V1)))isNatKind(n__s(V1))isNatKind(activate(V1))
isNat(X)n__isNat(X)isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
U22(tt)ttplus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)
plus(X1, X2)n__plus(X1, X2)isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))
U41(tt, M, N)s(plus(activate(N), activate(M)))activate(n__isNatKind(X))isNatKind(X)
and(X1, X2)n__and(X1, X2)U12(tt, V2)U13(isNat(activate(V2)))
isNatKind(X)n__isNatKind(X)0n__0
isNatKind(n__0)ttand(tt, X)activate(X)
activate(X)Xactivate(n__isNat(X))isNat(X)
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__s(X))s(activate(X))
activate(n__plus(X1, X2))plus(activate(X1), activate(X2))

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

and#(tt, X)activate#(X)

Problem 11: DependencyGraph



Dependency Pair Problem

Dependency Pairs

activate#(n__and(X1, X2))activate#(X1)isNat#(n__plus(V1, V2))isNatKind#(activate(V1))
activate#(n__and(X1, X2))and#(activate(X1), X2)isNat#(n__plus(V1, V2))activate#(V2)
activate#(n__plus(X1, X2))activate#(X2)isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
activate#(n__isNatKind(X))isNatKind#(X)isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))
isNat#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind#(n__plus(V1, V2))activate#(V2)
activate#(n__isNat(X))isNat#(X)isNat#(n__plus(V1, V2))activate#(V1)
activate#(n__plus(X1, X2))activate#(X1)isNatKind#(n__plus(V1, V2))activate#(V1)

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, tt, U41, U11, U12, U13, U31, U21, n__isNatKind, U22

Strategy


The following SCCs where found

activate#(n__isNatKind(X)) → isNatKind#(X)activate#(n__plus(X1, X2)) → activate#(X2)
isNatKind#(n__plus(V1, V2)) → isNatKind#(activate(V1))activate#(n__and(X1, X2)) → activate#(X1)
isNat#(n__plus(V1, V2)) → isNatKind#(activate(V1))isNatKind#(n__plus(V1, V2)) → activate#(V2)
activate#(n__isNat(X)) → isNat#(X)isNat#(n__plus(V1, V2)) → activate#(V1)
activate#(n__plus(X1, X2)) → activate#(X1)isNatKind#(n__plus(V1, V2)) → activate#(V1)
isNat#(n__plus(V1, V2)) → activate#(V2)

Problem 12: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

activate#(n__isNatKind(X))isNatKind#(X)activate#(n__plus(X1, X2))activate#(X2)
isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))activate#(n__and(X1, X2))activate#(X1)
isNat#(n__plus(V1, V2))isNatKind#(activate(V1))isNatKind#(n__plus(V1, V2))activate#(V2)
activate#(n__isNat(X))isNat#(X)isNat#(n__plus(V1, V2))activate#(V1)
activate#(n__plus(X1, X2))activate#(X1)isNatKind#(n__plus(V1, V2))activate#(V1)
isNat#(n__plus(V1, V2))activate#(V2)

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, tt, U41, U11, U12, U13, U31, U21, n__isNatKind, U22

Strategy


Polynomial Interpretation

Standard Usable rules

isNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))U31(tt, N)activate(N)
U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))activate(n__0)0
isNat(n__0)ttU13(tt)tt
s(X)n__s(X)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
U21(tt, V1)U22(isNat(activate(V1)))isNatKind(n__s(V1))isNatKind(activate(V1))
isNat(X)n__isNat(X)isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
U22(tt)ttplus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)
plus(X1, X2)n__plus(X1, X2)isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))
U41(tt, M, N)s(plus(activate(N), activate(M)))activate(n__isNatKind(X))isNatKind(X)
and(X1, X2)n__and(X1, X2)U12(tt, V2)U13(isNat(activate(V2)))
isNatKind(X)n__isNatKind(X)0n__0
and(tt, X)activate(X)isNatKind(n__0)tt
activate(X)Xactivate(n__isNat(X))isNat(X)
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__s(X))s(activate(X))
activate(n__plus(X1, X2))plus(activate(X1), activate(X2))

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

activate#(n__plus(X1, X2))activate#(X2)isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))
isNat#(n__plus(V1, V2))isNatKind#(activate(V1))isNatKind#(n__plus(V1, V2))activate#(V2)
activate#(n__isNat(X))isNat#(X)isNat#(n__plus(V1, V2))activate#(V1)
activate#(n__plus(X1, X2))activate#(X1)isNat#(n__plus(V1, V2))activate#(V2)
isNatKind#(n__plus(V1, V2))activate#(V1)

Problem 13: DependencyGraph



Dependency Pair Problem

Dependency Pairs

activate#(n__isNatKind(X))isNatKind#(X)activate#(n__and(X1, X2))activate#(X1)

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, U41, tt, U11, U12, U31, U13, U21, U22, n__isNatKind

Strategy


The following SCCs where found

activate#(n__and(X1, X2)) → activate#(X1)

Problem 14: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

activate#(n__and(X1, X2))activate#(X1)

Rewrite Rules

U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))U12(tt, V2)U13(isNat(activate(V2)))
U13(tt)ttU21(tt, V1)U22(isNat(activate(V1)))
U22(tt)ttU31(tt, N)activate(N)
U41(tt, M, N)s(plus(activate(N), activate(M)))and(tt, X)activate(X)
isNat(n__0)ttisNat(n__plus(V1, V2))U11(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat(n__s(V1))U21(isNatKind(activate(V1)), activate(V1))isNatKind(n__0)tt
isNatKind(n__plus(V1, V2))and(isNatKind(activate(V1)), n__isNatKind(activate(V2)))isNatKind(n__s(V1))isNatKind(activate(V1))
plus(N, 0)U31(and(isNat(N), n__isNatKind(N)), N)plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(n__isNat(N), n__isNatKind(N))), M, N)
0n__0plus(X1, X2)n__plus(X1, X2)
isNatKind(X)n__isNatKind(X)s(X)n__s(X)
and(X1, X2)n__and(X1, X2)isNat(X)n__isNat(X)
activate(n__0)0activate(n__plus(X1, X2))plus(activate(X1), activate(X2))
activate(n__isNatKind(X))isNatKind(X)activate(n__s(X))s(activate(X))
activate(n__and(X1, X2))and(activate(X1), X2)activate(n__isNat(X))isNat(X)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__isNat, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, U41, tt, U11, U12, U31, U13, U21, U22, n__isNatKind

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:

activate#(n__and(X1, X2))activate#(X1)