YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (499ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4 (592ms).
 |    | – Problem 3 was processed with processor DependencyGraph (81ms).
 |    |    | – Problem 4 was processed with processor PolynomialLinearRange4 (536ms).
 |    |    |    | – Problem 5 was processed with processor DependencyGraph (9ms).
 |    |    |    |    | – Problem 6 was processed with processor PolynomialLinearRange4 (136ms).
 |    |    |    |    |    | – Problem 7 was processed with processor PolynomialLinearRange4 (107ms).
 |    |    |    |    |    |    | – Problem 8 was processed with processor DependencyGraph (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

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

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(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)activate(n__0)0
activate(n__plus(X1, X2))plus(X1, X2)activate(n__isNatKind(X))isNatKind(X)
activate(n__s(X))s(X)activate(n__and(X1, X2))and(X1, X2)
activate(X)X

Original Signature

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

Strategy


The following SCCs where found

and#(tt, X) → activate#(X)plus#(N, s(M)) → isNat#(N)
isNat#(n__plus(V1, V2)) → isNatKind#(activate(V1))plus#(N, 0) → and#(isNat(N), n__isNatKind(N))
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)
plus#(N, 0) → isNat#(N)U11#(tt, V1, V2) → activate#(V2)
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))
plus#(N, 0) → U31#(and(isNat(N), n__isNatKind(N)), N)isNat#(n__plus(V1, V2)) → U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))
isNat#(n__s(V1)) → activate#(V1)U12#(tt, V2) → isNat#(activate(V2))
isNatKind#(n__plus(V1, V2)) → activate#(V1)U21#(tt, V1) → activate#(V1)
plus#(N, s(M)) → and#(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N)))U31#(tt, N) → activate#(N)
U41#(tt, M, N) → activate#(N)U11#(tt, V1, V2) → activate#(V1)
plus#(N, s(M)) → U41#(and(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N))), M, N)activate#(n__isNatKind(X)) → isNatKind#(X)
plus#(N, s(M)) → isNat#(M)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))
activate#(n__and(X1, X2)) → and#(X1, X2)isNat#(n__s(V1)) → U21#(isNatKind(activate(V1)), activate(V1))
activate#(n__plus(X1, X2)) → plus#(X1, X2)isNat#(n__s(V1)) → isNatKind#(activate(V1))

Problem 2: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)plus#(N, s(M))isNat#(N)
isNat#(n__plus(V1, V2))isNatKind#(activate(V1))plus#(N, 0)and#(isNat(N), n__isNatKind(N))
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)
plus#(N, 0)isNat#(N)U11#(tt, V1, V2)activate#(V2)
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)U11#(tt, V1, V2)isNat#(activate(V1))
isNatKind#(n__plus(V1, V2))activate#(V2)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))
isNatKind#(n__plus(V1, V2))activate#(V1)U21#(tt, V1)activate#(V1)
plus#(N, s(M))and#(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N)))U31#(tt, N)activate#(N)
U41#(tt, M, N)activate#(N)U11#(tt, V1, V2)activate#(V1)
plus#(N, s(M))U41#(and(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N))), M, N)activate#(n__isNatKind(X))isNatKind#(X)
plus#(N, s(M))isNat#(M)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))
activate#(n__and(X1, X2))and#(X1, X2)isNat#(n__s(V1))U21#(isNatKind(activate(V1)), activate(V1))
activate#(n__plus(X1, X2))plus#(X1, X2)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(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)activate(n__0)0
activate(n__plus(X1, X2))plus(X1, X2)activate(n__isNatKind(X))isNatKind(X)
activate(n__s(X))s(X)activate(n__and(X1, X2))and(X1, X2)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, tt, U41, 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)
activate(n__s(X))s(X)U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))
activate(n__0)0isNat(n__0)tt
U13(tt)ttplus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N))), M, N)
s(X)n__s(X)isNatKind(n__s(V1))isNatKind(activate(V1))
U21(tt, V1)U22(isNat(activate(V1)))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__plus(X1, X2))plus(X1, X2)
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__0isNatKind(n__0)tt
and(tt, X)activate(X)activate(X)X
activate(n__and(X1, X2))and(X1, X2)

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

and#(tt, X)activate#(X)isNat#(n__plus(V1, V2))isNatKind#(activate(V1))
plus#(N, s(M))isNat#(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)U11#(tt, V1, V2)activate#(V2)
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)
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))isNatKind#(n__plus(V1, V2))activate#(V1)
U21#(tt, V1)activate#(V1)plus#(N, s(M))and#(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N)))
U31#(tt, N)activate#(N)U41#(tt, M, N)activate#(N)
U11#(tt, V1, V2)activate#(V1)plus#(N, s(M))U41#(and(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N))), M, N)
plus#(N, s(M))isNat#(M)activate#(n__isNatKind(X))isNatKind#(X)
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))
activate#(n__and(X1, X2))and#(X1, X2)isNat#(n__s(V1))isNatKind#(activate(V1))
activate#(n__plus(X1, X2))plus#(X1, X2)

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(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)activate(n__0)0
activate(n__plus(X1, X2))plus(X1, X2)activate(n__isNatKind(X))isNatKind(X)
activate(n__s(X))s(X)activate(n__and(X1, X2))and(X1, X2)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, 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)plus#(N, s(M)) → isNat#(N)
isNat#(n__plus(V1, V2)) → isNatKind#(activate(V1))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)))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)) → U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))isNat#(n__s(V1)) → activate#(V1)
U12#(tt, V2) → isNat#(activate(V2))isNatKind#(n__plus(V1, V2)) → activate#(V1)
U21#(tt, V1) → activate#(V1)plus#(N, s(M)) → and#(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N)))
U41#(tt, M, N) → activate#(N)U11#(tt, V1, V2) → activate#(V1)
plus#(N, s(M)) → U41#(and(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N))), M, N)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))
activate#(n__and(X1, X2)) → and#(X1, X2)isNat#(n__s(V1)) → U21#(isNatKind(activate(V1)), activate(V1))
activate#(n__plus(X1, X2)) → plus#(X1, X2)isNat#(n__s(V1)) → isNatKind#(activate(V1))

Problem 4: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)plus#(N, s(M))isNat#(N)
isNat#(n__plus(V1, V2))isNatKind#(activate(V1))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)))isNatKind#(n__plus(V1, V2))isNatKind#(activate(V1))
U11#(tt, V1, V2)isNat#(activate(V1))isNatKind#(n__plus(V1, V2))activate#(V2)
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))isNatKind#(n__plus(V1, V2))activate#(V1)
U21#(tt, V1)activate#(V1)plus#(N, s(M))and#(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N)))
U41#(tt, M, N)activate#(N)U11#(tt, V1, V2)activate#(V1)
plus#(N, s(M))U41#(and(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N))), M, N)plus#(N, s(M))isNat#(M)
activate#(n__isNatKind(X))isNatKind#(X)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))
activate#(n__and(X1, X2))and#(X1, X2)isNat#(n__s(V1))U21#(isNatKind(activate(V1)), activate(V1))
activate#(n__plus(X1, X2))plus#(X1, X2)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(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)activate(n__0)0
activate(n__plus(X1, X2))plus(X1, X2)activate(n__isNatKind(X))isNatKind(X)
activate(n__s(X))s(X)activate(n__and(X1, X2))and(X1, X2)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, 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)
activate(n__s(X))s(X)U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))
activate(n__0)0isNat(n__0)tt
U13(tt)ttplus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N))), M, N)
s(X)n__s(X)isNatKind(n__s(V1))isNatKind(activate(V1))
U21(tt, V1)U22(isNat(activate(V1)))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__plus(X1, X2))plus(X1, X2)
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__0isNatKind(n__0)tt
and(tt, X)activate(X)activate(X)X
activate(n__and(X1, X2))and(X1, X2)

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

isNat#(n__plus(V1, V2))isNatKind#(activate(V1))plus#(N, s(M))isNat#(N)
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))isNatKind#(activate(V1))
isNatKind#(n__plus(V1, V2))activate#(V2)isNat#(n__s(V1))activate#(V1)
isNat#(n__plus(V1, V2))U11#(and(isNatKind(activate(V1)), n__isNatKind(activate(V2))), activate(V1), activate(V2))isNatKind#(n__plus(V1, V2))activate#(V1)
U21#(tt, V1)activate#(V1)U11#(tt, V1, V2)activate#(V1)
plus#(N, s(M))U41#(and(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N))), M, N)plus#(N, s(M))isNat#(M)
isNat#(n__plus(V1, V2))activate#(V1)isNatKind#(n__s(V1))isNatKind#(activate(V1))
U21#(tt, V1)isNat#(activate(V1))isNat#(n__s(V1))isNatKind#(activate(V1))
activate#(n__plus(X1, X2))plus#(X1, X2)

Problem 5: DependencyGraph



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)plus#(N, s(M))and#(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N)))
U41#(tt, M, N)activate#(M)U41#(tt, M, N)plus#(activate(N), activate(M))
U41#(tt, M, N)activate#(N)isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
activate#(n__isNatKind(X))isNatKind#(X)U11#(tt, V1, V2)isNat#(activate(V1))
U11#(tt, V1, V2)U12#(isNat(activate(V1)), activate(V2))isNat#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
activate#(n__and(X1, X2))and#(X1, X2)isNat#(n__s(V1))U21#(isNatKind(activate(V1)), activate(V1))
U12#(tt, V2)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(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)activate(n__0)0
activate(n__plus(X1, X2))plus(X1, X2)activate(n__isNatKind(X))isNatKind(X)
activate(n__s(X))s(X)activate(n__and(X1, X2))and(X1, X2)
activate(X)X

Original Signature

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

Strategy


The following SCCs where found

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

Problem 6: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

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

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(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)activate(n__0)0
activate(n__plus(X1, X2))plus(X1, X2)activate(n__isNatKind(X))isNatKind(X)
activate(n__s(X))s(X)activate(n__and(X1, X2))and(X1, X2)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, n__plus, and, n__s, activate, isNat, n__and, 0, n__0, s, tt, U41, 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)
activate(n__s(X))s(X)U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))
activate(n__0)0isNat(n__0)tt
plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N))), M, N)U13(tt)tt
s(X)n__s(X)isNatKind(n__s(V1))isNatKind(activate(V1))
U21(tt, V1)U22(isNat(activate(V1)))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__plus(X1, X2))plus(X1, X2)
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__0isNatKind(n__0)tt
and(tt, X)activate(X)activate(X)X
activate(n__and(X1, X2))and(X1, X2)

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

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

Problem 7: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

and#(tt, X)activate#(X)isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))
activate#(n__isNatKind(X))isNatKind#(X)

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(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)activate(n__0)0
activate(n__plus(X1, X2))plus(X1, X2)activate(n__isNatKind(X))isNatKind(X)
activate(n__s(X))s(X)activate(n__and(X1, X2))and(X1, X2)
activate(X)X

Original Signature

Termination of terms over the following signature is verified: plus, isNatKind, 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)
activate(n__s(X))s(X)U11(tt, V1, V2)U12(isNat(activate(V1)), activate(V2))
activate(n__0)0isNat(n__0)tt
plus(N, s(M))U41(and(and(isNat(M), n__isNatKind(M)), n__and(isNat(N), n__isNatKind(N))), M, N)U13(tt)tt
s(X)n__s(X)isNatKind(n__s(V1))isNatKind(activate(V1))
U21(tt, V1)U22(isNat(activate(V1)))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__plus(X1, X2))plus(X1, X2)
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__0isNatKind(n__0)tt
and(tt, X)activate(X)activate(X)X
activate(n__and(X1, X2))and(X1, X2)

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

isNatKind#(n__plus(V1, V2))and#(isNatKind(activate(V1)), n__isNatKind(activate(V2)))

Problem 8: DependencyGraph



Dependency Pair Problem

Dependency Pairs

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

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(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)activate(n__0)0
activate(n__plus(X1, X2))plus(X1, X2)activate(n__isNatKind(X))isNatKind(X)
activate(n__s(X))s(X)activate(n__and(X1, X2))and(X1, X2)
activate(X)X

Original Signature

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

Strategy


There are no SCCs!